X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Fstructs%2FChannelMonitor.mts;h=19b048b1f719c37e1daae3c78c2edfbdc3b8e212;hb=3a496e16c89d9193d4da3ad4fb93ffbe32a9fdb2;hp=9d7981df6bcb3e70aea481df3d454e30453d62f6;hpb=bf51db1343480f8eefb986c6764ebdd9b33eb086;p=ldk-java diff --git a/ts/structs/ChannelMonitor.mts b/ts/structs/ChannelMonitor.mts index 9d7981df..19b048b1 100644 --- a/ts/structs/ChannelMonitor.mts +++ b/ts/structs/ChannelMonitor.mts @@ -1,35 +1,41 @@ 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 { FailureCode } from '../enums/FailureCode.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'; +import { PaymentFailureReason } from '../enums/PaymentFailureReason.mjs'; import { Recipient } from '../enums/Recipient.mjs'; +import { RetryableSendFailure } from '../enums/RetryableSendFailure.mjs'; import { Secp256k1Error } from '../enums/Secp256k1Error.mjs'; import { SemanticError } from '../enums/SemanticError.mjs'; import { SiPrefix } from '../enums/SiPrefix.mjs'; +import { UtxoLookupError } from '../enums/UtxoLookupError.mjs'; import { Bech32Error } from '../structs/Bech32Error.mjs'; -import { BlindedRoute } from '../structs/BlindedRoute.mjs'; -import { Result_BlindedRouteNoneZ } from '../structs/Result_BlindedRouteNoneZ.mjs'; +import { Option_DurationZ } from '../structs/Option_DurationZ.mjs'; +import { BlindedPath } from '../structs/BlindedPath.mjs'; +import { Option_u64Z } from '../structs/Option_u64Z.mjs'; +import { ShutdownScript } from '../structs/ShutdownScript.mjs'; +import { APIError } from '../structs/APIError.mjs'; +import { Result_NoneAPIErrorZ } from '../structs/Result_NoneAPIErrorZ.mjs'; +import { Option_CVec_u8ZZ } from '../structs/Option_CVec_u8ZZ.mjs'; +import { RecipientOnionFields } from '../structs/RecipientOnionFields.mjs'; import { DecodeError } from '../structs/DecodeError.mjs'; -import { Result_BlindedRouteDecodeErrorZ } from '../structs/Result_BlindedRouteDecodeErrorZ.mjs'; -import { BlindedHop } from '../structs/BlindedHop.mjs'; -import { Result_BlindedHopDecodeErrorZ } from '../structs/Result_BlindedHopDecodeErrorZ.mjs'; +import { Result_RecipientOnionFieldsDecodeErrorZ } from '../structs/Result_RecipientOnionFieldsDecodeErrorZ.mjs'; +import { Option_HTLCClaimZ } from '../structs/Option_HTLCClaimZ.mjs'; import { Result_NoneNoneZ } from '../structs/Result_NoneNoneZ.mjs'; import { CounterpartyCommitmentSecrets } from '../structs/CounterpartyCommitmentSecrets.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'; @@ -48,42 +54,85 @@ import { Result_CommitmentTransactionDecodeErrorZ } from '../structs/Result_Comm import { TrustedCommitmentTransaction } from '../structs/TrustedCommitmentTransaction.mjs'; import { Result_TrustedCommitmentTransactionNoneZ } from '../structs/Result_TrustedCommitmentTransactionNoneZ.mjs'; import { Result_CVec_SignatureZNoneZ } from '../structs/Result_CVec_SignatureZNoneZ.mjs'; -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 { BlindedPayInfo } from '../structs/BlindedPayInfo.mjs'; +import { Result_BlindedPayInfoDecodeErrorZ } from '../structs/Result_BlindedPayInfoDecodeErrorZ.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 { InFlightHtlcs } from '../structs/InFlightHtlcs.mjs'; +import { Result_InFlightHtlcsDecodeErrorZ } from '../structs/Result_InFlightHtlcsDecodeErrorZ.mjs'; import { RouteHop } from '../structs/RouteHop.mjs'; import { Result_RouteHopDecodeErrorZ } from '../structs/Result_RouteHopDecodeErrorZ.mjs'; -import { Route } from '../structs/Route.mjs'; +import { BlindedHop } from '../structs/BlindedHop.mjs'; +import { BlindedTail } from '../structs/BlindedTail.mjs'; +import { Result_BlindedTailDecodeErrorZ } from '../structs/Result_BlindedTailDecodeErrorZ.mjs'; +import { Path } from '../structs/Path.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 { TwoTuple_BlindedPayInfoBlindedPathZ } from '../structs/TwoTuple_BlindedPayInfoBlindedPathZ.mjs'; +import { RouteHint } from '../structs/RouteHint.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 { TwoTuple_usizeTransactionZ } from '../structs/TwoTuple_usizeTransactionZ.mjs'; +import { TwoTuple_TxidBlockHashZ } from '../structs/TwoTuple_TxidBlockHashZ.mjs'; +import { HTLCUpdate } from '../structs/HTLCUpdate.mjs'; +import { OutPoint } from '../structs/OutPoint.mjs'; +import { MonitorEvent } from '../structs/MonitorEvent.mjs'; +import { ThreeTuple_OutPointCVec_MonitorEventZPublicKeyZ } from '../structs/ThreeTuple_OutPointCVec_MonitorEventZPublicKeyZ.mjs'; +import { FixedPenaltyScorer } from '../structs/FixedPenaltyScorer.mjs'; +import { Result_FixedPenaltyScorerDecodeErrorZ } from '../structs/Result_FixedPenaltyScorerDecodeErrorZ.mjs'; +import { TwoTuple_u64u64Z } from '../structs/TwoTuple_u64u64Z.mjs'; +import { Option_C2Tuple_u64u64ZZ } from '../structs/Option_C2Tuple_u64u64ZZ.mjs'; +import { TwoTuple_Z } from '../structs/TwoTuple_Z.mjs'; +import { TwoTuple__u168_u168Z } from '../structs/TwoTuple__u168_u168Z.mjs'; +import { Option_C2Tuple_EightU16sEightU16sZZ } from '../structs/Option_C2Tuple_EightU16sEightU16sZZ.mjs'; +import { NodeId } from '../structs/NodeId.mjs'; +import { Record } from '../structs/Record.mjs'; +import { Logger, LoggerInterface } from '../structs/Logger.mjs'; +import { NetworkGraph } from '../structs/NetworkGraph.mjs'; +import { ProbabilisticScorer } from '../structs/ProbabilisticScorer.mjs'; +import { Result_ProbabilisticScorerDecodeErrorZ } from '../structs/Result_ProbabilisticScorerDecodeErrorZ.mjs'; +import { InitFeatures } from '../structs/InitFeatures.mjs'; +import { Result_InitFeaturesDecodeErrorZ } from '../structs/Result_InitFeaturesDecodeErrorZ.mjs'; +import { ChannelFeatures } from '../structs/ChannelFeatures.mjs'; +import { Result_ChannelFeaturesDecodeErrorZ } from '../structs/Result_ChannelFeaturesDecodeErrorZ.mjs'; +import { NodeFeatures } from '../structs/NodeFeatures.mjs'; +import { Result_NodeFeaturesDecodeErrorZ } from '../structs/Result_NodeFeaturesDecodeErrorZ.mjs'; +import { InvoiceFeatures } from '../structs/InvoiceFeatures.mjs'; +import { Result_InvoiceFeaturesDecodeErrorZ } from '../structs/Result_InvoiceFeaturesDecodeErrorZ.mjs'; +import { BlindedHopFeatures } from '../structs/BlindedHopFeatures.mjs'; +import { Result_BlindedHopFeaturesDecodeErrorZ } from '../structs/Result_BlindedHopFeaturesDecodeErrorZ.mjs'; +import { ChannelTypeFeatures } from '../structs/ChannelTypeFeatures.mjs'; +import { Result_ChannelTypeFeaturesDecodeErrorZ } from '../structs/Result_ChannelTypeFeaturesDecodeErrorZ.mjs'; import { PaymentPurpose } from '../structs/PaymentPurpose.mjs'; import { Result_PaymentPurposeDecodeErrorZ } from '../structs/Result_PaymentPurposeDecodeErrorZ.mjs'; +import { ChannelUpdate } from '../structs/ChannelUpdate.mjs'; +import { NetworkUpdate } from '../structs/NetworkUpdate.mjs'; +import { Option_NetworkUpdateZ } from '../structs/Option_NetworkUpdateZ.mjs'; +import { PathFailure } from '../structs/PathFailure.mjs'; +import { Option_PathFailureZ } from '../structs/Option_PathFailureZ.mjs'; +import { Result_COption_PathFailureZDecodeErrorZ } from '../structs/Result_COption_PathFailureZDecodeErrorZ.mjs'; +import { UntrustedString } from '../structs/UntrustedString.mjs'; import { ClosureReason } from '../structs/ClosureReason.mjs'; import { Option_ClosureReasonZ } from '../structs/Option_ClosureReasonZ.mjs'; import { Result_COption_ClosureReasonZDecodeErrorZ } from '../structs/Result_COption_ClosureReasonZDecodeErrorZ.mjs'; 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 { ChannelUpdate } from '../structs/ChannelUpdate.mjs'; -import { NetworkUpdate } from '../structs/NetworkUpdate.mjs'; -import { Option_NetworkUpdateZ } from '../structs/Option_NetworkUpdateZ.mjs'; -import { OutPoint } from '../structs/OutPoint.mjs'; +import { Result_PaymentFailureReasonDecodeErrorZ } from '../structs/Result_PaymentFailureReasonDecodeErrorZ.mjs'; +import { Option_u128Z } from '../structs/Option_u128Z.mjs'; +import { Option_PaymentFailureReasonZ } from '../structs/Option_PaymentFailureReasonZ.mjs'; import { DelayedPaymentOutputDescriptor } from '../structs/DelayedPaymentOutputDescriptor.mjs'; import { StaticPaymentOutputDescriptor } from '../structs/StaticPaymentOutputDescriptor.mjs'; import { SpendableOutputDescriptor } from '../structs/SpendableOutputDescriptor.mjs'; -import { ChannelTypeFeatures } from '../structs/ChannelTypeFeatures.mjs'; import { Event } from '../structs/Event.mjs'; import { Option_EventZ } from '../structs/Option_EventZ.mjs'; import { Result_COption_EventZDecodeErrorZ } from '../structs/Result_COption_EventZDecodeErrorZ.mjs'; @@ -99,6 +148,7 @@ 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'; @@ -107,35 +157,14 @@ import { QueryShortChannelIds } from '../structs/QueryShortChannelIds.mjs'; import { ReplyChannelRange } from '../structs/ReplyChannelRange.mjs'; 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 { HTLCUpdate } from '../structs/HTLCUpdate.mjs'; -import { MonitorEvent } from '../structs/MonitorEvent.mjs'; -import { ThreeTuple_OutPointCVec_MonitorEventZPublicKeyZ } from '../structs/ThreeTuple_OutPointCVec_MonitorEventZPublicKeyZ.mjs'; -import { FixedPenaltyScorer } from '../structs/FixedPenaltyScorer.mjs'; -import { Result_FixedPenaltyScorerDecodeErrorZ } from '../structs/Result_FixedPenaltyScorerDecodeErrorZ.mjs'; -import { TwoTuple_u64u64Z } from '../structs/TwoTuple_u64u64Z.mjs'; -import { Option_C2Tuple_u64u64ZZ } from '../structs/Option_C2Tuple_u64u64ZZ.mjs'; -import { NodeId } from '../structs/NodeId.mjs'; -import { Record } from '../structs/Record.mjs'; -import { Logger, LoggerInterface } from '../structs/Logger.mjs'; -import { NetworkGraph } from '../structs/NetworkGraph.mjs'; -import { ProbabilisticScorer } from '../structs/ProbabilisticScorer.mjs'; -import { Result_ProbabilisticScorerDecodeErrorZ } from '../structs/Result_ProbabilisticScorerDecodeErrorZ.mjs'; -import { InitFeatures } from '../structs/InitFeatures.mjs'; -import { Result_InitFeaturesDecodeErrorZ } from '../structs/Result_InitFeaturesDecodeErrorZ.mjs'; -import { ChannelFeatures } from '../structs/ChannelFeatures.mjs'; -import { Result_ChannelFeaturesDecodeErrorZ } from '../structs/Result_ChannelFeaturesDecodeErrorZ.mjs'; -import { NodeFeatures } from '../structs/NodeFeatures.mjs'; -import { Result_NodeFeaturesDecodeErrorZ } from '../structs/Result_NodeFeaturesDecodeErrorZ.mjs'; -import { InvoiceFeatures } from '../structs/InvoiceFeatures.mjs'; -import { Result_InvoiceFeaturesDecodeErrorZ } from '../structs/Result_InvoiceFeaturesDecodeErrorZ.mjs'; -import { Result_ChannelTypeFeaturesDecodeErrorZ } from '../structs/Result_ChannelTypeFeaturesDecodeErrorZ.mjs'; +import { Result_PublicKeyErrorZ } from '../structs/Result_PublicKeyErrorZ.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_TxOutUtxoLookupErrorZ } from '../structs/Result_TxOutUtxoLookupErrorZ.mjs'; +import { UtxoFuture } from '../structs/UtxoFuture.mjs'; +import { UtxoResult } from '../structs/UtxoResult.mjs'; +import { UtxoLookup, UtxoLookupInterface } from '../structs/UtxoLookup.mjs'; +import { Option_UtxoLookupZ } from '../structs/Option_UtxoLookupZ.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'; @@ -162,28 +191,28 @@ import { Result_SpendableOutputDescriptorDecodeErrorZ } from '../structs/Result_ import { TwoTuple_SignatureCVec_SignatureZZ } from '../structs/TwoTuple_SignatureCVec_SignatureZZ.mjs'; import { Result_C2Tuple_SignatureCVec_SignatureZZNoneZ } from '../structs/Result_C2Tuple_SignatureCVec_SignatureZZNoneZ.mjs'; 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 { Result_RecoverableSignatureNoneZ } from '../structs/Result_RecoverableSignatureNoneZ.mjs'; import { ClosingTransaction } from '../structs/ClosingTransaction.mjs'; import { UnsignedChannelAnnouncement } from '../structs/UnsignedChannelAnnouncement.mjs'; -import { BaseSign, BaseSignInterface } from '../structs/BaseSign.mjs'; -import { Sign, SignInterface } from '../structs/Sign.mjs'; -import { Result_SignDecodeErrorZ } from '../structs/Result_SignDecodeErrorZ.mjs'; -import { Result_RecoverableSignatureNoneZ } from '../structs/Result_RecoverableSignatureNoneZ.mjs'; +import { ChannelSigner, ChannelSignerInterface } from '../structs/ChannelSigner.mjs'; +import { EcdsaChannelSigner, EcdsaChannelSignerInterface } from '../structs/EcdsaChannelSigner.mjs'; +import { WriteableEcdsaChannelSigner, WriteableEcdsaChannelSignerInterface } from '../structs/WriteableEcdsaChannelSigner.mjs'; +import { Result_WriteableEcdsaChannelSignerDecodeErrorZ } from '../structs/Result_WriteableEcdsaChannelSignerDecodeErrorZ.mjs'; import { Result_CVec_CVec_u8ZZNoneZ } from '../structs/Result_CVec_CVec_u8ZZNoneZ.mjs'; import { InMemorySigner } from '../structs/InMemorySigner.mjs'; import { Result_InMemorySignerDecodeErrorZ } from '../structs/Result_InMemorySignerDecodeErrorZ.mjs'; import { Result_TransactionNoneZ } from '../structs/Result_TransactionNoneZ.mjs'; import { Option_u16Z } from '../structs/Option_u16Z.mjs'; -import { APIError } from '../structs/APIError.mjs'; -import { Result_NoneAPIErrorZ } from '../structs/Result_NoneAPIErrorZ.mjs'; import { Result__u832APIErrorZ } from '../structs/Result__u832APIErrorZ.mjs'; +import { RecentPaymentDetails } from '../structs/RecentPaymentDetails.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_NoneRetryableSendFailureZ } from '../structs/Result_NoneRetryableSendFailureZ.mjs'; +import { Result_PaymentHashPaymentSendFailureZ } from '../structs/Result_PaymentHashPaymentSendFailureZ.mjs'; +import { Result_PaymentHashRetryableSendFailureZ } from '../structs/Result_PaymentHashRetryableSendFailureZ.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'; @@ -202,41 +231,29 @@ import { Result_PhantomRouteHintsDecodeErrorZ } from '../structs/Result_PhantomR import { ChannelMonitorUpdate } from '../structs/ChannelMonitorUpdate.mjs'; import { Watch, WatchInterface } from '../structs/Watch.mjs'; import { BroadcasterInterface, BroadcasterInterfaceInterface } from '../structs/BroadcasterInterface.mjs'; -import { KeysInterface, KeysInterfaceInterface } from '../structs/KeysInterface.mjs'; +import { EntropySource, EntropySourceInterface } from '../structs/EntropySource.mjs'; +import { UnsignedChannelUpdate } from '../structs/UnsignedChannelUpdate.mjs'; +import { UnsignedNodeAnnouncement } from '../structs/UnsignedNodeAnnouncement.mjs'; +import { UnsignedGossipMessage } from '../structs/UnsignedGossipMessage.mjs'; +import { NodeSigner, NodeSignerInterface } from '../structs/NodeSigner.mjs'; +import { SignerProvider, SignerProviderInterface } from '../structs/SignerProvider.mjs'; import { FeeEstimator, FeeEstimatorInterface } from '../structs/FeeEstimator.mjs'; +import { Router, RouterInterface } from '../structs/Router.mjs'; import { ChannelManager } from '../structs/ChannelManager.mjs'; import { TwoTuple_BlockHashChannelManagerZ } from '../structs/TwoTuple_BlockHashChannelManagerZ.mjs'; import { Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ } from '../structs/Result_C2Tuple_BlockHashChannelManagerZDecodeErrorZ.mjs'; import { ChannelConfig } from '../structs/ChannelConfig.mjs'; import { Result_ChannelConfigDecodeErrorZ } from '../structs/Result_ChannelConfigDecodeErrorZ.mjs'; +import { Option_APIErrorZ } from '../structs/Option_APIErrorZ.mjs'; +import { Result_COption_APIErrorZDecodeErrorZ } from '../structs/Result_COption_APIErrorZDecodeErrorZ.mjs'; +import { Result_UntrustedStringDecodeErrorZ } from '../structs/Result_UntrustedStringDecodeErrorZ.mjs'; import { Result_OutPointDecodeErrorZ } from '../structs/Result_OutPointDecodeErrorZ.mjs'; import { Type, TypeInterface } from '../structs/Type.mjs'; 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 { InFlightHtlcs } from '../structs/InFlightHtlcs.mjs'; -import { Result_InFlightHtlcsDecodeErrorZ } from '../structs/Result_InFlightHtlcsDecodeErrorZ.mjs'; -import { ParseError } from '../structs/ParseError.mjs'; -import { Result_SiPrefixParseErrorZ } from '../structs/Result_SiPrefixParseErrorZ.mjs'; -import { Invoice } from '../structs/Invoice.mjs'; -import { ParseOrSemanticError } from '../structs/ParseOrSemanticError.mjs'; -import { Result_InvoiceParseOrSemanticErrorZ } from '../structs/Result_InvoiceParseOrSemanticErrorZ.mjs'; -import { SignedRawInvoice } from '../structs/SignedRawInvoice.mjs'; -import { Result_SignedRawInvoiceParseErrorZ } from '../structs/Result_SignedRawInvoiceParseErrorZ.mjs'; -import { RawInvoice } from '../structs/RawInvoice.mjs'; -import { InvoiceSignature } from '../structs/InvoiceSignature.mjs'; -import { ThreeTuple_RawInvoice_u832InvoiceSignatureZ } from '../structs/ThreeTuple_RawInvoice_u832InvoiceSignatureZ.mjs'; -import { PayeePubKey } from '../structs/PayeePubKey.mjs'; -import { Result_PayeePubKeyErrorZ } from '../structs/Result_PayeePubKeyErrorZ.mjs'; -import { PrivateRoute } from '../structs/PrivateRoute.mjs'; -import { PositiveTimestamp } from '../structs/PositiveTimestamp.mjs'; -import { Result_PositiveTimestampCreationErrorZ } from '../structs/Result_PositiveTimestampCreationErrorZ.mjs'; -import { Result_NoneSemanticErrorZ } from '../structs/Result_NoneSemanticErrorZ.mjs'; -import { Result_InvoiceSemanticErrorZ } from '../structs/Result_InvoiceSemanticErrorZ.mjs'; -import { Description } from '../structs/Description.mjs'; -import { Result_DescriptionCreationErrorZ } from '../structs/Result_DescriptionCreationErrorZ.mjs'; -import { Result_PrivateRouteCreationErrorZ } from '../structs/Result_PrivateRouteCreationErrorZ.mjs'; +import { Result_NonePaymentErrorZ } from '../structs/Result_NonePaymentErrorZ.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'; @@ -251,13 +268,20 @@ 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 { TwoTuple_PublicKeyCOption_NetAddressZZ } from '../structs/TwoTuple_PublicKeyCOption_NetAddressZZ.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 { Result_BlindedPathNoneZ } from '../structs/Result_BlindedPathNoneZ.mjs'; +import { Result_BlindedPathDecodeErrorZ } from '../structs/Result_BlindedPathDecodeErrorZ.mjs'; +import { Result_BlindedHopDecodeErrorZ } from '../structs/Result_BlindedHopDecodeErrorZ.mjs'; import { GraphSyncError } from '../structs/GraphSyncError.mjs'; import { Result_u32GraphSyncErrorZ } from '../structs/Result_u32GraphSyncErrorZ.mjs'; import { Result_NoneErrorZ } from '../structs/Result_NoneErrorZ.mjs'; @@ -296,14 +320,11 @@ import { Pong } from '../structs/Pong.mjs'; import { Result_PongDecodeErrorZ } from '../structs/Result_PongDecodeErrorZ.mjs'; import { Result_UnsignedChannelAnnouncementDecodeErrorZ } from '../structs/Result_UnsignedChannelAnnouncementDecodeErrorZ.mjs'; import { Result_ChannelAnnouncementDecodeErrorZ } from '../structs/Result_ChannelAnnouncementDecodeErrorZ.mjs'; -import { UnsignedChannelUpdate } from '../structs/UnsignedChannelUpdate.mjs'; import { Result_UnsignedChannelUpdateDecodeErrorZ } from '../structs/Result_UnsignedChannelUpdateDecodeErrorZ.mjs'; import { Result_ChannelUpdateDecodeErrorZ } from '../structs/Result_ChannelUpdateDecodeErrorZ.mjs'; import { Result_ErrorMessageDecodeErrorZ } from '../structs/Result_ErrorMessageDecodeErrorZ.mjs'; 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'; @@ -311,23 +332,42 @@ import { Result_ReplyShortChannelIdsEndDecodeErrorZ } from '../structs/Result_Re import { Result_QueryChannelRangeDecodeErrorZ } from '../structs/Result_QueryChannelRangeDecodeErrorZ.mjs'; import { Result_ReplyChannelRangeDecodeErrorZ } from '../structs/Result_ReplyChannelRangeDecodeErrorZ.mjs'; import { Result_GossipTimestampFilterDecodeErrorZ } from '../structs/Result_GossipTimestampFilterDecodeErrorZ.mjs'; -import { SignOrCreationError } from '../structs/SignOrCreationError.mjs'; -import { Result_InvoiceSignOrCreationErrorZ } from '../structs/Result_InvoiceSignOrCreationErrorZ.mjs'; import { WatchedOutput } from '../structs/WatchedOutput.mjs'; 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 { 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 { MonitorUpdateId } from '../structs/MonitorUpdateId.mjs'; +import { TwoTuple_OutPointCVec_MonitorUpdateIdZZ } from '../structs/TwoTuple_OutPointCVec_MonitorUpdateIdZZ.mjs'; +import { Invoice } from '../structs/Invoice.mjs'; +import { SignOrCreationError } from '../structs/SignOrCreationError.mjs'; +import { Result_InvoiceSignOrCreationErrorZ } from '../structs/Result_InvoiceSignOrCreationErrorZ.mjs'; +import { ParseError } from '../structs/ParseError.mjs'; +import { Result_SiPrefixParseErrorZ } from '../structs/Result_SiPrefixParseErrorZ.mjs'; +import { ParseOrSemanticError } from '../structs/ParseOrSemanticError.mjs'; +import { Result_InvoiceParseOrSemanticErrorZ } from '../structs/Result_InvoiceParseOrSemanticErrorZ.mjs'; +import { SignedRawInvoice } from '../structs/SignedRawInvoice.mjs'; +import { Result_SignedRawInvoiceParseErrorZ } from '../structs/Result_SignedRawInvoiceParseErrorZ.mjs'; +import { RawInvoice } from '../structs/RawInvoice.mjs'; +import { InvoiceSignature } from '../structs/InvoiceSignature.mjs'; +import { ThreeTuple_RawInvoice_u832InvoiceSignatureZ } from '../structs/ThreeTuple_RawInvoice_u832InvoiceSignatureZ.mjs'; +import { PayeePubKey } from '../structs/PayeePubKey.mjs'; +import { Result_PayeePubKeyErrorZ } from '../structs/Result_PayeePubKeyErrorZ.mjs'; +import { PrivateRoute } from '../structs/PrivateRoute.mjs'; +import { PositiveTimestamp } from '../structs/PositiveTimestamp.mjs'; +import { Result_PositiveTimestampCreationErrorZ } from '../structs/Result_PositiveTimestampCreationErrorZ.mjs'; +import { Result_NoneSemanticErrorZ } from '../structs/Result_NoneSemanticErrorZ.mjs'; +import { Result_InvoiceSemanticErrorZ } from '../structs/Result_InvoiceSemanticErrorZ.mjs'; +import { Description } from '../structs/Description.mjs'; +import { Result_DescriptionCreationErrorZ } from '../structs/Result_DescriptionCreationErrorZ.mjs'; +import { Result_PrivateRouteCreationErrorZ } from '../structs/Result_PrivateRouteCreationErrorZ.mjs'; import { BigSize } from '../structs/BigSize.mjs'; import { ChannelUsage } from '../structs/ChannelUsage.mjs'; import { Score, ScoreInterface } from '../structs/Score.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'; @@ -336,46 +376,61 @@ 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 { EventHandler, EventHandlerInterface } from '../structs/EventHandler.mjs'; +import { EventsProvider, EventsProviderInterface } from '../structs/EventsProvider.mjs'; import { KeysManager } from '../structs/KeysManager.mjs'; import { PhantomKeysManager } from '../structs/PhantomKeysManager.mjs'; import { ChainParameters } from '../structs/ChainParameters.mjs'; +import { Retry } from '../structs/Retry.mjs'; +import { MessageSendEventsProvider, MessageSendEventsProviderInterface } from '../structs/MessageSendEventsProvider.mjs'; import { ChannelMessageHandler, ChannelMessageHandlerInterface } from '../structs/ChannelMessageHandler.mjs'; 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 { OnionMessageProvider, OnionMessageProviderInterface } from '../structs/OnionMessageProvider.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'; import { PeerManager } from '../structs/PeerManager.mjs'; import { DirectedChannelTransactionParameters } from '../structs/DirectedChannelTransactionParameters.mjs'; -import { ReadOnlyNetworkGraph } from '../structs/ReadOnlyNetworkGraph.mjs'; +import { OfferFeatures } from '../structs/OfferFeatures.mjs'; +import { InvoiceRequestFeatures } from '../structs/InvoiceRequestFeatures.mjs'; +import { Bolt12InvoiceFeatures } from '../structs/Bolt12InvoiceFeatures.mjs'; +import { UnsignedInvoice } from '../structs/UnsignedInvoice.mjs'; +import { UnsignedInvoiceRequest } from '../structs/UnsignedInvoiceRequest.mjs'; +import { InvoiceRequest } from '../structs/InvoiceRequest.mjs'; +import { Offer } from '../structs/Offer.mjs'; +import { Amount } from '../structs/Amount.mjs'; +import { Quantity } from '../structs/Quantity.mjs'; +import { Refund } from '../structs/Refund.mjs'; import { P2PGossipSync } from '../structs/P2PGossipSync.mjs'; +import { ReadOnlyNetworkGraph } from '../structs/ReadOnlyNetworkGraph.mjs'; import { DirectedChannelInfo } from '../structs/DirectedChannelInfo.mjs'; import { EffectiveCapacity } from '../structs/EffectiveCapacity.mjs'; +import { DefaultRouter } from '../structs/DefaultRouter.mjs'; +import { ScorerAccountingForInFlightHtlcs } from '../structs/ScorerAccountingForInFlightHtlcs.mjs'; +import { Hints } from '../structs/Hints.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 { GossipSync } from '../structs/GossipSync.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 { MinFinalCltvExpiryDelta } from '../structs/MinFinalCltvExpiryDelta.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' @@ -401,7 +456,7 @@ import * as bindings from '../bindings.mjs' */ export class ChannelMonitor extends CommonBase { /* @internal */ - public constructor(_dummy: object, ptr: bigint) { + public constructor(_dummy: null, ptr: bigint) { super(ptr, bindings.ChannelMonitor_free); } @@ -436,7 +491,7 @@ export class ChannelMonitor extends CommonBase { * panics if the given update is not the next update by update_id. */ public update_monitor(updates: ChannelMonitorUpdate, broadcaster: BroadcasterInterface, fee_estimator: FeeEstimator, logger: Logger): Result_NoneNoneZ { - const ret: bigint = bindings.ChannelMonitor_update_monitor(this.ptr, updates == null ? 0n : CommonBase.get_ptr_of(updates), broadcaster == null ? 0n : CommonBase.get_ptr_of(broadcaster), fee_estimator == null ? 0n : CommonBase.get_ptr_of(fee_estimator), logger == null ? 0n : CommonBase.get_ptr_of(logger)); + const ret: bigint = bindings.ChannelMonitor_update_monitor(this.ptr, updates == null ? 0n : CommonBase.get_ptr_of(updates), CommonBase.get_ptr_of(broadcaster), CommonBase.get_ptr_of(fee_estimator), CommonBase.get_ptr_of(logger)); const ret_hu_conv: Result_NoneNoneZ = Result_NoneNoneZ.constr_from_ptr(ret); CommonBase.add_ref_from(this, updates); CommonBase.add_ref_from(this, broadcaster); @@ -488,7 +543,7 @@ export class ChannelMonitor extends CommonBase { * have been registered. */ public load_outputs_to_watch(filter: Filter): void { - bindings.ChannelMonitor_load_outputs_to_watch(this.ptr, filter == null ? 0n : CommonBase.get_ptr_of(filter)); + bindings.ChannelMonitor_load_outputs_to_watch(this.ptr, CommonBase.get_ptr_of(filter)); CommonBase.add_ref_from(this, filter); } @@ -514,9 +569,11 @@ export class ChannelMonitor extends CommonBase { * Gets the list of pending events which were generated by previous actions, clearing the list * in the process. * - * This is called by ChainMonitor::get_and_clear_pending_events() and is equivalent to - * EventsProvider::get_and_clear_pending_events() except that it requires &mut self as we do - * no internal locking in ChannelMonitors. + * This is called by the [`EventsProvider::process_pending_events`] implementation for + * [`ChainMonitor`]. + * + * [`EventsProvider::process_pending_events`]: crate::events::EventsProvider::process_pending_events + * [`ChainMonitor`]: crate::chain::chainmonitor::ChainMonitor */ public get_and_clear_pending_events(): Event[] { const ret: number = bindings.ChannelMonitor_get_and_clear_pending_events(this.ptr); @@ -548,17 +605,23 @@ export class ChannelMonitor extends CommonBase { /** * Used by ChannelManager deserialization to broadcast the latest holder state if its copy of - * the Channel was out-of-date. You may use it to get a broadcastable holder toxic tx in case of - * fallen-behind, i.e when receiving a channel_reestablish with a proof that our counterparty side knows - * a higher revocation secret than the holder commitment number we are aware of. Broadcasting these - * transactions are UNSAFE, as they allow counterparty side to punish you. Nevertheless you may want to - * broadcast them if counterparty don't close channel with his higher commitment transaction after a - * substantial amount of time (a month or even a year) to get back funds. Best may be to contact - * out-of-band the other node operator to coordinate with him if option is available to you. - * In any-case, choice is up to the user. + * the Channel was out-of-date. + * + * You may also use this to broadcast the latest local commitment transaction, either because + * a monitor update failed with [`ChannelMonitorUpdateStatus::PermanentFailure`] or because we've + * fallen behind (i.e. we've received proof that our counterparty side knows a revocation + * secret we gave them that they shouldn't know). + * + * Broadcasting these transactions in the second case is UNSAFE, as they allow counterparty + * side to punish you. Nevertheless you may want to broadcast them if counterparty doesn't + * close channel with their commitment transaction after a substantial amount of time. Best + * may be to contact the other node operator out-of-band to coordinate other options available + * to you. In any-case, the choice is up to you. + * + * [`ChannelMonitorUpdateStatus::PermanentFailure`]: super::ChannelMonitorUpdateStatus::PermanentFailure */ public get_latest_holder_commitment_txn(logger: Logger): Uint8Array[] { - const ret: number = bindings.ChannelMonitor_get_latest_holder_commitment_txn(this.ptr, logger == null ? 0n : CommonBase.get_ptr_of(logger)); + const ret: number = bindings.ChannelMonitor_get_latest_holder_commitment_txn(this.ptr, CommonBase.get_ptr_of(logger)); const ret_conv_12_len: number = bindings.getArrayLength(ret); const ret_conv_12_arr: Uint8Array[] = new Array(ret_conv_12_len).fill(null); for (var m = 0; m < ret_conv_12_len; m++) { @@ -585,7 +648,7 @@ export class ChannelMonitor extends CommonBase { * [`get_outputs_to_watch`]: #method.get_outputs_to_watch */ public block_connected(header: Uint8Array, txdata: TwoTuple_usizeTransactionZ[], height: number, broadcaster: BroadcasterInterface, fee_estimator: FeeEstimator, logger: Logger): TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ[] { - const ret: number = bindings.ChannelMonitor_block_connected(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(header, 80)), bindings.encodeUint64Array(txdata != null ? txdata.map(txdata_conv_28 => txdata_conv_28 != null ? CommonBase.get_ptr_of(txdata_conv_28) : 0n) : null), height, broadcaster == null ? 0n : CommonBase.get_ptr_of(broadcaster), fee_estimator == null ? 0n : CommonBase.get_ptr_of(fee_estimator), logger == null ? 0n : CommonBase.get_ptr_of(logger)); + const ret: number = bindings.ChannelMonitor_block_connected(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(header, 80)), bindings.encodeUint64Array(txdata != null ? txdata.map(txdata_conv_28 => txdata_conv_28 != null ? CommonBase.get_ptr_of(txdata_conv_28) : 0n) : null), height, CommonBase.get_ptr_of(broadcaster), CommonBase.get_ptr_of(fee_estimator), CommonBase.get_ptr_of(logger)); const ret_conv_39_len: number = bindings.getArrayLength(ret); const ret_conv_39_arr: TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ[] = new Array(ret_conv_39_len).fill(null); for (var n = 0; n < ret_conv_39_len; n++) { @@ -606,7 +669,7 @@ export class ChannelMonitor extends CommonBase { * appropriately. */ public block_disconnected(header: Uint8Array, height: number, broadcaster: BroadcasterInterface, fee_estimator: FeeEstimator, logger: Logger): void { - bindings.ChannelMonitor_block_disconnected(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(header, 80)), height, broadcaster == null ? 0n : CommonBase.get_ptr_of(broadcaster), fee_estimator == null ? 0n : CommonBase.get_ptr_of(fee_estimator), logger == null ? 0n : CommonBase.get_ptr_of(logger)); + bindings.ChannelMonitor_block_disconnected(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(header, 80)), height, CommonBase.get_ptr_of(broadcaster), CommonBase.get_ptr_of(fee_estimator), CommonBase.get_ptr_of(logger)); CommonBase.add_ref_from(this, broadcaster); CommonBase.add_ref_from(this, fee_estimator); CommonBase.add_ref_from(this, logger); @@ -622,7 +685,7 @@ export class ChannelMonitor extends CommonBase { * [`block_connected`]: Self::block_connected */ public transactions_confirmed(header: Uint8Array, txdata: TwoTuple_usizeTransactionZ[], height: number, broadcaster: BroadcasterInterface, fee_estimator: FeeEstimator, logger: Logger): TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ[] { - const ret: number = bindings.ChannelMonitor_transactions_confirmed(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(header, 80)), bindings.encodeUint64Array(txdata != null ? txdata.map(txdata_conv_28 => txdata_conv_28 != null ? CommonBase.get_ptr_of(txdata_conv_28) : 0n) : null), height, broadcaster == null ? 0n : CommonBase.get_ptr_of(broadcaster), fee_estimator == null ? 0n : CommonBase.get_ptr_of(fee_estimator), logger == null ? 0n : CommonBase.get_ptr_of(logger)); + const ret: number = bindings.ChannelMonitor_transactions_confirmed(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(header, 80)), bindings.encodeUint64Array(txdata != null ? txdata.map(txdata_conv_28 => txdata_conv_28 != null ? CommonBase.get_ptr_of(txdata_conv_28) : 0n) : null), height, CommonBase.get_ptr_of(broadcaster), CommonBase.get_ptr_of(fee_estimator), CommonBase.get_ptr_of(logger)); const ret_conv_39_len: number = bindings.getArrayLength(ret); const ret_conv_39_arr: TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ[] = new Array(ret_conv_39_len).fill(null); for (var n = 0; n < ret_conv_39_len; n++) { @@ -647,7 +710,7 @@ export class ChannelMonitor extends CommonBase { * [`block_disconnected`]: Self::block_disconnected */ public transaction_unconfirmed(txid: Uint8Array, broadcaster: BroadcasterInterface, fee_estimator: FeeEstimator, logger: Logger): void { - bindings.ChannelMonitor_transaction_unconfirmed(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(txid, 32)), broadcaster == null ? 0n : CommonBase.get_ptr_of(broadcaster), fee_estimator == null ? 0n : CommonBase.get_ptr_of(fee_estimator), logger == null ? 0n : CommonBase.get_ptr_of(logger)); + bindings.ChannelMonitor_transaction_unconfirmed(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(txid, 32)), CommonBase.get_ptr_of(broadcaster), CommonBase.get_ptr_of(fee_estimator), CommonBase.get_ptr_of(logger)); CommonBase.add_ref_from(this, broadcaster); CommonBase.add_ref_from(this, fee_estimator); CommonBase.add_ref_from(this, logger); @@ -663,7 +726,7 @@ export class ChannelMonitor extends CommonBase { * [`block_connected`]: Self::block_connected */ public best_block_updated(header: Uint8Array, height: number, broadcaster: BroadcasterInterface, fee_estimator: FeeEstimator, logger: Logger): TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ[] { - const ret: number = bindings.ChannelMonitor_best_block_updated(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(header, 80)), height, broadcaster == null ? 0n : CommonBase.get_ptr_of(broadcaster), fee_estimator == null ? 0n : CommonBase.get_ptr_of(fee_estimator), logger == null ? 0n : CommonBase.get_ptr_of(logger)); + const ret: number = bindings.ChannelMonitor_best_block_updated(this.ptr, bindings.encodeUint8Array(bindings.check_arr_len(header, 80)), height, CommonBase.get_ptr_of(broadcaster), CommonBase.get_ptr_of(fee_estimator), CommonBase.get_ptr_of(logger)); const ret_conv_39_len: number = bindings.getArrayLength(ret); const ret_conv_39_arr: TwoTuple_TxidCVec_C2Tuple_u32TxOutZZZ[] = new Array(ret_conv_39_len).fill(null); for (var n = 0; n < ret_conv_39_len; n++) { @@ -682,17 +745,18 @@ export class ChannelMonitor extends CommonBase { /** * Returns the set of txids that should be monitored for re-organization out of the chain. */ - public get_relevant_txids(): Uint8Array[] { + public get_relevant_txids(): TwoTuple_TxidBlockHashZ[] { const ret: number = bindings.ChannelMonitor_get_relevant_txids(this.ptr); - const ret_conv_12_len: number = bindings.getArrayLength(ret); - const ret_conv_12_arr: Uint8Array[] = new Array(ret_conv_12_len).fill(null); - for (var m = 0; m < ret_conv_12_len; m++) { - const ret_conv_12: number = bindings.getU32ArrayElem(ret, m); - const ret_conv_12_conv: Uint8Array = bindings.decodeUint8Array(ret_conv_12); - ret_conv_12_arr[m] = ret_conv_12_conv; + const ret_conv_25_len: number = bindings.getArrayLength(ret); + const ret_conv_25_arr: TwoTuple_TxidBlockHashZ[] = new Array(ret_conv_25_len).fill(null); + for (var z = 0; z < ret_conv_25_len; z++) { + const ret_conv_25: bigint = bindings.getU64ArrayElem(ret, z); + const ret_conv_25_hu_conv: TwoTuple_TxidBlockHashZ = new TwoTuple_TxidBlockHashZ(null, ret_conv_25); + CommonBase.add_ref_from(ret_conv_25_hu_conv, this); + ret_conv_25_arr[z] = ret_conv_25_hu_conv; } bindings.freeWasmMemory(ret) - return ret_conv_12_arr; + return ret_conv_25_arr; } /** @@ -706,6 +770,20 @@ export class ChannelMonitor extends CommonBase { return ret_hu_conv; } + /** + * Triggers rebroadcasts/fee-bumps of pending claims from a force-closed channel. This is + * crucial in preventing certain classes of pinning attacks, detecting substantial mempool + * feerate changes between blocks, and ensuring reliability if broadcasting fails. We recommend + * invoking this every 30 seconds, or lower if running in an environment with spotty + * connections, like on mobile. + */ + public rebroadcast_pending_claims(broadcaster: BroadcasterInterface, fee_estimator: FeeEstimator, logger: Logger): void { + bindings.ChannelMonitor_rebroadcast_pending_claims(this.ptr, CommonBase.get_ptr_of(broadcaster), CommonBase.get_ptr_of(fee_estimator), CommonBase.get_ptr_of(logger)); + CommonBase.add_ref_from(this, broadcaster); + CommonBase.add_ref_from(this, fee_estimator); + CommonBase.add_ref_from(this, logger); + } + /** * Gets the balances in this channel which are either claimable by us if we were to * force-close the channel now or which are claimable on-chain (possibly awaiting