ldk-c-bindings
2 years agoAdd function-call generic parameters when they're resovable
Matt Corallo [Wed, 2 Mar 2022 03:19:46 +0000 (03:19 +0000)]
Add function-call generic parameters when they're resovable

We really shouldn't ever actually need to do this - rustc should be
smart enough to figure out what we're doing given all the
parameters are concrete types, but this appears to be failing
sometimes.

2 years agoHandle `Option<[u8; 32]>`, mapping it same as `Option<&[u8; 32]>`
Matt Corallo [Wed, 2 Mar 2022 01:23:07 +0000 (01:23 +0000)]
Handle `Option<[u8; 32]>`, mapping it same as `Option<&[u8; 32]>`

2 years agoDon't mark everything with a feature bound as TestOnly
Matt Corallo [Wed, 9 Feb 2022 21:46:27 +0000 (21:46 +0000)]
Don't mark everything with a feature bound as TestOnly

2 years agoConvert slices containing non-primitives that are clonable
Matt Corallo [Wed, 9 Feb 2022 21:16:31 +0000 (21:16 +0000)]
Convert slices containing non-primitives that are clonable

2 years agoUpdate build for lightning-invoice no-std support
Matt Corallo [Wed, 9 Feb 2022 19:21:35 +0000 (19:21 +0000)]
Update build for lightning-invoice no-std support

2 years agoRecognize `bitcoin::bech32::u5` instead of only `bech32::u5`
Matt Corallo [Wed, 9 Feb 2022 18:11:08 +0000 (18:11 +0000)]
Recognize `bitcoin::bech32::u5` instead of only `bech32::u5`

2 years agoMerge pull request #59 from TheBlueMatt/main
Matt Corallo [Tue, 1 Mar 2022 04:19:24 +0000 (04:19 +0000)]
Merge pull request #59 from TheBlueMatt/main

Detect aarch64-osx for using apple sed as well

2 years agoDetect aarch64-osx for using apple sed as well
Matt Corallo [Mon, 21 Feb 2022 18:36:19 +0000 (18:36 +0000)]
Detect aarch64-osx for using apple sed as well

May fix #58, but there's probably other broken stuff around.

2 years agoMerge pull request #57 from TheBlueMatt/main
Matt Corallo [Mon, 17 Jan 2022 00:19:00 +0000 (00:19 +0000)]
Merge pull request #57 from TheBlueMatt/main

Optimize more aggressively for WASM builds

2 years agoOverwrite ldk_ver.h to avoid back-to-back builds duplicating consts
Matt Corallo [Sun, 16 Jan 2022 03:02:37 +0000 (03:02 +0000)]
Overwrite ldk_ver.h to avoid back-to-back builds duplicating consts

This causes back-to-back builds to have an ldk_ver.h for which the
oldest content dominates.

2 years agoStop passing -mcpu=sandybridge to wasm builds on x86
Matt Corallo [Sun, 16 Jan 2022 02:49:36 +0000 (02:49 +0000)]
Stop passing -mcpu=sandybridge to wasm builds on x86

2 years agoUse -O1 on WASM debug builds as they are otherwise too slow to run.
Matt Corallo [Sun, 16 Jan 2022 00:06:17 +0000 (00:06 +0000)]
Use -O1 on WASM debug builds as they are otherwise too slow to run.

2 years agoDrop `cargo rustc` in favor of using $RUSTFLAGS
Matt Corallo [Sat, 15 Jan 2022 23:22:23 +0000 (23:22 +0000)]
Drop `cargo rustc` in favor of using $RUSTFLAGS

cargo rustc only passes the given arguments to the linking rustc,
not any building rustc calls, which is not generally what we want.

This further reduces `liblightningjs_release.wasm` from 2.4MB to
2.3 MB.

2 years agoOptimize more aggressively for WASM builds
Matt Corallo [Sat, 15 Jan 2022 22:59:11 +0000 (22:59 +0000)]
Optimize more aggressively for WASM builds

Use `-Oz` instead of `-Os` because why not, and include LLVM
bitcode in C dependencies.

This reduces `liblightningjs_release.wasm` from 3.0MB to 2.4MB,
likely mostly from removing secp256k1 symbols that were unused.

2 years agoMerge pull request #54 from TheBlueMatt/main v0.0.104.1
Matt Corallo [Thu, 6 Jan 2022 19:54:22 +0000 (19:54 +0000)]
Merge pull request #54 from TheBlueMatt/main

