-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Channel refactor #24
base: master
Are you sure you want to change the base?
Channel refactor #24
Commits on Mar 4, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 1600b52 - Browse repository at this point
Copy the full SHA 1600b52View commit details -
- LICENSE: change from MIT to AGPL (.Kiss fork) - Change package name suffix from .Core to .Kiss (skipping native build)
Configuration menu - View commit details
-
Copy full SHA for 5ca24f5 - Browse repository at this point
Copy the full SHA 5ca24f5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70f9932 - Browse repository at this point
Copy the full SHA 70f9932View commit details -
Implement revocation (joemphilips#11)
This commit adds the following: * getFundsFromForceClosingTransaction This function takes an on-chain transaction which spends the channel funds and tries to extract spendable utxos out of it. If successful, it returns a TransactionBuilder with txins added for each spendable output of the closing transaction and with the necessary keys and BuilderExtension added. To recover funds from a broadcast commitment transaction you just need to call this function, add outputs to the returned TransactionBuilder to send the money where you want it to go, then broadcast the transaction. * CommitmentToLocalBuilderExtension This is an NBitcoin BuilderExtension that tells TransactionBuilder how to recognise and sign lightning commitment transaction to_local outputs. getFundsFromForceClosingTransaction adds this extension to the TransactionBuilder it returns if it's needed to sign the transaction. * SeqConsumer A computation expression which makes it easy to write code that consumes a sequence one element at a time. * OptionCE A computation expression for creation options. Similar to the result computation expression.
Configuration menu - View commit details
-
Copy full SHA for 898f470 - Browse repository at this point
Copy the full SHA 898f470View commit details -
Re-add txout shuffling work-around (joemphilips#13)
This NBitcoin issue: MetacoSA/NBitcoin#931 somehow still hasn't been fixed properly (our geewallet CI still encounters it, surprisingly). So let's reapply the workaround[1] that we had removed[2]. [1] joemphilips@d813a97 [2] joemphilips@256893c
Configuration menu - View commit details
-
Copy full SHA for 1779487 - Browse repository at this point
Copy the full SHA 1779487View commit details -
These tests are failing randomly and macaroons aren't used by geewallet anyway. So exclude them from CI.
Configuration menu - View commit details
-
Copy full SHA for ceb40f0 - Browse repository at this point
Copy the full SHA ceb40f0View commit details -
Move and export fee mismatch calculation function
Move/rename ChannelError.feeRateMismatch to FeeRatePerKw.MismatchRatio. This function is useful outside of DotNetLightning, so we now export it so that library consumers can use it.
Configuration menu - View commit details
-
Copy full SHA for f2bde1f - Browse repository at this point
Copy the full SHA f2bde1fView commit details -
Actually apply update fee messages
Prior to this commit, apply an update_fee message would cause DNL to validate the message but not actually apply it to its commitments. It now updates its commitments as it should.
Configuration menu - View commit details
-
Copy full SHA for 0e0a928 - Browse repository at this point
Copy the full SHA 0e0a928View commit details -
These states don't have commitments, only exist before the existence of a channel is confirmed, don't need to be saved in a wallet, and can only handle one specific ChannelCommand each. As such, it doesn't make much sense to have them be part of ChannelState. They can instead be seperate types which exist prior to the creation of a channel and which have specialized methods for performing the single operation which they can handle.
Configuration menu - View commit details
-
Copy full SHA for 863a828 - Browse repository at this point
Copy the full SHA 863a828View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1c16fd0 - Browse repository at this point
Copy the full SHA 1c16fd0View commit details -
Make ChannelState.{Commitments,ChannelId} not return Option
They don't need to anymore since all channel states have a channel id and commitments.
Configuration menu - View commit details
-
Copy full SHA for ce73f19 - Browse repository at this point
Copy the full SHA ce73f19View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0f84d6a - Browse repository at this point
Copy the full SHA 0f84d6aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 74daf7c - Browse repository at this point
Copy the full SHA 74daf7cView commit details -
Don't carry ChannelHandshakeLimits through the lifetime of the channel
These settings are only used for choosing whether to accept open/accept channel messages. They don't need to be stored in the channel.
Configuration menu - View commit details
-
Copy full SHA for c22658f - Browse repository at this point
Copy the full SHA c22658fView commit details
Commits on Mar 5, 2021
-
Previously the local shutdown script was stored in two places in the channel and also provided as an argument when initiating a shutdown. This made it possible to send invalid shutdown messages if the shutdown scripts provided by the user at different times were different. Also, shutdown scripts have to be in certain forms, but the only place that they were validated was when initiating a shutdown. There's now a ShutdownScriptPubKey type which wraps a Script and enforces that the script is a valid shutdown script. This is used throughout the code for all scripts which are shutdown scripts, which forces us to check their validity at all required points. The DefaultFinalScriptPubKey field has been removed from LocalParams so that we only store the local shutdown script in (at most) one place in the channel datastructure. This shutdown script is an Option, and can be None in the case that we didn't specify a shutdown script to give to the remote peer when creating the channel. As such as we still pass a shutdown script as an argument when closing a channel but we also check that it matches the recorded shutdown script that we previously gave the remote peer in the case that it's Some.
Configuration menu - View commit details
-
Copy full SHA for a2d1690 - Browse repository at this point
Copy the full SHA a2d1690View commit details -
Remove unused types from ChannelTypes
The types WaitForOpenChannelData, WaitForFundingInternalData, and WaitForRemotePublishFutureCommitmentData were defined but not used at all. They have been removed.
Configuration menu - View commit details
-
Copy full SHA for 0238601 - Browse repository at this point
Copy the full SHA 0238601View commit details -
Format Channel and ChannelTypes modules
Remove long lines and excessive rightward drift. Add types to function parameters and return types. This makes the code more readable and consistent.
Configuration menu - View commit details
-
Copy full SHA for 30c93d2 - Browse repository at this point
Copy the full SHA 30c93d2View commit details -
Move Commitments into the Channel type
Since all ChannelState variants have a Commitments field, this field can be factored out into the Channel object. Also, remove the ChannelId field from the ChannelState variants since it is duplicated inside Commitments.
Configuration menu - View commit details
-
Copy full SHA for 7b29ced - Browse repository at this point
Copy the full SHA 7b29cedView commit details -
Make ChannelId a method, rather than a field of Commitments
Commitments already stores the funding tx outpoint, which is what the channel id is dervied from. So we can de-duplicate state by deriving the channel id when needed.
Configuration menu - View commit details
-
Copy full SHA for 40f0896 - Browse repository at this point
Copy the full SHA 40f0896View commit details -
Inline channel state data types
The types WaitForFundingSignedData, WaitForFundingCreatedData, ChannelWaitingForAcceptChannel and InputInit{Funder,Fundee} are only used in a single place each as part of larger structures that they can be inlined into. This will make it easy to refactor the channel types in a subsequent commit.
Configuration menu - View commit details
-
Copy full SHA for 7343c6e - Browse repository at this point
Copy the full SHA 7343c6eView commit details -
Remove LastSent field from channel states
Remove ChannelWaitingForAcceptChannel.LastSent, ChannelWaitingForFundingTx.LastSent and ChannelWaitingForFundingCreated.LastSent. All the fields of these values are duplicated elsewhere in the channel state.
Configuration menu - View commit details
-
Copy full SHA for 16d2b92 - Browse repository at this point
Copy the full SHA 16d2b92View commit details -
Remove NodeId from RemoteParams
This is another bit of duplicated state which is unused.
Configuration menu - View commit details
-
Copy full SHA for e65c609 - Browse repository at this point
Copy the full SHA e65c609View commit details -
Remove ChannelPubKeys from Params types
LocalParams.ChannelPubKeys is duplicated state since our pub keys are derived from our private keys. RemoteParams.ChannelPubKeys can be moved into commitments to bring the two *Params types inline with each other.
Configuration menu - View commit details
-
Copy full SHA for eab2ecc - Browse repository at this point
Copy the full SHA eab2eccView commit details -
Remove WaitForFundingConfirmedData.LastSent field
This field was unused.
Configuration menu - View commit details
-
Copy full SHA for 46de6d8 - Browse repository at this point
Copy the full SHA 46de6d8View commit details -
Remove InitialFeeRatePerKw from channel states
This data is already available in the commitments in the commitment spec.
Configuration menu - View commit details
-
Copy full SHA for ab6e3ff - Browse repository at this point
Copy the full SHA ab6e3ffView commit details -
Remove ChannelWaitingForAcceptChannel.FundingTxFeeRatePerKw
It's not clear if this field is supposed to be different from InitFeeRatePerKw (eg. to support using a different fee rate for the funding tx and for the channel). But as it is they were both being used as the fee rate for commmitment specs so it would have been an error to set them differently. As such I've merged this field with InitFeeRatePerKw. Another field could be added later to support using a different fee rate for the funding tx, but it'll need to be implemented correctly.
Configuration menu - View commit details
-
Copy full SHA for e6068eb - Browse repository at this point
Copy the full SHA e6068ebView commit details -
Remove WaitForFundingLockedData.OurMessage field
This field is pointless and wasn't being used.
Configuration menu - View commit details
-
Copy full SHA for 6050037 - Browse repository at this point
Copy the full SHA 6050037View commit details -
Remove NormalData.Buried field
It's not at all clear what this field was intended for. If it's meant to indicate the the funding tx is buried then we should never be in a `Normal` state with `Buried = false` since being in a `Normal` state is meant to indicate that funding has been locked. At any rate, the field was never being read so I've removed it.
Configuration menu - View commit details
-
Copy full SHA for 7960ce1 - Browse repository at this point
Copy the full SHA 7960ce1View commit details -
Remove TheirMessage field from WaitForFundingLockedData
If we have their funding locked msg then we're not waiting for their funding locked message. So this field makes no sense. Also it wasn't being used, so it's been taken out.
Configuration menu - View commit details
-
Copy full SHA for e0d87d3 - Browse repository at this point
Copy the full SHA e0d87d3View commit details -
Merge WeSentFundingLockedMsg and FundingConfirmed events
These events are always emitted at the same time and so don't need to be two separate events. Also, remove the HaveWeSentFundingLocked field from WaitForFundingLockedData because we have always sent funding locked when we enter that state.
Configuration menu - View commit details
-
Copy full SHA for d12aaab - Browse repository at this point
Copy the full SHA d12aaabView commit details -
Configuration menu - View commit details
-
Copy full SHA for 76b1bc1 - Browse repository at this point
Copy the full SHA 76b1bc1View commit details -
Remove WaitingForRevocation.SentAfterLocalCommitmentIndex field
This field was unused.
Configuration menu - View commit details
-
Copy full SHA for 1f1439d - Browse repository at this point
Copy the full SHA 1f1439dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 26a1cc3 - Browse repository at this point
Copy the full SHA 26a1cc3View commit details -
Configuration menu - View commit details
-
Copy full SHA for c9d7b7d - Browse repository at this point
Copy the full SHA c9d7b7dView commit details -
Move RemoteNextCommitInfo into the channel state
This field lived in Commitments but we don't always have this information available when we have a Commitments object, so it was being filled with dummy data. We only obtain the remote's next per commitment point when we receive funding_locked. As such, this field should only be present in states that are subsequent to funding_locked.
Configuration menu - View commit details
-
Copy full SHA for f7973b7 - Browse repository at this point
Copy the full SHA f7973b7View commit details -
Remote WaitingForRevocation type
This type only had field left of type RemoteCommit. So it can just be replaced with RemoteCommit.
Configuration menu - View commit details
-
Copy full SHA for 6c86efd - Browse repository at this point
Copy the full SHA 6c86efdView commit details -
Replace Deferred field of WaitForFundingConfirmedData
We don't need to store a FundingLockedMsg here. Just the PerCommitmentPoint that it contains.
Configuration menu - View commit details
-
Copy full SHA for 49b6267 - Browse repository at this point
Copy the full SHA 49b6267View commit details -
Remove ChannelAnnoucement field from NormalData
This field is unused.
Configuration menu - View commit details
-
Copy full SHA for 96bfb6f - Browse repository at this point
Copy the full SHA 96bfb6fView commit details -
Configuration menu - View commit details
-
Copy full SHA for e4aefdc - Browse repository at this point
Copy the full SHA e4aefdcView commit details -
Merge WaitForFunding{Locked,Confirmed} states into Normal
Rather than having separate `ChannelState`s for waiting for funding confirmed/locked we can merge these into the Normal state. The Normal state's ShortChannelId and RemoteNextCommitInfo have been turned into options where a value of `None` indicates that funding is not confirmed or that the peer has not sent funding_locked respectively. The advantages of this are: (a) It simplifies the code by removing two more channel states. (b) it allows us to handle channel shutdown before funding has been locked. This is required by the lightning spec but, prior to this change, attempting to apply a remote's `shutdown` message before the funding is confirmed and locked would have crashed DNL. (c) It's a step towards refactoring the channel type into two layers - one which is saved to the wallet and persisted across reconnects, and another which is discarded when the connection is dropped.
Configuration menu - View commit details
-
Copy full SHA for b6d1b1a - Browse repository at this point
Copy the full SHA b6d1b1aView commit details -
Remove nextCommitments from AcceptedShutdownWhileWeHaveUnsignedOutgoi…
…ngHTLCs This event doesn't actually change the commitments. It's constructed using the channel's current commmitments and then replaces the channel's commitments when applied. So the channel's commitments are left unchanged, and the field is redundant.
Configuration menu - View commit details
-
Copy full SHA for 0be3202 - Browse repository at this point
Copy the full SHA 0be3202View commit details -
This state is redundant. The `Normal` state already has `Option` fields to indicate whether we have sent and recieved shutdown messages but, as is, never sets both of them to `Some` at once and instead transitions to the Shutdown state when the second one would be set to `Some`. We can instead just remove this state and have two `Some` values be the indicator that we are shutting down. This removes a lot of code-duplication between how messages and events were handled between the two states.
Configuration menu - View commit details
-
Copy full SHA for 73528af - Browse repository at this point
Copy the full SHA 73528afView commit details -
Record remote's ShutdownScriptPubKey from open/accept channel msgs
These values were being thrown away and weren't being cross-checked against the script we receive in their shutdown message. We now store them in the channel state and raise an error if the peer sends us a different message in their shutdown.
Configuration menu - View commit details
-
Copy full SHA for c034eaf - Browse repository at this point
Copy the full SHA c034eafView commit details -
Replace ShutdownMsg fields with ShutdownScriptPubKey in channel states
We don't need to store the original messages that we sent/recieved, just the shutdown scripts within them.
Configuration menu - View commit details
-
Copy full SHA for b838d7a - Browse repository at this point
Copy the full SHA b838d7aView commit details -
The local/remote shutdown scripts were being held in two places in the channel data structure. We now hold them in a single place and structure the types so that we always have a side's shutdown script when they have entered shutdown.
Configuration menu - View commit details
-
Copy full SHA for 61decff - Browse repository at this point
Copy the full SHA 61decffView commit details -
Remove unused fields from ClosingData
These fields were completely unused.
Configuration menu - View commit details
-
Copy full SHA for 17ae887 - Browse repository at this point
Copy the full SHA 17ae887View commit details -
Change type of NegotiatingData.ClosingTxProposed
This field was a List<List<ClosingTxProposed>>, however the inner List only ever contained zero or one elements. As such, it makes more sense to make it an Option.
Configuration menu - View commit details
-
Copy full SHA for 15954c1 - Browse repository at this point
Copy the full SHA 15954c1View commit details -
Change type (again) of NegotiatingData.ClosingTxPerformed
This field had type List<Option<ClosingTxPerformed>>, however a None could only appear as the final element in this list where it was ignored anyway. The program logic is identical if we simply make this field a List<ClosingTxPerformed> and never insert a None at the end of the list.
Configuration menu - View commit details
-
Copy full SHA for 0fcb3d5 - Browse repository at this point
Copy the full SHA 0fcb3d5View commit details -
Remove MaybeBestUnpublishedTx from NegotiatingData
This field was set but never read.
Configuration menu - View commit details
-
Copy full SHA for c14b96a - Browse repository at this point
Copy the full SHA c14b96aView commit details -
Remove ClosingTxProposed type and change the ClosingTxProposed field of NegotiatingData to just be a list of proposed fees instead. We don't need to store copies of the closing_signed messages and nor the closing transactions that we've proposed. We don't currently use them and we can always re-create them on demand anyway.
Configuration menu - View commit details
-
Copy full SHA for 848c042 - Browse repository at this point
Copy the full SHA 848c042View commit details -
Track previous fee proposed by remote peer during fee negotiation
The lightning spec requires us to fail a channel if the remote peer proposes a closing fee which is not strictly between the previous fees proposed by both sides. This was not being enforced. This commit adds a field to NegotiatingData which tracks this value so that a protocol violation of this sort can be caught.
Configuration menu - View commit details
-
Copy full SHA for 57e883f - Browse repository at this point
Copy the full SHA 57e883fView commit details -
Move RemoteNextCommitInfoOpt into Channel
This type was a field of every variant of ChannelState. So rather than keeping it in ChannelState it can be moved up into Channel. Also remove the Opt suffix from the field name.
Configuration menu - View commit details
-
Copy full SHA for e2a7c52 - Browse repository at this point
Copy the full SHA e2a7c52View commit details -
Move ShortChannelIdOpt out of NormalData into Channel
The ShortChannelId isn't tied to being in a non-closing state and we may need to access/modify it when we are in a negotiating state (for instance, if the channel is shutdown before funding gets locked). So move it up into Channel. Also remove the Opt suffix from the field name.
Configuration menu - View commit details
-
Copy full SHA for f8a0257 - Browse repository at this point
Copy the full SHA f8a0257View commit details -
Remove RemoteCommit.TxId field
This field was unused. Also the txid of the remote commitment can be derived from the commitment spec which is held next to it in RemoteCommit.
Configuration menu - View commit details
-
Copy full SHA for d8122b8 - Browse repository at this point
Copy the full SHA d8122b8View commit details -
Remove handleMutualClose function
All this function did is ignore its arguments and return MutualClosePerformed, so we can just inline that instead.
Configuration menu - View commit details
-
Copy full SHA for ab6e741 - Browse repository at this point
Copy the full SHA ab6e741View commit details -
Remove claimCurrentLocalCommitTxOutputs
This function was unfinished and unused.
Configuration menu - View commit details
-
Copy full SHA for 55abb06 - Browse repository at this point
Copy the full SHA 55abb06View commit details -
Rather than storing the channel flags in a uint8 and accessing the flags through bit positions, use a structured type to hold the flags. This makes the code clearer and less bug-prone, and also hightlights that the announce_channel flag is duplicated in two places in the Channel structure.
Configuration menu - View commit details
-
Copy full SHA for f5b5d86 - Browse repository at this point
Copy the full SHA f5b5d86View commit details -
Re-duplicate the local/remote ShutdownScriptPubKey fields since shutdown scripts sent during channel initialization need to be remembered for the lifetime of the channel but shutdown scripts sent during shutdown should be forgotten if the connection is broken before shutdown is complete. Factor the negotiating data out into the Channel type and remove ChannelState. The last other remaining state (NormalState) was now pointless since we store the static shutdown scripts in Channel so that they can be remembered regardless of what state we're in. The NegotiatingData field of Channel indicates that we are in shutdown if both peers have shared shutdown messages.
Configuration menu - View commit details
-
Copy full SHA for f30e156 - Browse repository at this point
Copy the full SHA f30e156View commit details -
Move some channel fields into new StaticChannelConfig type
This type represents all channel configuration which is established during the handshake and remains unchanged through the lifetime of the channel. The following fields are moved into this type: AnounceChannel, RemoteNodeId, Network, FundingTxMinimumDepth, the shutdown scripts, IsFunder, FundingScriptCoin, {Local,Remote}Params, and RemoteChannelPubKeys. In doing so, we reduce the number of fields in Commitments and the channel types. Also, in CommitmentsModule, rather than passing around all the fields individually pass the entire StaticChannelConfig object.
Configuration menu - View commit details
-
Copy full SHA for 77124c0 - Browse repository at this point
Copy the full SHA 77124c0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5a6e865 - Browse repository at this point
Copy the full SHA 5a6e865View commit details -
Remove redundant arg from New{In,Out}Bound methods
Remove the channelPrivKeys argument from the NewInbound and NewOutbound methods on Channel. This argument is redundant since it is computed from the NodeMasterKey that we pass to these methods. Also de-tuple the function arguments and remove a unnecessary level of indentation.
Configuration menu - View commit details
-
Copy full SHA for e63efad - Browse repository at this point
Copy the full SHA e63efadView commit details -
Factor reestablishment-creation into a method
Change the CreateChannelReestablish operation into a method.
Configuration menu - View commit details
-
Copy full SHA for f1b4c8d - Browse repository at this point
Copy the full SHA f1b4c8dView commit details
Commits on Mar 8, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 5deabf5 - Browse repository at this point
Copy the full SHA 5deabf5View commit details -
Configuration menu - View commit details
-
Copy full SHA for c223cac - Browse repository at this point
Copy the full SHA c223cacView commit details -
Make MonoHopUnidirectionalPayment into a method
Also make the RemoteNextCommitInfoIfFundingLocked{,Normal} helper functions into methods.
Configuration menu - View commit details
-
Copy full SHA for ef72404 - Browse repository at this point
Copy the full SHA ef72404View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5877ca9 - Browse repository at this point
Copy the full SHA 5877ca9View commit details -
Configuration menu - View commit details
-
Copy full SHA for ac98708 - Browse repository at this point
Copy the full SHA ac98708View commit details -
Configuration menu - View commit details
-
Copy full SHA for d4eee17 - Browse repository at this point
Copy the full SHA d4eee17View commit details -
Configuration menu - View commit details
-
Copy full SHA for 340dfa5 - Browse repository at this point
Copy the full SHA 340dfa5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 39c2b3d - Browse repository at this point
Copy the full SHA 39c2b3dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 954aaa7 - Browse repository at this point
Copy the full SHA 954aaa7View commit details -
Configuration menu - View commit details
-
Copy full SHA for fdda59e - Browse repository at this point
Copy the full SHA fdda59eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 443d0be - Browse repository at this point
Copy the full SHA 443d0beView commit details -
Configuration menu - View commit details
-
Copy full SHA for be5f878 - Browse repository at this point
Copy the full SHA be5f878View commit details -
Configuration menu - View commit details
-
Copy full SHA for 37f250d - Browse repository at this point
Copy the full SHA 37f250dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 60a7e1e - Browse repository at this point
Copy the full SHA 60a7e1eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0cfc4c4 - Browse repository at this point
Copy the full SHA 0cfc4c4View commit details -
Configuration menu - View commit details
-
Copy full SHA for aff4793 - Browse repository at this point
Copy the full SHA aff4793View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7e3ab70 - Browse repository at this point
Copy the full SHA 7e3ab70View commit details -
Configuration menu - View commit details
-
Copy full SHA for 73f7bb2 - Browse repository at this point
Copy the full SHA 73f7bb2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3707836 - Browse repository at this point
Copy the full SHA 3707836View commit details -
Configuration menu - View commit details
-
Copy full SHA for ac94534 - Browse repository at this point
Copy the full SHA ac94534View commit details -
Remove Channel{Operation,Event}
These are no longer used since we now do everything through methods on Channel.
Configuration menu - View commit details
-
Copy full SHA for b28e6e4 - Browse repository at this point
Copy the full SHA b28e6e4View commit details
Commits on Mar 10, 2021
-
Remove ChannelWaitingForFundingSigned.LastSent field
This field was unused.
Configuration menu - View commit details
-
Copy full SHA for 5cf724e - Browse repository at this point
Copy the full SHA 5cf724eView commit details -
Remove ChannelWaitingForFundingCreated.TemporaryFailure field
This was mis-named (it's the temporary channel id, not a "temporary failure") and also unused (we don't need the temporary channel id anymore at this point).
Configuration menu - View commit details
-
Copy full SHA for c66bbd9 - Browse repository at this point
Copy the full SHA c66bbd9View commit details -
Expand/Remove ChannelWaitingForFundingTx.LastReceived field
Fields in this message were duplicated elsewhere in this type.
Configuration menu - View commit details
-
Copy full SHA for 7455ad9 - Browse repository at this point
Copy the full SHA 7455ad9View commit details -
Remove WhichInput field from tx types
Commitment and htlc transactions only have a single input, so the WhichInput field is always set to zero and is meaningless.
Configuration menu - View commit details
-
Copy full SHA for abe0b52 - Browse repository at this point
Copy the full SHA abe0b52View commit details
Commits on Mar 11, 2021
-
Seperate incoming and outgoing htlcs in CommitmentSpec
There may be both an incoming and an outgoing htlc for any given htlc id, so we can't store both incoming and outgoing htlcs in the same map under the same id. Separating these into two maps also makes the code a bit less strange since we no longer have to keep filtering the map for the htlc-direction that we want.
Configuration menu - View commit details
-
Copy full SHA for 1cfe465 - Browse repository at this point
Copy the full SHA 1cfe465View commit details
Commits on Mar 18, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 0c426de - Browse repository at this point
Copy the full SHA 0c426deView commit details -
Configuration menu - View commit details
-
Copy full SHA for ca0347d - Browse repository at this point
Copy the full SHA ca0347dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 52820b5 - Browse repository at this point
Copy the full SHA 52820b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 531b80b - Browse repository at this point
Copy the full SHA 531b80bView commit details
Commits on Mar 26, 2021
-
Configuration menu - View commit details
-
Copy full SHA for d767f6a - Browse repository at this point
Copy the full SHA d767f6aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7adabdf - Browse repository at this point
Copy the full SHA 7adabdfView commit details
Commits on May 20, 2021
-
Configuration menu - View commit details
-
Copy full SHA for c9352d1 - Browse repository at this point
Copy the full SHA c9352d1View commit details
Commits on Jun 16, 2021
-
Remove DomainUtils/Type.fs and its interface definitions
This module defined the following interfaces: type IState = interface end type IStateData = interface end type ICommand = interface end type IEvent = interface end These were not used in the code anywhere
Configuration menu - View commit details
-
Copy full SHA for a972770 - Browse repository at this point
Copy the full SHA a972770View commit details -
Add SpendableBalanceFromParts function
This is needed in geewallet for getting the spendable balance of channel when we only have the components of a Channel object but not the Channel object itself. This method can be moved onto SavedChannelState when the necessary fields remaining in Channel/Commitments are moved there.
Configuration menu - View commit details
-
Copy full SHA for 7d756a7 - Browse repository at this point
Copy the full SHA 7d756a7View commit details
Commits on Jun 17, 2021
-
SpendableBalance: enable when funding not locked
When SpendableBalance is called when the funding is not yet locked, report the full channel balance rather than crashing.
Configuration menu - View commit details
-
Copy full SHA for f1d43cb - Browse repository at this point
Copy the full SHA f1d43cbView commit details -
Make SignCommitment not return an Option
Previously SignCommitment would return None instead of a CommitmentSignedMsg if either: (a) There were not updates to sign or (b) A revoke-and-ack for a previous commitment was not yet received Since these cases both indicate a misuse of the API they have been changed to errors.
Configuration menu - View commit details
-
Copy full SHA for b59e519 - Browse repository at this point
Copy the full SHA b59e519View commit details