Versions in this module Expand all Collapse all v1 v1.0.0 May 10, 2019 Changes in this version + const Add + const Fail + const FeeUpdate + const MalformedFail + const Settle + const StateHintSize + var DefaultPrivatePassphrase = []byte("hello") + var DefaultPublicPassphrase = []byte("public") + var ErrBelowChanReserve = fmt.Errorf(...) + var ErrBelowMinHTLC = fmt.Errorf(...) + var ErrCannotSyncCommitChains = fmt.Errorf("unable to sync commit chains") + var ErrChanClosing = fmt.Errorf("channel is being closed, operation disallowed") + var ErrCommitSyncLocalDataLoss = fmt.Errorf(...) + var ErrCommitSyncRemoteDataLoss = fmt.Errorf(...) + var ErrDoubleSpend = errors.New("Transaction rejected: output already spent") + var ErrInvalidLastCommitSecret = fmt.Errorf("commit secret is incorrect") + var ErrInvalidLocalUnrevokedCommitPoint = fmt.Errorf(...) + var ErrMaxHTLCNumber = fmt.Errorf(...) + var ErrMaxPendingAmount = fmt.Errorf(...) + var ErrMaxWeightCost = fmt.Errorf(...) + var ErrNoOutputs = errors.New("no outputs") + var ErrNoWindow = fmt.Errorf(...) + var ErrNotMine = errors.New("the passed output doesn't belong to the wallet") + var TimelockShift = uint32(1 << 29) + func ChanSyncMsg(c *channeldb.OpenChannel, isRestoredChan bool) (*lnwire.ChannelReestablish, error) + func CreateCommitTx(fundingOutput wire.TxIn, keyRing *CommitmentKeyRing, csvTimeout uint32, ...) (*wire.MsgTx, error) + func CreateCommitmentTxns(localBalance, remoteBalance btcutil.Amount, ...) (*wire.MsgTx, *wire.MsgTx, error) + func CreateCooperativeCloseTx(fundingTxIn wire.TxIn, ...) *wire.MsgTx + func CreateTestChannels() (*LightningChannel, *LightningChannel, func(), error) + func DefaultDustLimit() btcutil.Amount + func DeriveStateHintObfuscator(key1, key2 *btcec.PublicKey) [StateHintSize]byte + func DisableLog() + func ErrNumConfsTooLarge(numConfs, maxNumConfs uint32) error + func ForceStateTransition(chanA, chanB *LightningChannel) error + func GetStateNumHint(commitTx *wire.MsgTx, obfuscator [StateHintSize]byte) uint64 + func RegisterWallet(driver *WalletDriver) error + func SetStateNumHint(commitTx *wire.MsgTx, stateNum uint64, obfuscator [StateHintSize]byte) error + func SupportedWallets() []string + func UseLogger(logger btclog.Logger) + type AddressType uint8 + const NestedWitnessPubKey + const UnknownAddressType + const WitnessPubKey + type BitcoindFeeEstimator struct + func NewBitcoindFeeEstimator(rpcConfig rpcclient.ConnConfig, fallBackFeeRate SatPerKWeight) (*BitcoindFeeEstimator, error) + func (b *BitcoindFeeEstimator) EstimateFeePerKW(numBlocks uint32) (SatPerKWeight, error) + func (b *BitcoindFeeEstimator) RelayFeePerKW() SatPerKWeight + func (b *BitcoindFeeEstimator) Start() error + func (b *BitcoindFeeEstimator) Stop() error + type BlockChainIO interface + GetBestBlock func() (*chainhash.Hash, int32, error) + GetBlock func(blockHash *chainhash.Hash) (*wire.MsgBlock, error) + GetBlockHash func(blockHeight int64) (*chainhash.Hash, error) + GetUtxo func(op *wire.OutPoint, pkScript []byte, heightHint uint32) (*wire.TxOut, error) + type BreachRetribution struct + BreachHeight uint32 + BreachTransaction *wire.MsgTx + ChainHash chainhash.Hash + HtlcRetributions []HtlcRetribution + KeyRing *CommitmentKeyRing + LocalOutpoint wire.OutPoint + LocalOutputSignDesc *input.SignDescriptor + PendingHTLCs []channeldb.HTLC + RemoteDelay uint32 + RemoteOutpoint wire.OutPoint + RemoteOutputSignDesc *input.SignDescriptor + RevokedStateNum uint64 + func NewBreachRetribution(chanState *channeldb.OpenChannel, stateNum uint64, breachHeight uint32) (*BreachRetribution, error) + type BtcdFeeEstimator struct + func NewBtcdFeeEstimator(rpcConfig rpcclient.ConnConfig, fallBackFeeRate SatPerKWeight) (*BtcdFeeEstimator, error) + func (b *BtcdFeeEstimator) EstimateFeePerKW(numBlocks uint32) (SatPerKWeight, error) + func (b *BtcdFeeEstimator) RelayFeePerKW() SatPerKWeight + func (b *BtcdFeeEstimator) Start() error + func (b *BtcdFeeEstimator) Stop() error + type ChannelContribution struct + ChangeOutputs []*wire.TxOut + FirstCommitmentPoint *btcec.PublicKey + FundingAmount btcutil.Amount + Inputs []*wire.TxIn + type ChannelReservation struct + func NewChannelReservation(capacity, fundingAmt btcutil.Amount, commitFeePerKw SatPerKWeight, ...) (*ChannelReservation, error) + func (r *ChannelReservation) Cancel() error + func (r *ChannelReservation) CommitConstraints(c *channeldb.ChannelConstraints) error + func (r *ChannelReservation) CompleteReservation(fundingInputScripts []*input.Script, commitmentSig []byte) (*channeldb.OpenChannel, error) + func (r *ChannelReservation) CompleteReservationSingle(fundingPoint *wire.OutPoint, commitSig []byte) (*channeldb.OpenChannel, error) + func (r *ChannelReservation) FinalFundingTx() *wire.MsgTx + func (r *ChannelReservation) FundingOutpoint() *wire.OutPoint + func (r *ChannelReservation) OurContribution() *ChannelContribution + func (r *ChannelReservation) OurSignatures() ([]*input.Script, []byte) + func (r *ChannelReservation) ProcessContribution(theirContribution *ChannelContribution) error + func (r *ChannelReservation) ProcessSingleContribution(theirContribution *ChannelContribution) error + func (r *ChannelReservation) SetNumConfsRequired(numConfs uint16) + func (r *ChannelReservation) TheirContribution() *ChannelContribution + func (r *ChannelReservation) TheirSignatures() ([]*input.Script, []byte) + type CommitOutputResolution struct + MaturityDelay uint32 + SelfOutPoint wire.OutPoint + SelfOutputSignDesc input.SignDescriptor + type CommitmentKeyRing struct + CommitPoint *btcec.PublicKey + DelayKey *btcec.PublicKey + LocalCommitKeyTweak []byte + LocalHtlcKey *btcec.PublicKey + LocalHtlcKeyTweak []byte + NoDelayKey *btcec.PublicKey + RemoteHtlcKey *btcec.PublicKey + RevocationKey *btcec.PublicKey + type Config struct + ChainIO BlockChainIO + Database *channeldb.DB + DefaultConstraints channeldb.ChannelConstraints + FeeEstimator FeeEstimator + NetParams chaincfg.Params + Notifier chainntnfs.ChainNotifier + SecretKeyRing keychain.SecretKeyRing + Signer input.Signer + WalletController WalletController + type ErrHtlcIndexAlreadyFailed uint64 + func (e ErrHtlcIndexAlreadyFailed) Error() string + type ErrHtlcIndexAlreadySettled uint64 + func (e ErrHtlcIndexAlreadySettled) Error() string + type ErrInsufficientFunds struct + func (e *ErrInsufficientFunds) Error() string + type ErrInvalidSettlePreimage struct + func (e ErrInvalidSettlePreimage) Error() string + type ErrUnknownHtlcIndex struct + func (e ErrUnknownHtlcIndex) Error() string + type FeeEstimator interface + EstimateFeePerKW func(numBlocks uint32) (SatPerKWeight, error) + RelayFeePerKW func() SatPerKWeight + Start func() error + Stop func() error + type HtlcIndexErr struct + type HtlcResolutions struct + IncomingHTLCs []IncomingHtlcResolution + OutgoingHTLCs []OutgoingHtlcResolution + type HtlcRetribution struct + IsIncoming bool + OutPoint wire.OutPoint + SecondLevelWitnessScript []byte + SignDesc input.SignDescriptor + type IncomingHtlcResolution struct + ClaimOutpoint wire.OutPoint + CsvDelay uint32 + Preimage [32]byte + SignedSuccessTx *wire.MsgTx + SweepSignDesc input.SignDescriptor + func (r *IncomingHtlcResolution) HtlcPoint() wire.OutPoint + type InitFundingReserveMsg struct + Capacity btcutil.Amount + ChainHash *chainhash.Hash + CommitFeePerKw SatPerKWeight + Flags lnwire.FundingFlag + FundingAmount btcutil.Amount + FundingFeePerKw SatPerKWeight + MinConfs int32 + NodeAddr net.Addr + NodeID *btcec.PublicKey + PushMSat lnwire.MilliSatoshi + type InvalidCommitSigError struct + func (i *InvalidCommitSigError) Error() string + type InvalidHtlcSigError struct + func (i *InvalidHtlcSigError) Error() string + type LightningChannel struct + Capacity btcutil.Amount + ChanPoint *wire.OutPoint + LocalFundingKey *btcec.PublicKey + RemoteFundingKey *btcec.PublicKey + Signer input.Signer + func NewLightningChannel(signer input.Signer, pCache PreimageCache, state *channeldb.OpenChannel, ...) (*LightningChannel, error) + func (lc *LightningChannel) AckAddHtlcs(addRef channeldb.AddRef) error + func (lc *LightningChannel) AckSettleFails(settleFailRefs ...channeldb.SettleFailRef) error + func (lc *LightningChannel) ActiveHtlcs() []channeldb.HTLC + func (lc *LightningChannel) AddHTLC(htlc *lnwire.UpdateAddHTLC, openKey *channeldb.CircuitKey) (uint64, error) + func (lc *LightningChannel) AvailableBalance() lnwire.MilliSatoshi + func (lc *LightningChannel) CalcFee(feeRate SatPerKWeight) btcutil.Amount + func (lc *LightningChannel) ChannelPoint() *wire.OutPoint + func (lc *LightningChannel) CommitFeeRate() SatPerKWeight + func (lc *LightningChannel) CompleteCooperativeClose(localSig, remoteSig []byte, localDeliveryScript, remoteDeliveryScript []byte, ...) (*wire.MsgTx, btcutil.Amount, error) + func (lc *LightningChannel) CreateCloseProposal(proposedFee btcutil.Amount, localDeliveryScript []byte, ...) ([]byte, *chainhash.Hash, btcutil.Amount, error) + func (lc *LightningChannel) FailHTLC(htlcIndex uint64, reason []byte, sourceRef *channeldb.AddRef, ...) error + func (lc *LightningChannel) ForceClose() (*LocalForceCloseSummary, error) + func (lc *LightningChannel) FullySynced() bool + func (lc *LightningChannel) FwdMinHtlc() lnwire.MilliSatoshi + func (lc *LightningChannel) InitNextRevocation(revKey *btcec.PublicKey) error + func (lc *LightningChannel) IsInitiator() bool + func (lc *LightningChannel) IsPending() bool + func (lc *LightningChannel) LoadFwdPkgs() ([]*channeldb.FwdPkg, error) + func (lc *LightningChannel) LocalChanReserve() btcutil.Amount + func (lc *LightningChannel) MalformedFailHTLC(htlcIndex uint64, failCode lnwire.FailCode, shaOnionBlob [sha256.Size]byte, ...) error + func (lc *LightningChannel) MarkCommitmentBroadcasted() error + func (lc *LightningChannel) NextLocalHtlcIndex() (uint64, error) + func (lc *LightningChannel) NextRevocationKey() (*btcec.PublicKey, error) + func (lc *LightningChannel) ProcessChanSyncMsg(msg *lnwire.ChannelReestablish) ([]lnwire.Message, []channeldb.CircuitKey, []channeldb.CircuitKey, error) + func (lc *LightningChannel) ReceiveFailHTLC(htlcIndex uint64, reason []byte) error + func (lc *LightningChannel) ReceiveHTLC(htlc *lnwire.UpdateAddHTLC) (uint64, error) + func (lc *LightningChannel) ReceiveHTLCSettle(preimage [32]byte, htlcIndex uint64) error + func (lc *LightningChannel) ReceiveNewCommitment(commitSig lnwire.Sig, htlcSigs []lnwire.Sig) error + func (lc *LightningChannel) ReceiveRevocation(revMsg *lnwire.RevokeAndAck) (*channeldb.FwdPkg, []*PaymentDescriptor, []*PaymentDescriptor, error) + func (lc *LightningChannel) ReceiveUpdateFee(feePerKw SatPerKWeight) error + func (lc *LightningChannel) RemoteCommitHeight() uint64 + func (lc *LightningChannel) RemoteNextRevocation() *btcec.PublicKey + func (lc *LightningChannel) RemoveFwdPkg(height uint64) error + func (lc *LightningChannel) ResetState() + func (lc *LightningChannel) RevokeCurrentCommitment() (*lnwire.RevokeAndAck, []channeldb.HTLC, error) + func (lc *LightningChannel) SetFwdFilter(height uint64, fwdFilter *channeldb.PkgFilter) error + func (lc *LightningChannel) SettleHTLC(preimage [32]byte, htlcIndex uint64, sourceRef *channeldb.AddRef, ...) error + func (lc *LightningChannel) ShortChanID() lnwire.ShortChannelID + func (lc *LightningChannel) SignNextCommitment() (lnwire.Sig, []lnwire.Sig, error) + func (lc *LightningChannel) State() *channeldb.OpenChannel + func (lc *LightningChannel) StateSnapshot() *channeldb.ChannelSnapshot + func (lc *LightningChannel) UpdateFee(feePerKw SatPerKWeight) error + type LightningWallet struct + Cfg Config + func NewLightningWallet(Cfg Config) (*LightningWallet, error) + func (l *LightningWallet) ActiveReservations() []*ChannelReservation + func (l *LightningWallet) InitChannelReservation(req *InitFundingReserveMsg) (*ChannelReservation, error) + func (l *LightningWallet) LockedOutpoints() []*wire.OutPoint + func (l *LightningWallet) ResetReservations() + func (l *LightningWallet) Shutdown() error + func (l *LightningWallet) Startup() error + func (l *LightningWallet) WithCoinSelectLock(f func() error) error + type LocalForceCloseSummary struct + ChanPoint wire.OutPoint + ChanSnapshot channeldb.ChannelSnapshot + CloseTx *wire.MsgTx + CommitResolution *CommitOutputResolution + HtlcResolutions *HtlcResolutions + func NewLocalForceCloseSummary(chanState *channeldb.OpenChannel, signer input.Signer, pCache PreimageCache, ...) (*LocalForceCloseSummary, error) + type MessageSigner interface + SignMessage func(pubKey *btcec.PublicKey, msg []byte) (*btcec.Signature, error) + type OpenChannelDetails struct + Channel *LightningChannel + ConfirmationHeight uint32 + TransactionIndex uint32 + type OutgoingHtlcResolution struct + ClaimOutpoint wire.OutPoint + CsvDelay uint32 + Expiry uint32 + SignedTimeoutTx *wire.MsgTx + SweepSignDesc input.SignDescriptor + func (r *OutgoingHtlcResolution) HtlcPoint() wire.OutPoint + type PaymentDescriptor struct + Amount lnwire.MilliSatoshi + ClosedCircuitKey *channeldb.CircuitKey + DestRef *channeldb.SettleFailRef + EntryType updateType + FailCode lnwire.FailCode + FailReason []byte + HtlcIndex uint64 + LogIndex uint64 + OnionBlob []byte + OpenCircuitKey *channeldb.CircuitKey + ParentIndex uint64 + RHash PaymentHash + RPreimage PaymentHash + ShaOnionBlob [sha256.Size]byte + SourceRef *channeldb.AddRef + Timeout uint32 + func PayDescsFromRemoteLogUpdates(chanID lnwire.ShortChannelID, height uint64, logUpdates []channeldb.LogUpdate) ([]*PaymentDescriptor, error) + type PaymentHash [32]byte + type PreimageCache interface + AddPreimages func(preimages ...lntypes.Preimage) error + LookupPreimage func(hash lntypes.Hash) (lntypes.Preimage, bool) + type ReservationError struct + func ErrChainMismatch(knownChain, unknownChain *chainhash.Hash) ReservationError + func ErrChanReserveTooLarge(reserve, maxReserve btcutil.Amount) ReservationError + func ErrChanReserveTooSmall(reserve, dustLimit btcutil.Amount) ReservationError + func ErrChanTooSmall(chanSize, minChanSize btcutil.Amount) ReservationError + func ErrCsvDelayTooLarge(remoteDelay, maxDelay uint16) ReservationError + func ErrFunderBalanceDust(commitFee, funderBalance, minBalance int64) ReservationError + func ErrMaxHtlcNumTooLarge(maxHtlc, maxMaxHtlc uint16) ReservationError + func ErrMaxHtlcNumTooSmall(maxHtlc, minMaxHtlc uint16) ReservationError + func ErrMaxValueInFlightTooSmall(maxValInFlight, minMaxValInFlight lnwire.MilliSatoshi) ReservationError + func ErrMinHtlcTooLarge(minHtlc, maxMinHtlc lnwire.MilliSatoshi) ReservationError + func ErrNonZeroPushAmount() ReservationError + func ErrZeroCapacity() ReservationError + type SatPerKVByte btcutil.Amount + func (s SatPerKVByte) FeeForVSize(vbytes int64) btcutil.Amount + func (s SatPerKVByte) FeePerKWeight() SatPerKWeight + type SatPerKWeight btcutil.Amount + const FeePerKwFloor + func (s SatPerKWeight) FeeForWeight(wu int64) btcutil.Amount + func (s SatPerKWeight) FeePerKVByte() SatPerKVByte + type SigPool struct + func NewSigPool(numWorkers int, signer input.Signer) *SigPool + func (s *SigPool) Start() error + func (s *SigPool) Stop() error + func (s *SigPool) SubmitSignBatch(signJobs []SignJob) + func (s *SigPool) SubmitVerifyBatch(verifyJobs []VerifyJob, cancelChan chan struct{}) <-chan *HtlcIndexErr + type SignJob struct + Cancel chan struct{} + OutputIndex int32 + Resp chan SignJobResp + SignDesc input.SignDescriptor + Tx *wire.MsgTx + type SignJobResp struct + Err error + Sig lnwire.Sig + type SparseConfFeeSource struct + URL string + func (s SparseConfFeeSource) GenQueryURL() string + func (s SparseConfFeeSource) ParseResponse(r io.Reader) (map[uint32]uint32, error) + type StaticFeeEstimator struct + func NewStaticFeeEstimator(feePerKW, relayFee SatPerKWeight) *StaticFeeEstimator + func (e StaticFeeEstimator) EstimateFeePerKW(numBlocks uint32) (SatPerKWeight, error) + func (e StaticFeeEstimator) RelayFeePerKW() SatPerKWeight + func (e StaticFeeEstimator) Start() error + func (e StaticFeeEstimator) Stop() error + type TransactionDetail struct + BlockHash *chainhash.Hash + BlockHeight int32 + DestAddresses []btcutil.Address + Hash chainhash.Hash + NumConfirmations int32 + Timestamp int64 + TotalFees int64 + Value btcutil.Amount + type TransactionSubscription interface + Cancel func() + ConfirmedTransactions func() chan *TransactionDetail + UnconfirmedTransactions func() chan *TransactionDetail + type UnilateralCloseSummary struct + CommitResolution *CommitOutputResolution + HtlcResolutions *HtlcResolutions + RemoteCommit channeldb.ChannelCommitment + func NewUnilateralCloseSummary(chanState *channeldb.OpenChannel, signer input.Signer, pCache PreimageCache, ...) (*UnilateralCloseSummary, error) + type Utxo struct + AddressType AddressType + Confirmations int64 + PkScript []byte + RedeemScript []byte + Value btcutil.Amount + WitnessScript []byte + type VerifyJob struct + Cancel chan struct{} + ErrResp chan *HtlcIndexErr + HtlcIndex uint64 + PubKey *btcec.PublicKey + Sig *btcec.Signature + SigHash func() ([]byte, error) + type WalletController interface + BackEnd func() string + ConfirmedBalance func(confs int32) (btcutil.Amount, error) + CreateSimpleTx func(outputs []*wire.TxOut, feeRate SatPerKWeight, dryRun bool) (*txauthor.AuthoredTx, error) + FetchInputInfo func(prevOut *wire.OutPoint) (*wire.TxOut, error) + IsOurAddress func(a btcutil.Address) bool + IsSynced func() (bool, int64, error) + LastUnusedAddress func(addrType AddressType) (btcutil.Address, error) + ListTransactionDetails func() ([]*TransactionDetail, error) + ListUnspentWitness func(minconfirms, maxconfirms int32) ([]*Utxo, error) + LockOutpoint func(o wire.OutPoint) + NewAddress func(addrType AddressType, change bool) (btcutil.Address, error) + PublishTransaction func(tx *wire.MsgTx) error + SendOutputs func(outputs []*wire.TxOut, feeRate SatPerKWeight) (*wire.MsgTx, error) + Start func() error + Stop func() error + SubscribeTransactions func() (TransactionSubscription, error) + UnlockOutpoint func(o wire.OutPoint) + type WalletDriver struct + BackEnds func() []string + New func(args ...interface{}) (WalletController, error) + WalletType string + func RegisteredWallets() []*WalletDriver + type WebAPIFeeEstimator struct + func NewWebAPIFeeEstimator(api WebAPIFeeSource, defaultFee SatPerKWeight) *WebAPIFeeEstimator + func (w *WebAPIFeeEstimator) EstimateFeePerKW(numBlocks uint32) (SatPerKWeight, error) + func (w *WebAPIFeeEstimator) RelayFeePerKW() SatPerKWeight + func (w *WebAPIFeeEstimator) Start() error + func (w *WebAPIFeeEstimator) Stop() error + type WebAPIFeeSource interface + GenQueryURL func() string + ParseResponse func(r io.Reader) (map[uint32]uint32, error)