Support `no-std`

2 years agoUpdate auto-generated bindings
Matt Corallo [Wed, 5 Jan 2022 06:43:58 +0000 (06:43 +0000)]
Update auto-generated bindings

2 years agoUpdate git commit hash to instead point to 0.0.104-bindings branch
Matt Corallo [Thu, 6 Jan 2022 03:48:01 +0000 (03:48 +0000)]
Update git commit hash to instead point to 0.0.104-bindings branch

2 years agoSupport no_std on the generated crate
Matt Corallo [Tue, 4 Jan 2022 20:30:55 +0000 (20:30 +0000)]
Support no_std on the generated crate

2 years agoSwap std references in generated code for core/alloc references
Matt Corallo [Tue, 4 Jan 2022 20:30:37 +0000 (20:30 +0000)]
Swap std references in generated code for core/alloc references

2 years agoSupport building dependent crates with `no-std`
Matt Corallo [Tue, 4 Jan 2022 19:09:50 +0000 (19:09 +0000)]
Support building dependent crates with `no-std`

2 years agoMerge pull request #53 from orenfromberg/patch-1
Matt Corallo [Wed, 29 Dec 2021 19:34:59 +0000 (19:34 +0000)]
Merge pull request #53 from orenfromberg/patch-1

Improving readability of genbindings.sh

2 years agoUpdate genbindings.sh
Oren Fromberg [Wed, 29 Dec 2021 03:26:15 +0000 (22:26 -0500)]
Update genbindings.sh

2 years agoMerge pull request #52 from TheBlueMatt/main v0.0.104.0
Matt Corallo [Mon, 20 Dec 2021 09:38:14 +0000 (09:38 +0000)]
Merge pull request #52 from TheBlueMatt/main

Correct non-default lld version passing

2 years agoCorrectly detect non-default LLD usage
Matt Corallo [Mon, 20 Dec 2021 06:13:55 +0000 (06:13 +0000)]
Correctly detect non-default LLD usage

Passing `-flto=ld*.lld-X` only appears to actually work on debian
testing. The correct argument for an alternative version of LLD is
`-flto=lld-X`.

2 years agoRevert "Correct LLD detection when a specific version is needed for X-lang LTO"
Matt Corallo [Mon, 20 Dec 2021 05:24:14 +0000 (05:24 +0000)]
Revert "Correct LLD detection when a specific version is needed for X-lang LTO"

This reverts commit b33cce1a6255564b88e0615eb5c7941bd7b15759.

2 years agoMerge pull request #51 from TheBlueMatt/main
Matt Corallo [Mon, 20 Dec 2021 05:03:40 +0000 (05:03 +0000)]
Merge pull request #51 from TheBlueMatt/main

0.0.104 Bindings Updates

2 years agoOnly test C++ demo in std mode, as it relies on threading support
Matt Corallo [Mon, 20 Dec 2021 01:20:06 +0000 (01:20 +0000)]
Only test C++ demo in std mode, as it relies on threading support

2 years agoUpdate git reference in checked-in Cargo.toml and CI branch
Matt Corallo [Sat, 18 Dec 2021 04:08:03 +0000 (04:08 +0000)]
Update git reference in checked-in Cargo.toml and CI branch

2 years agoUpdate auto-generated bindings
Matt Corallo [Sat, 18 Dec 2021 03:31:43 +0000 (03:31 +0000)]
Update auto-generated bindings

2 years agoCorrect LLD detection when a specific version is needed for X-lang LTO
Matt Corallo [Sat, 18 Dec 2021 02:45:15 +0000 (02:45 +0000)]
Correct LLD detection when a specific version is needed for X-lang LTO

Also use the full LLD specified as ld*.lld as it seems to be needed
on Linux with LLD 13 now.

2 years agoUpdate C++ bindings to latest upstream API
Matt Corallo [Sat, 18 Dec 2021 02:38:05 +0000 (02:38 +0000)]
Update C++ bindings to latest upstream API

2 years agoSupport Option<()> (and &Option<()>) incl conversion and printing
Matt Corallo [Sat, 18 Dec 2021 02:07:52 +0000 (02:07 +0000)]
Support Option<()> (and &Option<()>) incl conversion and printing

2 years agoDrop allow_wallclock_use feature and use std/no-std directly
Matt Corallo [Sat, 18 Dec 2021 02:06:00 +0000 (02:06 +0000)]
Drop allow_wallclock_use feature and use std/no-std directly

