]> git.bitcoin.ninja Git - ldk-java/log
ldk-java
13 months ago[Java] Add a new HOPT form with a one level keys wrapper
Matt Corallo [Sun, 1 Oct 2023 22:35:16 +0000 (22:35 +0000)]
[Java] Add a new HOPT form with a one level keys wrapper

We had a user report this was broken, but it appears to be working
fine in this case here.

13 months ago[Java] Update batteries and tests to LDK 0.0.117
Matt Corallo [Sun, 1 Oct 2023 18:44:55 +0000 (18:44 +0000)]
[Java] Update batteries and tests to LDK 0.0.117

13 months ago[Java] Update auto-generated bindings to 0.0.117
Matt Corallo [Sun, 1 Oct 2023 18:43:50 +0000 (18:43 +0000)]
[Java] Update auto-generated bindings to 0.0.117

13 months ago[Java] Properly convert strings to/from Modified UTF-8
Matt Corallo [Mon, 2 Oct 2023 16:43:48 +0000 (16:43 +0000)]
[Java] Properly convert strings to/from Modified UTF-8

Fixes #136

13 months agoUpdate TransactionOutputs type aliasing rules in genbindings.sh
Matt Corallo [Sun, 1 Oct 2023 18:44:24 +0000 (18:44 +0000)]
Update TransactionOutputs type aliasing rules in genbindings.sh

13 months agoUpdate type listing for LDK 0.0.117 bindings and support doubles
Matt Corallo [Sun, 1 Oct 2023 18:41:49 +0000 (18:41 +0000)]
Update type listing for LDK 0.0.117 bindings and support doubles

