From 8d7615b6a3255f75b5a61c66e029add83b3b7da8 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Tue, 25 Apr 2023 17:40:40 +0000 Subject: [PATCH] Add some no-exporting of more offers code These really could be handled in the bindings, but for lack of immediate users there's not a strong reason to, so instead we just disable them for now. --- lightning/src/offers/invoice.rs | 8 ++++++++ lightning/src/offers/invoice_request.rs | 4 ++++ lightning/src/offers/offer.rs | 8 ++++++-- lightning/src/offers/parse.rs | 3 ++- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/lightning/src/offers/invoice.rs b/lightning/src/offers/invoice.rs index 7dd2a99d..7d24c2e4 100644 --- a/lightning/src/offers/invoice.rs +++ b/lightning/src/offers/invoice.rs @@ -311,6 +311,8 @@ impl<'a, S: SigningPubkeyStrategy> InvoiceBuilder<'a, S> { /// /// Successive calls to this method will add another address. Caller is responsible for not /// adding duplicate addresses and only calling if capable of receiving to P2TR addresses. + /// + /// This is not exported to bindings users as TweakedPublicKey isn't yet mapped. pub fn fallback_v1_p2tr_tweaked(mut self, output_key: &TweakedPublicKey) -> Self { let address = FallbackAddress { version: WitnessVersion::V1.to_num(), @@ -476,6 +478,8 @@ impl Invoice { /// /// Blinded paths provide recipient privacy by obfuscating its node id. Note, however, that this /// privacy is lost if a public node id is used for [`Invoice::signing_pubkey`]. + /// + /// This is not exported to bindings users as a slice of tuples isn't exportable. pub fn payment_paths(&self) -> &[(BlindedPath, BlindedPayInfo)] { &self.contents.fields().payment_paths[..] } @@ -516,6 +520,8 @@ impl Invoice { /// Fallback addresses for paying the invoice on-chain, in order of most-preferred to /// least-preferred. + /// + /// This is not exported to bindings users as Address is not yet mapped pub fn fallbacks(&self) -> Vec
{ let network = match self.network() { None => return Vec::new(), @@ -580,6 +586,8 @@ impl Invoice { } /// Signature of the invoice verified using [`Invoice::signing_pubkey`]. + /// + /// This is not exported to bindings users as SIgnature is not yet mapped. pub fn signature(&self) -> Signature { self.signature } diff --git a/lightning/src/offers/invoice_request.rs b/lightning/src/offers/invoice_request.rs index 8d475553..7243b7b9 100644 --- a/lightning/src/offers/invoice_request.rs +++ b/lightning/src/offers/invoice_request.rs @@ -464,6 +464,8 @@ impl InvoiceRequest { /// Signature of the invoice request using [`payer_id`]. /// + /// This is not exported to bindings users as Signature is not yet mapped. + /// /// [`payer_id`]: Self::payer_id pub fn signature(&self) -> Signature { self.signature @@ -572,6 +574,8 @@ impl InvoiceRequest { /// keys need to sign an [`Invoice`] for the request if they could be extracted from the /// metadata. /// + /// This is not exported to bindings users as KeyPair is not yet mapped. + /// /// [`Invoice`]: crate::offers::invoice::Invoice pub fn verify( &self, key: &ExpandedKey, secp_ctx: &Secp256k1 diff --git a/lightning/src/offers/offer.rs b/lightning/src/offers/offer.rs index ac16b6ef..a49ed5ff 100644 --- a/lightning/src/offers/offer.rs +++ b/lightning/src/offers/offer.rs @@ -705,6 +705,9 @@ pub enum Amount { /// An amount of currency specified using ISO 4712. Currency { /// The currency that the amount is denominated in. + /// + /// This is not exported to bindings users as bindings have troubles with type aliases to + /// byte arrays. iso4217_code: CurrencyCode, /// The amount in the currency unit adjusted by the ISO 4712 exponent (e.g., USD cents). amount: u64, @@ -712,7 +715,7 @@ pub enum Amount { } /// An ISO 4712 three-letter currency code (e.g., USD). -pub type CurrencyCode = [u8; 3]; +pub(crate) type CurrencyCode = [u8; 3]; /// Quantity of items supported by an [`Offer`]. #[derive(Clone, Copy, Debug, PartialEq)] @@ -722,7 +725,8 @@ pub enum Quantity { /// /// May be used with `NonZeroU64::new(1)` but prefer to use [`Quantity::One`] if only one item /// is supported. - Bounded(NonZeroU64), + Bounded(/// This is not exported to bindings users as builder patterns don't map outside of move semantics. + NonZeroU64), /// One or more items. Use when more than one item can be requested without any limit. Unbounded, /// Only one item. Use when only a single item can be requested. diff --git a/lightning/src/offers/parse.rs b/lightning/src/offers/parse.rs index 42ed2e00..022a7b4c 100644 --- a/lightning/src/offers/parse.rs +++ b/lightning/src/offers/parse.rs @@ -127,7 +127,8 @@ pub enum ParseError { /// being parsed. InvalidBech32Hrp, /// The string could not be bech32 decoded. - Bech32(bech32::Error), + Bech32(/// This is not exported to bindings users as the details don't matter much + bech32::Error), /// The bech32 decoded string could not be decoded as the expected message type. Decode(DecodeError), /// The parsed message has invalid semantics. -- 2.30.2