2 years agoMap new lightning::chain::keysinterface::KeyMaterial type as [u8; 32]
Matt Corallo [Sat, 18 Dec 2021 02:05:49 +0000 (02:05 +0000)]
Map new lightning::chain::keysinterface::KeyMaterial type as [u8; 32]

2 years agoExpose a 12-byte array instead of 10-byte as OnionV2 has changed
Matt Corallo [Sat, 18 Dec 2021 02:02:10 +0000 (02:02 +0000)]
Expose a 12-byte array instead of 10-byte as OnionV2 has changed

2 years agoMerge pull request #49 from TheBlueMatt/main v0.0.103.1
Matt Corallo [Tue, 30 Nov 2021 21:55:52 +0000 (21:55 +0000)]
Merge pull request #49 from TheBlueMatt/main

0.0.103.1

2 years agoSupport cross-language LTO on OSX (with upstream clang/lld)
Matt Corallo [Tue, 30 Nov 2021 16:19:08 +0000 (16:19 +0000)]
Support cross-language LTO on OSX (with upstream clang/lld)

2 years agoUpdate git commit in Cargo.toml to upstream bindings changes
Matt Corallo [Tue, 30 Nov 2021 15:40:46 +0000 (15:40 +0000)]
Update git commit in Cargo.toml to upstream bindings changes

2 years agoUpdate auto-generated bindings
Matt Corallo [Fri, 19 Nov 2021 20:12:13 +0000 (20:12 +0000)]
Update auto-generated bindings

2 years agoExpose a method to unmangle pointers in test builds
Matt Corallo [Mon, 29 Nov 2021 01:28:30 +0000 (01:28 +0000)]
Expose a method to unmangle pointers in test builds

This is used by Java bindings to compare all pointers against those
returned by its malloc wrap, possibly catching some simple
use-after-free or invalid pointer deref bugs.

It is exposed only when built as debug and defined in C headers
with `LDK_DEBUG_BUILD` defined.

2 years agoSupport `use self::...` statements as they are sometimes use for submodules
Matt Corallo [Wed, 24 Nov 2021 18:07:57 +0000 (18:07 +0000)]
Support `use self::...` statements as they are sometimes use for submodules

2 years agoSupport new c_bindings cfg flag to enable bindings-specific logic
Matt Corallo [Mon, 22 Nov 2021 02:06:37 +0000 (02:06 +0000)]
Support new c_bindings cfg flag to enable bindings-specific logic

2 years agoUpdate C/C++ demos to support new Logger API
Matt Corallo [Sun, 21 Nov 2021 18:46:53 +0000 (18:46 +0000)]
Update C/C++ demos to support new Logger API

2 years agoStop special-casing `Logger`, instead map fmt::Arguments to string
Matt Corallo [Sun, 21 Nov 2021 18:19:14 +0000 (18:19 +0000)]
Stop special-casing `Logger`, instead map fmt::Arguments to string

2 years agoCorrectly print lifetime parameters when printing generic arguments
Matt Corallo [Sun, 21 Nov 2021 18:17:35 +0000 (18:17 +0000)]
Correctly print lifetime parameters when printing generic arguments

2 years agoSupport traits and structs with lifetime bounds (which are ignored)
Matt Corallo [Fri, 29 Oct 2021 18:59:25 +0000 (18:59 +0000)]
Support traits and structs with lifetime bounds (which are ignored)

2 years agoSupport mapping MaybeReadable
Matt Corallo [Fri, 19 Nov 2021 20:04:36 +0000 (20:04 +0000)]
Support mapping MaybeReadable

This fixes https://github.com/lightningdevkit/ldk-garbagecollected/issues/62

2 years agoAdd helper method on results to return `result_ok`
Matt Corallo [Fri, 19 Nov 2021 20:11:56 +0000 (20:11 +0000)]
Add helper method on results to return `result_ok`

This fixes https://github.com/lightningdevkit/ldk-garbagecollected/issues/59

2 years agoMerge pull request #48 from TheBlueMatt/main v0.0.103.0
Matt Corallo [Wed, 3 Nov 2021 21:17:11 +0000 (21:17 +0000)]
Merge pull request #48 from TheBlueMatt/main

0.0.103.0 Updates

2 years agoUpdate upstream git tag
Matt Corallo [Wed, 3 Nov 2021 03:52:52 +0000 (03:52 +0000)]
Update upstream git tag

