ldk-java
2 years ago[TS] Update auto-generated TypeScript Bindings
Matt Corallo [Sat, 15 Jan 2022 20:33:07 +0000 (20:33 +0000)]
[TS] Update auto-generated TypeScript Bindings

2 years ago[TS] Update tests to build a funding tx and get to broadcast
Matt Corallo [Mon, 17 Jan 2022 02:55:58 +0000 (02:55 +0000)]
[TS] Update tests to build a funding tx and get to broadcast

2 years agoUse uintptr_t in generic conversion when we're talking about pointers
Matt Corallo [Mon, 17 Jan 2022 02:54:11 +0000 (02:54 +0000)]
Use uintptr_t in generic conversion when we're talking about pointers

This may make it harder to support 32-bit Java platforms in the
future if we have a reason to do so, but that seems unlikely and
its possible we can simply redefine the type.

2 years agoUse intptr_t in C when talking about a pointer.
Matt Corallo [Mon, 17 Jan 2022 02:50:23 +0000 (02:50 +0000)]
Use intptr_t in C when talking about a pointer.

This fixes a bug in TS where we'd return an int64_t when we intended
to return a pointer, confusing JavaScript as to why it has a bigint
instead of a number.

This may make it harder to support 32-bit Java platforms in the
future if we have a reason to do so, but that seems unlikely and
its possible we can simply redefine the type.

2 years ago[TS] Run both debug and release builds in CI
Matt Corallo [Mon, 17 Jan 2022 00:36:56 +0000 (00:36 +0000)]
[TS] Run both debug and release builds in CI

2 years ago[TS] Bump version to 0.0.104.1alpha2
Matt Corallo [Mon, 17 Jan 2022 00:11:09 +0000 (00:11 +0000)]
[TS] Bump version to 0.0.104.1alpha2

2 years ago[TS] Include most doc comments
Matt Corallo [Mon, 17 Jan 2022 00:09:13 +0000 (00:09 +0000)]
[TS] Include most doc comments

2 years ago[TS] Fix Some array leaks, mark others, treat < 10 leaks as "okay"
Matt Corallo [Sun, 16 Jan 2022 23:49:44 +0000 (23:49 +0000)]
[TS] Fix Some array leaks, mark others, treat < 10 leaks as "okay"

2 years ago[TS] Empty environment variables as WASI's environ fetch leaks memory
Matt Corallo [Sun, 16 Jan 2022 23:33:07 +0000 (23:33 +0000)]
[TS] Empty environment variables as WASI's environ fetch leaks memory

2 years ago[TS] Use -O1 on debug builds as otherwise they can be unusable slow
Matt Corallo [Sun, 16 Jan 2022 23:13:29 +0000 (23:13 +0000)]
[TS] Use -O1 on debug builds as otherwise they can be unusable slow

2 years ago[TS] Free native -> human arrays after we're done converting
Matt Corallo [Sun, 16 Jan 2022 23:11:35 +0000 (23:11 +0000)]
[TS] Free native -> human arrays after we're done converting

2 years ago[TS] Wrap `aligned_alloc` as well as other malloc's.
Matt Corallo [Sun, 16 Jan 2022 22:25:20 +0000 (22:25 +0000)]
[TS] Wrap `aligned_alloc` as well as other malloc's.

2 years ago[TS] Debug allocations somewhat further, incl prints in test.
Matt Corallo [Sun, 16 Jan 2022 18:36:46 +0000 (18:36 +0000)]
[TS] Debug allocations somewhat further, incl prints in test.

2 years ago[TS] Move C header code to next to code that uses it in constr
Matt Corallo [Sun, 16 Jan 2022 18:34:30 +0000 (18:34 +0000)]
[TS] Move C header code to next to code that uses it in constr

2 years ago[TS] Fix Debug builds by removing ((destructor)) attributes
Matt Corallo [Sat, 15 Jan 2022 22:02:46 +0000 (22:02 +0000)]
[TS] Fix Debug builds by removing ((destructor)) attributes

2 years ago[TS] Remove race-y test for malloc-free-malloc re-using memory
Matt Corallo [Sat, 15 Jan 2022 21:46:20 +0000 (21:46 +0000)]
[TS] Remove race-y test for malloc-free-malloc re-using memory

