]> git.bitcoin.ninja Git - rust-lightning/commitdiff
[bindings] Don't export new functions with unexportable types
authorMatt Corallo <git@bluematt.me>
Mon, 4 Jan 2021 19:15:36 +0000 (14:15 -0500)
committerMatt Corallo <git@bluematt.me>
Tue, 2 Feb 2021 22:04:31 +0000 (17:04 -0500)
`CommitmentTransaction::new_with_auxiliary_htlc_data()` includes a
unbounded generic parameter which we can't concretize and it's of
limited immediate use for users in any case. We should eventually
add a non-generic version which uses `()` for the generic but that
can come later.

`CommitmentTransaction::htlcs()` returns a reference to a Vec,
which we cannot currently map. It should, however, be exposed to
users, so in the future we'll need to have a duplication function
which returns Vec of references or a cloned Vec.

lightning/src/ln/chan_utils.rs

index 8037de64eb562f4ef854b511a382625b77f0e035..2ccee7b2d521a8460b20e643355a99bff0d0632e 100644 (file)
@@ -889,6 +889,8 @@ impl CommitmentTransaction {
        /// This auxiliary data is not stored in this object.
        ///
        /// Only include HTLCs that are above the dust limit for the channel.
+       ///
+       /// (C-not exported) due to the generic though we likely should expose a version without
        pub fn new_with_auxiliary_htlc_data<T>(commitment_number: u64, to_broadcaster_value_sat: u64, to_countersignatory_value_sat: u64, keys: TxCreationKeys, feerate_per_kw: u32, htlcs_with_aux: &mut Vec<(HTLCOutputInCommitment, T)>, channel_parameters: &DirectedChannelTransactionParameters) -> CommitmentTransaction {
                // Sort outputs and populate output indices while keeping track of the auxiliary data
                let (outputs, htlcs) = Self::internal_build_outputs(&keys, to_broadcaster_value_sat, to_countersignatory_value_sat, htlcs_with_aux, channel_parameters).unwrap();
@@ -1056,6 +1058,9 @@ impl CommitmentTransaction {
        /// The non-dust HTLCs (direction, amt, height expiration, hash, transaction output index)
        /// which were included in this commitment transaction in output order.
        /// The transaction index is always populated.
+       ///
+       /// (C-not exported) as we cannot currently convert Vec references to/from C, though we should
+       /// expose a less effecient version which creates a Vec of references in the future.
        pub fn htlcs(&self) -> &Vec<HTLCOutputInCommitment> {
                &self.htlcs
        }