2 years agoUse a branch for bindings, as rustc prevents us from using main
Matt Corallo [Wed, 3 Nov 2021 03:39:09 +0000 (03:39 +0000)]
Use a branch for bindings, as rustc prevents us from using main

2 years agoUpdate auto-generated bindings
Matt Corallo [Mon, 1 Nov 2021 21:49:12 +0000 (21:49 +0000)]
Update auto-generated bindings

2 years agoUpdate C++ bindings to latest upstream API + test PaymentRetrier
Matt Corallo [Mon, 1 Nov 2021 03:38:31 +0000 (03:38 +0000)]
Update C++ bindings to latest upstream API + test PaymentRetrier

2 years agoAvoid double-`ObjOps::nonnull_ptr_to_inner` on options in some cases
Matt Corallo [Tue, 2 Nov 2021 05:58:14 +0000 (05:58 +0000)]
Avoid double-`ObjOps::nonnull_ptr_to_inner` on options in some cases

2 years agoSeparate logic to print `create_ownable_reference` types
Matt Corallo [Mon, 1 Nov 2021 18:35:30 +0000 (18:35 +0000)]
Separate logic to print `create_ownable_reference` types

These types aren't actually mapped in the same way as all other
types, so we really shouldn't be trying to use the same conversion
logic for both.

2 years agoImplement additional `Into<Str>` auto-conversion
Matt Corallo [Mon, 1 Nov 2021 18:35:43 +0000 (18:35 +0000)]
Implement additional `Into<Str>` auto-conversion

2 years agoTrack generic param count and print types in ptr-conversion
Matt Corallo [Mon, 1 Nov 2021 17:55:20 +0000 (17:55 +0000)]
Track generic param count and print types in ptr-conversion

This will allow rustc to prevent an issue where we accidentally
map `&&Object as *const _` to get a `*const Object`, instead
getting a pointer to a pointer.

2 years agoAdd constructor for tuple types where all contained types are known
Matt Corallo [Mon, 1 Nov 2021 04:33:09 +0000 (04:33 +0000)]
Add constructor for tuple types where all contained types are known

2 years agoCheck if types are understood before we map an impl block for them
Matt Corallo [Sun, 31 Oct 2021 23:32:55 +0000 (23:32 +0000)]
Check if types are understood before we map an impl block for them

2 years agoSupport `use crate::*` statements
Matt Corallo [Sun, 31 Oct 2021 18:13:00 +0000 (18:13 +0000)]
Support `use crate::*` statements

2 years agoMap `PaymentId` to a `[u8; 32]` like other Payemt* IDs.
Matt Corallo [Sun, 31 Oct 2021 18:11:10 +0000 (18:11 +0000)]
Map `PaymentId` to a `[u8; 32]` like other Payemt* IDs.

This should solve https://github.com/lightningdevkit/ldk-garbagecollected/issues/52

2 years agoSupport resolving non-trivial bounds from parent generic contexts
Matt Corallo [Sun, 31 Oct 2021 23:27:11 +0000 (23:27 +0000)]
Support resolving non-trivial bounds from parent generic contexts

2 years agoSupport converting Option<&[]> to C
Matt Corallo [Sun, 31 Oct 2021 23:14:41 +0000 (23:14 +0000)]
Support converting Option<&[]> to C

2 years agoimpl-Trait on in-crate types in a diff mod from the type definition
Matt Corallo [Sun, 31 Oct 2021 18:09:31 +0000 (18:09 +0000)]
impl-Trait on in-crate types in a diff mod from the type definition

2 years agoSupport printing lifetime generics on an impl-Trait block
Matt Corallo [Sun, 31 Oct 2021 18:07:47 +0000 (18:07 +0000)]
Support printing lifetime generics on an impl-Trait block

2 years agoSupport printing impl generics without an immediate bound
Matt Corallo [Sun, 31 Oct 2021 18:06:42 +0000 (18:06 +0000)]
Support printing impl generics without an immediate bound

(e.g. if you have `fn <A> ... where A: Trait` we'd not have printed
`<A>`)

This further supports printing impl generics with a reference to a
struct (not a trait), which we concretize with a regular reference.

2 years agoSwap --pretty=expanded with -Zunpretty=expanded
Matt Corallo [Sun, 31 Oct 2021 04:42:10 +0000 (04:42 +0000)]
Swap --pretty=expanded with -Zunpretty=expanded

Apparently the `--pretty` option was dropped in newer
rustc, see https://github.com/rust-lang/rust/pull/83491