2 years ago[TS] Swap Os for Oz because its a minor change and a minor win
Matt Corallo [Sat, 15 Jan 2022 20:54:37 +0000 (20:54 +0000)]
[TS] Swap Os for Oz because its a minor change and a minor win

2 years ago[TS] Make bindings.mts export nothing, fix some indentation
Matt Corallo [Sat, 15 Jan 2022 20:30:37 +0000 (20:30 +0000)]
[TS] Make bindings.mts export nothing, fix some indentation

2 years ago[TS] Set LDK_GARBAGECOLLECTED_GIT_OVERRIDE so that versions work
Matt Corallo [Mon, 17 Jan 2022 04:29:02 +0000 (04:29 +0000)]
[TS] Set LDK_GARBAGECOLLECTED_GIT_OVERRIDE so that versions work

2 years ago[TS] Add bindings-binary-version-check to initializeWasm
Matt Corallo [Sat, 15 Jan 2022 20:30:03 +0000 (20:30 +0000)]
[TS] Add bindings-binary-version-check to initializeWasm

2 years ago[TS] Create .d.mts files by default
Matt Corallo [Sat, 15 Jan 2022 20:28:36 +0000 (20:28 +0000)]
[TS] Create .d.mts files by default

2 years ago[TS] Fix HTML test runner to properly await and fully check result
Matt Corallo [Sat, 15 Jan 2022 05:35:12 +0000 (05:35 +0000)]
[TS] Fix HTML test runner to properly await and fully check result

2 years agoMerge pull request #78 from arik-so/typescript_fixes
Matt Corallo [Fri, 14 Jan 2022 19:12:15 +0000 (19:12 +0000)]
Merge pull request #78 from arik-so/typescript_fixes

Make npm publication generate node-compatible modules.

2 years agoInclude type declaration files and remove typically unnecessary dependencies.
Arik Sosman [Wed, 12 Jan 2022 20:30:37 +0000 (12:30 -0800)]
Include type declaration files and remove typically unnecessary dependencies.

Update files to include *.mjs files and remove npmignore.

Update .gitignore

Update .npmignore

Update .gitignore

Make publication generate node-compatible modules.

2 years agoMerge pull request #74 from TheBlueMatt/2022-01-ts-hu-files v0.0.104.1
Matt Corallo [Mon, 10 Jan 2022 21:38:45 +0000 (21:38 +0000)]
Merge pull request #74 from TheBlueMatt/2022-01-ts-hu-files

[TypeScript] Make Basic "Human" Object Construction Work

2 years agoUpdate auto-generated TypeScript Bindings 2022-01-ts-hu-files
Matt Corallo [Mon, 10 Jan 2022 03:29:25 +0000 (03:29 +0000)]
Update auto-generated TypeScript Bindings

2 years agoUpdate auto-generated Java bindings (all functionally equivalent)
Matt Corallo [Mon, 10 Jan 2022 03:25:47 +0000 (03:25 +0000)]
Update auto-generated Java bindings (all functionally equivalent)

2 years agoSplit Java CI runs into tests and binary determinism checks
Matt Corallo [Mon, 10 Jan 2022 03:12:58 +0000 (03:12 +0000)]
Split Java CI runs into tests and binary determinism checks

2 years ago[TS] Add package.json for public release
Matt Corallo [Mon, 10 Jan 2022 06:29:47 +0000 (06:29 +0000)]
[TS] Add package.json for public release

2 years ago[TS] Update README to describe TS as "early alpha" 🚀
Matt Corallo [Sat, 8 Jan 2022 17:48:28 +0000 (17:48 +0000)]
[TS] Update README to describe TS as "early alpha" ðŸš€

2 years ago[TS] Change paths to liblightningjs.wasm to be in ts/
Matt Corallo [Mon, 10 Jan 2022 05:41:44 +0000 (05:41 +0000)]
[TS] Change paths to liblightningjs.wasm to be in ts/

2 years ago[TS] Add a basic functional tests of human types
Matt Corallo [Sat, 8 Jan 2022 07:43:36 +0000 (07:43 +0000)]
[TS] Add a basic functional tests of human types