14 months ago[C#] Drop java-specific crap and upgrade mono to something sane
Matt Corallo [Thu, 7 Sep 2023 16:20:54 +0000 (16:20 +0000)]
[C#] Drop java-specific crap and upgrade mono to something sane

14 months ago[C#] Make check_arr_len generic across array types
Matt Corallo [Thu, 7 Sep 2023 16:20:31 +0000 (16:20 +0000)]
[C#] Make check_arr_len generic across array types

14 months ago[C#] Update auto-generated files
Matt Corallo [Thu, 7 Sep 2023 16:20:15 +0000 (16:20 +0000)]
[C#] Update auto-generated files

14 months ago[C#] Add marshaling logic for array C# -> C conversion
Matt Corallo [Tue, 5 Sep 2023 03:17:09 +0000 (03:17 +0000)]
[C#] Add marshaling logic for array C# -> C conversion

14 months ago[C#] Use TypeScript Array/String layouts
Matt Corallo [Tue, 5 Sep 2023 03:00:37 +0000 (03:00 +0000)]
[C#] Use TypeScript Array/String layouts

C# doesn't have a way to pass arrays with a length, so we simply
re-use the TypeScript Array/String passing, which will be usable
with a CustomMarshaler on the C# side.

14 months ago[C#] Add support for TxIn, int64_t, and int16_t[]
Matt Corallo [Tue, 5 Sep 2023 00:14:36 +0000 (00:14 +0000)]
[C#] Add support for TxIn, int64_t, and int16_t[]

These were added at various points upstream and were never added to
C#

14 months ago[C#] Add missing handling of traits with supertraits of supertraits
Matt Corallo [Tue, 5 Sep 2023 00:13:34 +0000 (00:13 +0000)]
[C#] Add missing handling of traits with supertraits of supertraits

In 831ad69f1f65d26c224fe18003f1694806effa5a support was added for
handling traits with supertraits of supertraits, but the full patch
was not applied to the C# bindings, which is finished here.

15 months agoMerge pull request #135 from TheBlueMatt/main v0.0.116.0
Matt Corallo [Mon, 31 Jul 2023 23:46:10 +0000 (23:46 +0000)]
Merge pull request #135 from TheBlueMatt/main

0.0.116

15 months agoSwitch to playwright nightly to fix FF on Debian 12
Matt Corallo [Mon, 31 Jul 2023 18:02:20 +0000 (18:02 +0000)]
Switch to playwright nightly to fix FF on Debian 12

It appears when playwright officially added support for Debian 12
(https://github.com/microsoft/playwright/issues/23532) they also
started throwing an error when trying to run unsupported browsers
on it (which Firefox was in the latest release). This broke our CI
(even though Firefox ran just fine on Debian 12 for the past year).

Here we simply switch to playwright nightly, which we'll just stick
with for a while.

15 months agoPin quote and proc-macro2 in bindings builds in CI to meet MSRV
Matt Corallo [Mon, 31 Jul 2023 16:38:15 +0000 (16:38 +0000)]
Pin quote and proc-macro2 in bindings builds in CI to meet MSRV

15 months agoUpdate CI references to 0.0.116
Matt Corallo [Sun, 30 Jul 2023 04:51:49 +0000 (04:51 +0000)]
Update CI references to 0.0.116

15 months ago[TS] Update tests to 0.0.116 API
Matt Corallo [Sun, 30 Jul 2023 04:48:17 +0000 (04:48 +0000)]
[TS] Update tests to 0.0.116 API

15 months ago[TS] Update auto-generated bindings to 0.0.116
Matt Corallo [Fri, 28 Jul 2023 06:33:04 +0000 (06:33 +0000)]
[TS] Update auto-generated bindings to 0.0.116

15 months ago[TS] Add support for one additional call semantic which is now used
Matt Corallo [Fri, 28 Jul 2023 06:36:17 +0000 (06:36 +0000)]
[TS] Add support for one additional call semantic which is now used

15 months ago[Java] Update test and manual constructor to 0.0.116 API
Matt Corallo [Thu, 27 Jul 2023 20:37:42 +0000 (20:37 +0000)]
[Java] Update test and manual constructor to 0.0.116 API

15 months ago[Java] Update auto-generated Java bindings for 0.0.116
Matt Corallo [Thu, 27 Jul 2023 20:35:59 +0000 (20:35 +0000)]
[Java] Update auto-generated Java bindings for 0.0.116

15 months agoAdd handling for signed int64 type
Matt Corallo [Thu, 27 Jul 2023 20:34:49 +0000 (20:34 +0000)]
Add handling for signed int64 type

15 months agoAdd handling for manual `TxIn` and stop trying to clone `Witness`
Matt Corallo [Thu, 27 Jul 2023 20:34:12 +0000 (20:34 +0000)]
Add handling for manual `TxIn` and stop trying to clone `Witness`

17 months agoMerge pull request #134 from TheBlueMatt/main v0.0.115.1
Matt Corallo [Mon, 5 Jun 2023 02:36:54 +0000 (02:36 +0000)]
Merge pull request #134 from TheBlueMatt/main

0.0.115.1

17 months ago[TS] Don't check determinism on the WASM file which is now in bins
Matt Corallo [Sun, 4 Jun 2023 17:00:27 +0000 (17:00 +0000)]
[TS] Don't check determinism on the WASM file which is now in bins

17 months agoDrop upstream clang check as there isn't any reason anymore
Matt Corallo [Sun, 4 Jun 2023 00:44:21 +0000 (00:44 +0000)]
Drop upstream clang check as there isn't any reason anymore

17 months agoDon't pass lto arguments to Apple clang (which barfs on them)
Matt Corallo [Sun, 4 Jun 2023 02:00:14 +0000 (02:00 +0000)]
Don't pass lto arguments to Apple clang (which barfs on them)

17 months agoInstall `rust-src` on macOS since its now required for C bindings
Matt Corallo [Sat, 3 Jun 2023 17:52:59 +0000 (17:52 +0000)]
Install `rust-src` on macOS since its now required for C bindings

17 months agoChange set of MacOS builders in CI as Github dropped 10.15
Matt Corallo [Sat, 3 Jun 2023 02:17:30 +0000 (02:17 +0000)]
Change set of MacOS builders in CI as Github dropped 10.15

17 months ago[Java] Check leaktracking jar determinism
Matt Corallo [Sun, 4 Jun 2023 05:37:02 +0000 (05:37 +0000)]
[Java] Check leaktracking jar determinism

17 months ago[Java] Move MacOS release build to build on Linux and test in CI
Matt Corallo [Sun, 4 Jun 2023 04:49:58 +0000 (04:49 +0000)]
[Java] Move MacOS release build to build on Linux and test in CI

17 months agoPass the target tuple to genbindings.py and avoid sys.platform
Matt Corallo [Sat, 3 Jun 2023 02:43:24 +0000 (02:43 +0000)]
Pass the target tuple to genbindings.py and avoid sys.platform

17 months ago[Java] Support building for OSX on Linux
Matt Corallo [Fri, 2 Jun 2023 22:05:11 +0000 (22:05 +0000)]
[Java] Support building for OSX on Linux

17 months ago[Java] Correctly set `gossip_sync` in `ChannelManagerConstructor`
Matt Corallo [Wed, 31 May 2023 23:44:31 +0000 (23:44 +0000)]
[Java] Correctly set `gossip_sync` in `ChannelManagerConstructor`

If `use_p2p_graph_sync` is set, we need to set the `gossip_sync`
given to the `BackgroundProcessor` to `P2P`, rather than `None`.

We also add a regression test for this.

17 months ago[Java] Fix P2P graph sync when enabled in ChannelManagerConstructor
Matt Corallo [Wed, 31 May 2023 23:06:02 +0000 (23:06 +0000)]
[Java] Fix P2P graph sync when enabled in ChannelManagerConstructor

It turns out we were always using the `IgnoringMessageHandler` when
initializing our `PeerManager`, ignoring all P2P graph sync
messages even if `use_p2p_graph_sync` was set.

17 months ago[Java] Add a trivial test of constructing a phantom invoice
Matt Corallo [Wed, 31 May 2023 19:35:27 +0000 (19:35 +0000)]
[Java] Add a trivial test of constructing a phantom invoice

We had a user report that this was broken, though it was actually
an NPE.

17 months ago[TS] Update auto-generated bindings
Matt Corallo [Thu, 1 Jun 2023 20:22:45 +0000 (20:22 +0000)]
[TS] Update auto-generated bindings

17 months ago[Java] Update auto-generated bindings
Matt Corallo [Wed, 31 May 2023 19:35:12 +0000 (19:35 +0000)]
[Java] Update auto-generated bindings

17 months ago[Java] Remove null checks for traits
Matt Corallo [Wed, 31 May 2023 19:32:42 +0000 (19:32 +0000)]
[Java] Remove null checks for traits

We have mapped optional traits via `Option_TraitZ` for quite some
time, so keeping null checks on all trait passes into LDK
unnecessarily converts `NullPointerException`s into SEGFAULTs.

Instead, simply remove them here.

17 months ago[Java] Drop `L` prefix and `;` suffix in string FindClass call
Matt Corallo [Wed, 31 May 2023 19:09:50 +0000 (19:09 +0000)]
[Java] Drop `L` prefix and `;` suffix in string FindClass call

In a0760b79ab3365b9fa668006330aaa5bb456f824 we dropped most of
these, but one was re-introduced recently for `String`, which is
fixed here.

Fixes #130

17 months agoMerge pull request #133 from keyuebao/keyue/issue-132
Matt Corallo [Thu, 25 May 2023 21:20:38 +0000 (21:20 +0000)]
Merge pull request #133 from keyuebao/keyue/issue-132

[Java] Update ChannelManagerConstructor

17 months ago[Java] Update ChannelManagerConstructor
Keyue Bao [Mon, 22 May 2023 22:48:42 +0000 (15:48 -0700)]
[Java] Update ChannelManagerConstructor

This allows PhantomKeysManagers to be used too

18 months agoMerge pull request #128 from TheBlueMatt/main
Matt Corallo [Thu, 27 Apr 2023 05:33:05 +0000 (05:33 +0000)]
Merge pull request #128 from TheBlueMatt/main

Update to LDK 0.0.115

18 months agoExplicitly use bitcoinj 0.17 since I already did it v0.0.115.0
Matt Corallo [Thu, 27 Apr 2023 02:24:22 +0000 (02:24 +0000)]
Explicitly use bitcoinj 0.17 since I already did it

18 months agoUpdate CI refernces to 0.0.115
Matt Corallo [Wed, 26 Apr 2023 18:34:08 +0000 (18:34 +0000)]
Update CI refernces to 0.0.115

18 months ago[TS] Update auto-generated bindings to LDK 0.0.115
Matt Corallo [Wed, 26 Apr 2023 18:34:40 +0000 (18:34 +0000)]
[TS] Update auto-generated bindings to LDK 0.0.115

18 months ago[TS] Support arrays of strings for LDK 0.0.115
Matt Corallo [Wed, 26 Apr 2023 18:29:38 +0000 (18:29 +0000)]
[TS] Support arrays of strings for LDK 0.0.115

18 months ago[Java] Update tests to LDK 0.0.115
Matt Corallo [Wed, 26 Apr 2023 18:04:51 +0000 (18:04 +0000)]
[Java] Update tests to LDK 0.0.115

18 months ago[Java] Update auto-generated bindings to 0.0.115
Matt Corallo [Wed, 26 Apr 2023 18:04:31 +0000 (18:04 +0000)]
[Java] Update auto-generated bindings to 0.0.115

18 months ago[Java] Don't use `wait` as a method name as its reserved
Matt Corallo [Wed, 26 Apr 2023 18:02:49 +0000 (18:02 +0000)]
[Java] Don't use `wait` as a method name as its reserved

18 months ago[Java] Handle array-of-strings for 0.0.115
Matt Corallo [Wed, 26 Apr 2023 02:56:17 +0000 (02:56 +0000)]
[Java] Handle array-of-strings for 0.0.115

18 months agoAdd handling for new LDK types in 0.0.115
Matt Corallo [Wed, 26 Apr 2023 02:56:07 +0000 (02:56 +0000)]
Add handling for new LDK types in 0.0.115

19 months ago[TS] log when an exception is thrown inside of a trait call
Matt Corallo [Fri, 31 Mar 2023 17:25:48 +0000 (17:25 +0000)]
[TS] log when an exception is thrown inside of a trait call

This was what #125 was supposed to be about, but the issue
description was overly vague.

20 months ago[Python] Add python bindings hooks
Matt Corallo [Wed, 18 Jan 2023 18:43:57 +0000 (18:43 +0000)]
[Python] Add python bindings hooks

20 months agoMerge pull request #127 from TheBlueMatt/main v0.0.114.1
Matt Corallo [Sun, 19 Mar 2023 23:46:32 +0000 (23:46 +0000)]
Merge pull request #127 from TheBlueMatt/main

Add missing `UtilMethods` export and sanity-test node-net setups

20 months ago[TS] Update auto-generated bindings
Matt Corallo [Fri, 17 Mar 2023 23:21:56 +0000 (23:21 +0000)]
[TS] Update auto-generated bindings

20 months agoAdd missing export of `UtilMethods`
Matt Corallo [Fri, 17 Mar 2023 17:40:54 +0000 (17:40 +0000)]
Add missing export of `UtilMethods`

20 months ago[TS] Throw a reasonable error if two `NodeLDKNet`s are on one `PM`
Matt Corallo [Wed, 15 Mar 2023 17:33:37 +0000 (17:33 +0000)]
[TS] Throw a reasonable error if two `NodeLDKNet`s are on one `PM`

20 months agoRevert "Use yesterday's rustc on OSX as the release binaries were built with it"
Matt Corallo [Fri, 10 Mar 2023 18:25:37 +0000 (18:25 +0000)]
Revert "Use yesterday's rustc on OSX as the release binaries were built with it"

This reverts commit df806a3a7287441c2f27cb44135e3cb06ee83b42.

20 months agoMerge pull request #126 from TheBlueMatt/main
Matt Corallo [Fri, 10 Mar 2023 18:16:26 +0000 (18:16 +0000)]
Merge pull request #126 from TheBlueMatt/main

0.0.114.0

20 months agoUse yesterday's rustc on OSX as the release binaries were built with it
Matt Corallo [Thu, 9 Mar 2023 20:51:46 +0000 (20:51 +0000)]
Use yesterday's rustc on OSX as the release binaries were built with it

20 months agoWork around rustc regression in 1.68 on android
Matt Corallo [Thu, 9 Mar 2023 17:44:12 +0000 (17:44 +0000)]
Work around rustc regression in 1.68 on android

20 months agoExport more CCs in an attempt to get OSX builds deterministic
Matt Corallo [Thu, 9 Mar 2023 00:55:29 +0000 (00:55 +0000)]
Export more CCs in an attempt to get OSX builds deterministic

20 months agoWork around actions brokenness
Matt Corallo [Wed, 8 Mar 2023 19:37:00 +0000 (19:37 +0000)]
Work around actions brokenness

20 months agoUpdate OSX CI build to LLVM 15.0.7 (matching release builds)
Matt Corallo [Wed, 8 Mar 2023 05:54:02 +0000 (05:54 +0000)]
Update OSX CI build to LLVM 15.0.7 (matching release builds)

20 months agoUpdate CI branches to LDK 0.0.114
Matt Corallo [Wed, 8 Mar 2023 05:13:58 +0000 (05:13 +0000)]
Update CI branches to LDK 0.0.114

20 months ago[TS] Update auto-generated TS bindings
Matt Corallo [Wed, 8 Mar 2023 02:43:26 +0000 (02:43 +0000)]
[TS] Update auto-generated TS bindings

20 months ago[Java] Update auto-generated Java bindings
Matt Corallo [Wed, 8 Mar 2023 02:43:07 +0000 (02:43 +0000)]
[Java] Update auto-generated Java bindings

20 months ago[TS] Slightly improve logging in TS trait calls that fail
Matt Corallo [Wed, 8 Mar 2023 06:04:01 +0000 (06:04 +0000)]
[TS] Slightly improve logging in TS trait calls that fail

Not actually 100% sure what we can do much better on the logging
front, but this is at least a marginal improvement.

Fixes #125.

20 months ago[Java] Allow the user to hook route-finding when using CMC
Matt Corallo [Thu, 9 Mar 2023 18:48:32 +0000 (18:48 +0000)]
[Java] Allow the user to hook route-finding when using CMC

20 months ago[Java] Expose the ProbabilisticScorer from the CMC correctly
Matt Corallo [Wed, 8 Mar 2023 05:04:14 +0000 (05:04 +0000)]
[Java] Expose the ProbabilisticScorer from the CMC correctly

We'd previously exposed a race-y version of the ProbabilisticScorer
where its held within a lock but also made public with no threading
requirements placed on it.

This resolves that issue by exposing it via a wrapper that holds
the score lock.

20 months ago[Java] Expose the finalizer of traits, as some traits are locks
Matt Corallo [Wed, 8 Mar 2023 04:48:58 +0000 (04:48 +0000)]
[Java] Expose the finalizer of traits, as some traits are locks

20 months ago[Java] Update tests to latest (0.0.114) LDK API, rm non-hu ones
Matt Corallo [Wed, 8 Mar 2023 01:06:31 +0000 (01:06 +0000)]
[Java] Update tests to latest (0.0.114) LDK API, rm non-hu ones

The old non-human-object-based tests don't really have any
business being held on to, so we simply remove them entirely here,
relying on the `HumanObjectPeerTest` to do all our work.

20 months ago[Java] Update batteries to latest upstream (0.0.114) API
Matt Corallo [Wed, 8 Mar 2023 01:04:56 +0000 (01:04 +0000)]
[Java] Update batteries to latest upstream (0.0.114) API

This also fixes a bug where we allowed multi-threaded access to the
`ProbabilisticScorer` without the lock required to make it safe.

20 months ago[TS] Update tests to latest upstream (0.0.114) LDK API
Matt Corallo [Tue, 7 Mar 2023 22:40:23 +0000 (22:40 +0000)]
[TS] Update tests to latest upstream (0.0.114) LDK API

20 months agoSupport traits with supertraits of supertraits
Matt Corallo [Fri, 3 Mar 2023 01:20:33 +0000 (01:20 +0000)]
Support traits with supertraits of supertraits

20 months agoSupport (fixed-length) arrays of 16-bit integers
Matt Corallo [Fri, 3 Mar 2023 01:12:36 +0000 (01:12 +0000)]
Support (fixed-length) arrays of 16-bit integers

20 months agoEnsure enums generate a ref in owning structs
Matt Corallo [Wed, 8 Mar 2023 01:58:42 +0000 (01:58 +0000)]
Ensure enums generate a ref in owning structs

Previously we only added a ref in an owning struct to an enum if
that enum contained a trait in a field. This isn't sufficient as an
enum could still contain a reference to an opaque object, which
needs to stick around as long as the enum exists.

For simplicity, simply add a ref in all cases as it seems to still
work in our own internal tests.

22 months ago[TS] Remove unused variable in generator
Matt Corallo [Wed, 18 Jan 2023 18:43:44 +0000 (18:43 +0000)]
[TS] Remove unused variable in generator

22 months agoPass fewer link-only args to compilation clang
Matt Corallo [Tue, 17 Jan 2023 01:17:44 +0000 (01:17 +0000)]
Pass fewer link-only args to compilation clang

22 months agoMerge pull request #124 from TheBlueMatt/main v0.0.113.0
Matt Corallo [Sat, 14 Jan 2023 23:24:29 +0000 (23:24 +0000)]
Merge pull request #124 from TheBlueMatt/main

Update to 0.0.113

22 months ago[TS] Update CI libicu package
Matt Corallo [Sat, 14 Jan 2023 08:20:38 +0000 (08:20 +0000)]
[TS] Update CI libicu package

22 months agoFix WASM CI build due to Actions being trash
Matt Corallo [Sat, 14 Jan 2023 06:33:48 +0000 (06:33 +0000)]
Fix WASM CI build due to Actions being trash

22 months agoFix OSX CI to *actually* use upstream clang
Matt Corallo [Sat, 14 Jan 2023 06:21:18 +0000 (06:21 +0000)]
Fix OSX CI to *actually* use upstream clang

22 months ago[C#,Java] Fix building on OSX due to bug in latest ld64.lld/clang
Matt Corallo [Fri, 13 Jan 2023 20:22:06 +0000 (20:22 +0000)]
[C#,Java] Fix building on OSX due to bug in latest ld64.lld/clang

22 months ago[OSX] Update LLVM/clang to 15.0.3 (the latest x86_64 version)
Matt Corallo [Thu, 12 Jan 2023 22:06:50 +0000 (22:06 +0000)]
[OSX] Update LLVM/clang to 15.0.3 (the latest x86_64 version)

22 months agoUpdate CI references to 0.0.113
Matt Corallo [Wed, 11 Jan 2023 00:54:24 +0000 (00:54 +0000)]
Update CI references to 0.0.113

22 months ago[C#] Check in initial auto-generated C# bindings
Matt Corallo [Mon, 2 Jan 2023 01:14:43 +0000 (01:14 +0000)]
[C#] Check in initial auto-generated C# bindings

22 months ago[C#] Add initial hooks, the C# code compiles, the C not at all
Matt Corallo [Mon, 2 Jan 2023 01:12:41 +0000 (01:12 +0000)]
[C#] Add initial hooks, the C# code compiles, the C not at all

22 months ago[Java] Update tests to 0.0.113 API
Matt Corallo [Wed, 28 Dec 2022 18:27:51 +0000 (18:27 +0000)]
[Java] Update tests to 0.0.113 API

22 months ago[TS] Update tests to 0.0.113 API
Matt Corallo [Wed, 28 Dec 2022 18:27:05 +0000 (18:27 +0000)]
[TS] Update tests to 0.0.113 API

22 months ago[TS] Update auto-generated TS bindings to 0.0.113
Matt Corallo [Wed, 28 Dec 2022 18:26:22 +0000 (18:26 +0000)]
[TS] Update auto-generated TS bindings to 0.0.113

22 months ago[Java] Update auto-generated Java bindings for 0.0.113
Matt Corallo [Wed, 28 Dec 2022 18:25:40 +0000 (18:25 +0000)]
[Java] Update auto-generated Java bindings for 0.0.113

22 months agoAdd some additional writing hooks which C# needs
Matt Corallo [Mon, 2 Jan 2023 01:04:45 +0000 (01:04 +0000)]
Add some additional writing hooks which C# needs

22 months ago[Java] Use util method where possible
Matt Corallo [Mon, 2 Jan 2023 00:23:23 +0000 (00:23 +0000)]
[Java] Use util method where possible

22 months ago[Java] Drop unused util methods
Matt Corallo [Thu, 29 Dec 2022 17:20:15 +0000 (17:20 +0000)]
[Java] Drop unused util methods

22 months ago[TS] Support one more call function
Matt Corallo [Tue, 27 Dec 2022 16:50:37 +0000 (16:50 +0000)]
[TS] Support one more call function

22 months agoNew manual U5 (from u5) and Witness types
Matt Corallo [Tue, 27 Dec 2022 16:49:49 +0000 (16:49 +0000)]
New manual U5 (from u5) and Witness types

22 months agoAdd support for U128, passed as [u8; 16] but with human wrappers
Matt Corallo [Tue, 27 Dec 2022 02:02:24 +0000 (02:02 +0000)]
Add support for U128, passed as [u8; 16] but with human wrappers