2 years agoMerge pull request #46 from TheBlueMatt/main v0.0.102.0
Matt Corallo [Mon, 18 Oct 2021 20:43:06 +0000 (20:43 +0000)]
Merge pull request #46 from TheBlueMatt/main

0.0.102 Bindings Updates

2 years agoBump upstream git commit to latest
Matt Corallo [Sun, 17 Oct 2021 00:05:09 +0000 (00:05 +0000)]
Bump upstream git commit to latest

2 years agoUpdate auto-generated bindings
Matt Corallo [Sat, 16 Oct 2021 22:22:11 +0000 (22:22 +0000)]
Update auto-generated bindings

2 years agoUpdate C++ demo to latest upstream changes
Matt Corallo [Sat, 16 Oct 2021 22:16:44 +0000 (22:16 +0000)]
Update C++ demo to latest upstream changes

2 years agoHandle bitcoin::Transaction aliases instead of the full path
Matt Corallo [Sat, 16 Oct 2021 22:16:27 +0000 (22:16 +0000)]
Handle bitcoin::Transaction aliases instead of the full path

2 years agoCorrectly convert Option<Generic<Inner>> to C
Matt Corallo [Tue, 12 Oct 2021 02:09:03 +0000 (02:09 +0000)]
Correctly convert Option<Generic<Inner>> to C

2 years agoDrop stale manual path mappings for generic containers
Matt Corallo [Tue, 12 Oct 2021 02:07:34 +0000 (02:07 +0000)]
Drop stale manual path mappings for generic containers

These are all mapped as generic containers now so there's no need
for manual mapping entries.

2 years ago[net] Ensure we don't spin loop by keeping the poll write bit set
Matt Corallo [Sun, 3 Oct 2021 21:41:18 +0000 (21:41 +0000)]
[net] Ensure we don't spin loop by keeping the poll write bit set

Previously we'd not been unsetting POLLOUT, which will result in
us spin-loop'ing with ChannelManager_write_buffer_space_avail.

Further, we'd also not been unsetting the POLLIN bit, which would
result in us never pausing read as the SocketDescriptor API
requires us to.

2 years agoMerge pull request #45 from TheBlueMatt/main
Matt Corallo [Tue, 28 Sep 2021 01:54:37 +0000 (01:54 +0000)]
Merge pull request #45 from TheBlueMatt/main

Correct clone logic for `Str`.

2 years agoUpdate auto-generated bindings to latest upstream
Matt Corallo [Tue, 28 Sep 2021 01:07:41 +0000 (01:07 +0000)]
Update auto-generated bindings to latest upstream

2 years agoUpdate git commit dependency to latest upstream
Matt Corallo [Tue, 28 Sep 2021 01:08:14 +0000 (01:08 +0000)]
Update git commit dependency to latest upstream

2 years agoCorrect clone logic for `Str`. v0.0.101.3
Matt Corallo [Mon, 27 Sep 2021 23:24:43 +0000 (23:24 +0000)]
Correct clone logic for `Str`.

Previously we'd blindly clone'd the fields, which, if
`data_is_owned` is set, will always result in a a double-free.

Instead, we always clone the underlying bytes, setting
`data_is_owned` on the returned value since its likely the caller
wants to hold onto the string outside of the current context.

2 years agoMerge pull request #44 from TheBlueMatt/main v0.0.101.2
Matt Corallo [Sun, 26 Sep 2021 22:54:31 +0000 (22:54 +0000)]
Merge pull request #44 from TheBlueMatt/main

2 years agoDetect a type as clonable with an explicit `impl Clone`
Matt Corallo [Sun, 26 Sep 2021 06:19:07 +0000 (06:19 +0000)]
Detect a type as clonable with an explicit `impl Clone`

These stay `impl Clone` even after the pretty-print rustc pass so
we cannot only match `core::clone::Clone`

2 years agoFix races in demo C++ bindings that can hang valgrind in CI
Matt Corallo [Sat, 25 Sep 2021 21:43:38 +0000 (21:43 +0000)]
Fix races in demo C++ bindings that can hang valgrind in CI

2 years agoCache multi-line sed replacements across methods to improve runtime
Matt Corallo [Sat, 25 Sep 2021 00:38:03 +0000 (00:38 +0000)]
Cache multi-line sed replacements across methods to improve runtime

2 years agoMerge pull request #43 from TheBlueMatt/main v0.0.101.1
Matt Corallo [Fri, 24 Sep 2021 22:56:26 +0000 (22:56 +0000)]
Merge pull request #43 from TheBlueMatt/main