2 years ago[TS] Drop InternalUtils as they are now called via bindings.
Matt Corallo [Mon, 10 Jan 2022 05:35:54 +0000 (05:35 +0000)]
[TS] Drop InternalUtils as they are now called via bindings.

2 years ago[TS] Swap BigInt (the class/constructor) for bigint (the primitive)
Matt Corallo [Mon, 10 Jan 2022 00:56:18 +0000 (00:56 +0000)]
[TS] Swap BigInt (the class/constructor) for bigint (the primitive)

2 years agoSupport mapping primitive arrays as non-arrays (eg numbers)
Matt Corallo [Mon, 10 Jan 2022 00:55:04 +0000 (00:55 +0000)]
Support mapping primitive arrays as non-arrays (eg numbers)

TypeScript can't pass an array through to C, so we have to pass a
pointer to a constructed array. This adds support in the relevant
type-conversion logic to enable this (and uses it in TS).

2 years agoEnsure `TypeInfo` always has `subty` set if its an array
Matt Corallo [Mon, 10 Jan 2022 00:50:23 +0000 (00:50 +0000)]
Ensure `TypeInfo` always has `subty` set if its an array

2 years agoMake String types language-specific and fix TS string conversion
Matt Corallo [Sun, 9 Jan 2022 06:24:30 +0000 (06:24 +0000)]
Make String types language-specific and fix TS string conversion

2 years agoSkip reference-holding in static methods in a (kinda-)cleaner way
Matt Corallo [Mon, 10 Jan 2022 05:25:29 +0000 (05:25 +0000)]
Skip reference-holding in static methods in a (kinda-)cleaner way

2 years ago[TS] Clean up wasm environment exports
Matt Corallo [Sun, 9 Jan 2022 00:01:15 +0000 (00:01 +0000)]
[TS] Clean up wasm environment exports

2 years ago[TS] Configure memory setup in linker to not insta-OOM
Matt Corallo [Sat, 8 Jan 2022 23:57:00 +0000 (23:57 +0000)]
[TS] Configure memory setup in linker to not insta-OOM

2 years ago[TS] Rewrite complex enum creation
Matt Corallo [Sun, 9 Jan 2022 00:01:35 +0000 (00:01 +0000)]
[TS] Rewrite complex enum creation

We cannot create bindings objects from C in TS, so instead have to
query for individual fields on construction.

2 years ago[TS] Use export_/import_name to filter exposed symbols
Matt Corallo [Sat, 8 Jan 2022 19:44:08 +0000 (19:44 +0000)]
[TS] Use export_/import_name to filter exposed symbols

2 years ago[TS] Correct pointer arithmetic on array construction
Matt Corallo [Mon, 10 Jan 2022 03:07:49 +0000 (03:07 +0000)]
[TS] Correct pointer arithmetic on array construction

2 years ago[TS] Correctly pass u64s from TS to C, using BigInts
Matt Corallo [Mon, 10 Jan 2022 01:17:46 +0000 (01:17 +0000)]
[TS] Correctly pass u64s from TS to C, using BigInts

2 years agoFix LDKRecoverableSignature variable parsing
Matt Corallo [Mon, 10 Jan 2022 03:57:50 +0000 (03:57 +0000)]
Fix LDKRecoverableSignature variable parsing

2 years agoUse uintptr_t for the return value of `clone_ptr` to match reality
Matt Corallo [Mon, 10 Jan 2022 01:16:27 +0000 (01:16 +0000)]
Use uintptr_t for the return value of `clone_ptr` to match reality

2 years ago[TS] Implement Rust -> TS calls and TS Trait instance construction
Matt Corallo [Sat, 8 Jan 2022 07:04:58 +0000 (07:04 +0000)]
[TS] Implement Rust -> TS calls and TS Trait instance construction

2 years ago[TS] Make compiler checks a bit more aggressive, fix indentation
Matt Corallo [Sat, 8 Jan 2022 06:38:48 +0000 (06:38 +0000)]
[TS] Make compiler checks a bit more aggressive, fix indentation

2 years ago[TS] Fix indentation of bindings.mts somewhat
Matt Corallo [Sat, 8 Jan 2022 19:45:29 +0000 (19:45 +0000)]
[TS] Fix indentation of bindings.mts somewhat

2 years agoFix double free introduced in 9b9e4369d34e24a9dc7f3f1494865a026ca4
Matt Corallo [Mon, 10 Jan 2022 04:30:00 +0000 (04:30 +0000)]
Fix double free introduced in 9b9e4369d34e24a9dc7f3f1494865a026ca4

This requires correctly setting `holds_ref` as well as handling
`holds_ref` on pointed-to objects in the general-case ret_conv in
`gen_type_mapping.py`.

2 years agoMerge pull request #73 from TheBlueMatt/main
Matt Corallo [Sat, 8 Jan 2022 05:03:48 +0000 (05:03 +0000)]
Merge pull request #73 from TheBlueMatt/main

Make all TypeScript "Human" mappings compile

2 years agoUpdate auto-generated TypeScript files
Matt Corallo [Sat, 8 Jan 2022 04:13:50 +0000 (04:13 +0000)]
Update auto-generated TypeScript files

2 years agoAdd a warning for Locked human objects as they are not usable yet
Matt Corallo [Sat, 8 Jan 2022 04:10:54 +0000 (04:10 +0000)]
Add a warning for Locked human objects as they are not usable yet

2 years agoUpdate tests to test human structs from TypeScript
Matt Corallo [Fri, 7 Jan 2022 02:12:18 +0000 (02:12 +0000)]
Update tests to test human structs from TypeScript

2 years agoMake array human construction language-specific
Matt Corallo [Sat, 8 Jan 2022 02:16:37 +0000 (02:16 +0000)]
Make array human construction language-specific

2 years ago[TS] Correct syntax in human interface files
Matt Corallo [Sat, 8 Jan 2022 01:26:12 +0000 (01:26 +0000)]
[TS] Correct syntax in human interface files

2 years ago[TS] Drop references to `this` in static `UtilMethods` functions
Matt Corallo [Sat, 8 Jan 2022 03:55:05 +0000 (03:55 +0000)]
[TS] Drop references to `this` in static `UtilMethods` functions

2 years agoMake TxOut language-specific, fix typescript UtilMethods compilation
Matt Corallo [Fri, 7 Jan 2022 23:02:42 +0000 (23:02 +0000)]
Make TxOut language-specific, fix typescript UtilMethods compilation

2 years ago[TS] Fix syntax errors in human trait definitions
Matt Corallo [Fri, 7 Jan 2022 22:32:50 +0000 (22:32 +0000)]
[TS] Fix syntax errors in human trait definitions

2 years agoMake array range iteration language-specific
Matt Corallo [Fri, 7 Jan 2022 22:20:06 +0000 (22:20 +0000)]
Make array range iteration language-specific

2 years agoMake human -> C array mapping language-specific
Matt Corallo [Fri, 7 Jan 2022 20:59:42 +0000 (20:59 +0000)]
Make human -> C array mapping language-specific

2 years agoUse wasm's default memory instead of creating/accessing an (unused) one
Matt Corallo [Fri, 7 Jan 2022 18:25:43 +0000 (18:25 +0000)]
Use wasm's default memory instead of creating/accessing an (unused) one

2 years agoMake struct pointer loading language-specific and reliable for TS
Matt Corallo [Fri, 7 Jan 2022 06:27:54 +0000 (06:27 +0000)]
Make struct pointer loading language-specific and reliable for TS

2 years agoMake Result mapping language-specific and implement it for TS
Matt Corallo [Fri, 7 Jan 2022 06:03:37 +0000 (06:03 +0000)]
Make Result mapping language-specific and implement it for TS

2 years agoAdd InternalUtils for array length checking to match Java
Matt Corallo [Fri, 7 Jan 2022 03:24:00 +0000 (03:24 +0000)]
Add InternalUtils for array length checking to match Java

2 years ago[TS] Resolve locally-defined structs in other structs, create index.mts
Matt Corallo [Fri, 7 Jan 2022 18:36:54 +0000 (18:36 +0000)]
[TS] Resolve locally-defined structs in other structs, create index.mts

2 years agoMake the call for `ptrs_to.add()` swappable per language
Matt Corallo [Thu, 6 Jan 2022 23:31:59 +0000 (23:31 +0000)]
Make the call for `ptrs_to.add()` swappable per language