Link libm for debug builds in testing due to new rust libstd dep

2 years agoLink libm for debug builds in testing due to new rust libstd dep
Matt Corallo [Fri, 24 Sep 2021 22:46:35 +0000 (22:46 +0000)]
Link libm for debug builds in testing due to new rust libstd dep

2 years agoMerge pull request #42 from TheBlueMatt/main
Matt Corallo [Fri, 24 Sep 2021 21:25:35 +0000 (21:25 +0000)]
Merge pull request #42 from TheBlueMatt/main

Update to v0.0.101

2 years agoBump lightning dep gitish to v0.0.101
Matt Corallo [Thu, 23 Sep 2021 18:45:18 +0000 (18:45 +0000)]
Bump lightning dep gitish to v0.0.101

2 years agoUpdate C and C++ demos to latest API and test custom messages
Matt Corallo [Thu, 23 Sep 2021 02:57:30 +0000 (02:57 +0000)]
Update C and C++ demos to latest API and test custom messages

2 years agoUpdate auto-generated bindings
Matt Corallo [Mon, 6 Sep 2021 01:13:29 +0000 (01:13 +0000)]
Update auto-generated bindings

2 years agoCall clone explicitly to avoid deref recursion when cloning traits
Matt Corallo [Fri, 24 Sep 2021 18:28:18 +0000 (18:28 +0000)]
Call clone explicitly to avoid deref recursion when cloning traits

2 years agoAdd missing C++ header for LDK::Str
Matt Corallo [Thu, 23 Sep 2021 02:59:04 +0000 (02:59 +0000)]
Add missing C++ header for LDK::Str

2 years agoStop tracking unused syn::Type mappings in GenericResolver
Matt Corallo [Thu, 23 Sep 2021 20:02:20 +0000 (20:02 +0000)]
Stop tracking unused syn::Type mappings in GenericResolver

They are now unused as of the previous commit

2 years agoUse `GenericTypes`'s type resolver instead of re-resolving
Matt Corallo [Wed, 22 Sep 2021 06:04:50 +0000 (06:04 +0000)]
Use `GenericTypes`'s type resolver instead of re-resolving

When we resolve a type with `GenericTypes::maybe_resolve_path` it
returns a resolved-path string as well as a syn::Path. When
resolving we'd previously then re-resolve the Path with the current
type/import information, instead of just accepting what was already
resolved. Simply accepting what was already resolved not only
simplifies a few cases, but also allows us to clean up where the
"crate::" prefix is printed, keeping "crate::" prefixes out of all
type resolution.

2 years agoWork around broken resolution on non-pub use aliasing in another module
Matt Corallo [Wed, 22 Sep 2021 23:14:41 +0000 (23:14 +0000)]
Work around broken resolution on non-pub use aliasing in another module

2 years agoHandle uncallable trait methods that use Infallible in a parameter
Matt Corallo [Thu, 23 Sep 2021 04:17:21 +0000 (04:17 +0000)]
Handle uncallable trait methods that use Infallible in a parameter

2 years agoMap core::convert::Infallible to a similar manually-defined struct
Matt Corallo [Wed, 22 Sep 2021 23:13:34 +0000 (23:13 +0000)]
Map core::convert::Infallible to a similar manually-defined struct

2 years agoSupport std::io::Read natively by mapping it to and u8slice
Matt Corallo [Thu, 23 Sep 2021 17:47:51 +0000 (17:47 +0000)]
Support std::io::Read natively by mapping it to and u8slice

2 years agoSupport converting C `OutPoint`s to `bitcoin` `OutPoint`s
Matt Corallo [Thu, 23 Sep 2021 17:46:30 +0000 (17:46 +0000)]
Support converting C `OutPoint`s to `bitcoin` `OutPoint`s

2 years agoUpdate io::Read manual implementation to upstream API changes
Matt Corallo [Thu, 23 Sep 2021 17:45:51 +0000 (17:45 +0000)]
Update io::Read manual implementation to upstream API changes

2 years agoAvoid mapping optionals as owned pointers
Matt Corallo [Wed, 22 Sep 2021 02:46:10 +0000 (02:46 +0000)]
Avoid mapping optionals as owned pointers

Using an owned pointer to map an optional turned out to be quite
annoying to avoid downstream memory issues. Instead, we use the
much more explicit `COption_TypeZ` enums everywhere.

This also fixes Option-al mapping of enums.