2 years ago[TS] Fix finalization syntax, drop "default" on class exports, minor tweaks
Matt Corallo [Thu, 6 Jan 2022 23:33:48 +0000 (23:33 +0000)]
[TS] Fix finalization syntax, drop "default" on class exports, minor tweaks

2 years agoMake variable declaration statements language-specific
Matt Corallo [Fri, 7 Jan 2022 18:58:53 +0000 (18:58 +0000)]
Make variable declaration statements language-specific

2 years ago[TS] Minor syntax fixes in human struct files, mostly complex enums
Matt Corallo [Fri, 7 Jan 2022 18:58:40 +0000 (18:58 +0000)]
[TS] Minor syntax fixes in human struct files, mostly complex enums

2 years agoPass output directory throuh to consts and call a cleanup function
Matt Corallo [Fri, 7 Jan 2022 18:38:22 +0000 (18:38 +0000)]
Pass output directory throuh to consts and call a cleanup function

2 years agoMerge pull request #72 from TheBlueMatt/main
Matt Corallo [Fri, 7 Jan 2022 17:31:08 +0000 (17:31 +0000)]
Merge pull request #72 from TheBlueMatt/main

Get TypeScript compiling warning-free and properly test wasm loading+calling in CI

2 years agoUpdate auto-generated mts files (without structs)
Matt Corallo [Wed, 5 Jan 2022 06:49:44 +0000 (06:49 +0000)]
Update auto-generated mts files (without structs)

2 years agoMake genbindings.sh only build one of java/wasm, test wasm in CI
Matt Corallo [Wed, 5 Jan 2022 06:32:04 +0000 (06:32 +0000)]
Make genbindings.sh only build one of java/wasm, test wasm in CI

2 years agoDrop ts/util* which are no longer used/generated
Matt Corallo [Wed, 5 Jan 2022 06:20:42 +0000 (06:20 +0000)]
Drop ts/util* which are no longer used/generated

2 years agoSwitch to .mts files and build typescript bindings in genbindings.sh
Matt Corallo [Wed, 5 Jan 2022 06:18:33 +0000 (06:18 +0000)]
Switch to .mts files and build typescript bindings in genbindings.sh

2 years agoFix method reference errors and make bindings.ts generation work again
Matt Corallo [Wed, 5 Jan 2022 06:17:44 +0000 (06:17 +0000)]
Fix method reference errors and make bindings.ts generation work again

2 years agoFix syntax errors in bindings.ts in option handling
Matt Corallo [Tue, 4 Jan 2022 23:56:21 +0000 (23:56 +0000)]
Fix syntax errors in bindings.ts in option handling

2 years agoUpdate tests and batteries to new result API
Matt Corallo [Tue, 4 Jan 2022 22:52:11 +0000 (22:52 +0000)]
Update tests and batteries to new result API

2 years agoUnify tuple and result field getters and push them through map_fn
Matt Corallo [Tue, 4 Jan 2022 22:50:47 +0000 (22:50 +0000)]
Unify tuple and result field getters and push them through map_fn

2 years agoUpdate typescript test to latest API
Matt Corallo [Tue, 4 Jan 2022 21:23:23 +0000 (21:23 +0000)]
Update typescript test to latest API

2 years agoClean up TS arrays and make TS compile warning-free again
Matt Corallo [Tue, 4 Jan 2022 06:48:40 +0000 (06:48 +0000)]
Clean up TS arrays and make TS compile warning-free again

2 years agoMerge pull request #71 from TheBlueMatt/main
Matt Corallo [Thu, 23 Dec 2021 00:33:08 +0000 (00:33 +0000)]
Merge pull request #71 from TheBlueMatt/main

Update readme noting that the bindings are beta, not alpha

2 years agoUpdate readme noting that the bindings are beta, not alpha
Matt Corallo [Thu, 23 Dec 2021 00:29:52 +0000 (00:29 +0000)]
Update readme noting that the bindings are beta, not alpha

... and there are no known memory leaks ðŸŽ‰.

Fixes #70.

2 years agoMerge pull request #69 from TheBlueMatt/main v0.0.104.0
Matt Corallo [Tue, 21 Dec 2021 17:45:34 +0000 (17:45 +0000)]
Merge pull request #69 from TheBlueMatt/main

v0.0.104.0

2 years agoFix Java path setting in OSX builds
Matt Corallo [Tue, 21 Dec 2021 02:02:57 +0000 (02:02 +0000)]
Fix Java path setting in OSX builds

2 years agoUse LC_ALL instead of LANG to correct zip file ordering
Matt Corallo [Tue, 21 Dec 2021 01:27:24 +0000 (01:27 +0000)]
Use LC_ALL instead of LANG to correct zip file ordering

2 years agoUpdate CI branches to 0.0.104
Matt Corallo [Mon, 20 Dec 2021 09:04:37 +0000 (09:04 +0000)]
Update CI branches to 0.0.104

2 years agoUpdate auto-updated Java files
Matt Corallo [Sun, 5 Dec 2021 23:39:42 +0000 (23:39 +0000)]
Update auto-updated Java files

2 years agoUpdate tests and batteries for new 0.0.104 API, fix Java 18 build
Matt Corallo [Mon, 20 Dec 2021 07:18:32 +0000 (07:18 +0000)]
Update tests and batteries for new 0.0.104 API, fix Java 18 build

As of this commit, leaks in the full test suite are:
    20 allocations remained for 1115206 bytes.

2 years agoHandle the new LDKTwelveBytes instead of LDKTenBytes
Matt Corallo [Mon, 20 Dec 2021 07:06:04 +0000 (07:06 +0000)]
Handle the new LDKTwelveBytes instead of LDKTenBytes

2 years agoUpdate HumanObjectPeerTest to exercise undefined JVM JIT behavior
Matt Corallo [Tue, 14 Dec 2021 22:55:00 +0000 (22:55 +0000)]
Update HumanObjectPeerTest to exercise undefined JVM JIT behavior

2 years agoWork around Java's insane lack of finalization guarantees
Matt Corallo [Tue, 14 Dec 2021 22:38:49 +0000 (22:38 +0000)]
Work around Java's insane lack of finalization guarantees

2 years agoUse the same FindClass argument for Android and regular Java
Matt Corallo [Sun, 12 Dec 2021 18:44:34 +0000 (18:44 +0000)]
Use the same FindClass argument for Android and regular Java

Its unclear whether the android variant (no L prefix, ; suffix) was
ever tested on normal Java or not, but the existing code generates
a large volumes of warnings on OpenJDK 11 like:

WARNING in native method: JNI FindClass received a bad class descriptor "Lorg/ldk/impl/bindings$LDKEvent$PaymentReceived;".  A correct class descriptor has no leading "L" or trailing ";".  Incorrect descriptors will not be accepted in future releases.

2 years agoCheck exceptions after calling Enum.ordinal() from Rust
Matt Corallo [Sun, 12 Dec 2021 18:35:18 +0000 (18:35 +0000)]
Check exceptions after calling Enum.ordinal() from Rust

This generally shouldn't ever fire, but otherwise Java says, e.g.

WARNING in native method: JNI call made without checking exceptions when required to from CallIntMethod
at org.ldk.impl.bindings.create_invoice_from_channelmanager(Native Method)

2 years agothrow InvalidSerializedDataException on duplicate ChannelMonitors
Matt Corallo [Sun, 5 Dec 2021 23:29:37 +0000 (23:29 +0000)]
throw InvalidSerializedDataException on duplicate ChannelMonitors

2 years agoOverride hashCode and equals for Rust objects that impl the equivalent
Matt Corallo [Sun, 5 Dec 2021 23:28:18 +0000 (23:28 +0000)]
Override hashCode and equals for Rust objects that impl the equivalent

2 years agoMerge pull request #56 from TheBlueMatt/main v0.0.103.1
Matt Corallo [Fri, 3 Dec 2021 16:21:47 +0000 (16:21 +0000)]
Merge pull request #56 from TheBlueMatt/main

v0.0.103.1

2 years agoMake maven a bit quieter during CI runs
Matt Corallo [Thu, 2 Dec 2021 23:09:20 +0000 (23:09 +0000)]
Make maven a bit quieter during CI runs

2 years agoUpdate to Maven 3.8.4 on OSX CI builds
Matt Corallo [Wed, 1 Dec 2021 15:47:11 +0000 (15:47 +0000)]
Update to Maven 3.8.4 on OSX CI builds