ldk-java
2 years ago[Java] Add a reachabilityFence on underlying trait impl calls
Matt Corallo [Thu, 3 Mar 2022 02:32:15 +0000 (02:32 +0000)]
[Java] Add a reachabilityFence on underlying trait impl calls

Because the implementation instance is implicitly held as a
reference in the `held` field, it seems unlikely this could ever
matter, hwoever, in the simplified implementation in `PeerTest`
(where there is no Human instance to hold a reference to the
underlying bindings instance), we do see the implementation being
free'd while its still in use. Thus, to ensure we can't hit any
such issue in the future, we add one in normal human objects as
well.

2 years ago[Java] Update tests + batteries to latest upstream API
Matt Corallo [Thu, 3 Mar 2022 02:31:52 +0000 (02:31 +0000)]
[Java] Update tests + batteries to latest upstream API

2 years ago[Java] Handle UInt5 array conversion
Matt Corallo [Thu, 3 Mar 2022 02:29:17 +0000 (02:29 +0000)]
[Java] Handle UInt5 array conversion

2 years agoCorrect handling of arrays of 32-byte-array equivalents (Payment*)
Matt Corallo [Wed, 2 Mar 2022 21:23:50 +0000 (21:23 +0000)]
Correct handling of arrays of 32-byte-array equivalents (Payment*)

2 years agoProperly match warning comments, not structs with "Warning"
Matt Corallo [Wed, 2 Mar 2022 21:23:26 +0000 (21:23 +0000)]
Properly match warning comments, not structs with "Warning"

2 years agoMerge pull request #82 from TheBlueMatt/main
Matt Corallo [Wed, 2 Feb 2022 20:32:01 +0000 (20:32 +0000)]
Merge pull request #82 from TheBlueMatt/main

TypeScript Package cleanups and Java socket closure

2 years ago[TS] Fix CI when we log while the browser is shutting down
Matt Corallo [Wed, 2 Feb 2022 19:29:45 +0000 (19:29 +0000)]
[TS] Fix CI when we log while the browser is shutting down

2 years ago[Java] Close all sockets cleanly on `NioPeerHandler::interrupt`
Matt Corallo [Tue, 1 Feb 2022 22:33:02 +0000 (22:33 +0000)]
[Java] Close all sockets cleanly on `NioPeerHandler::interrupt`

2 years ago[Java] More carefully ensure sockets are closed in `NioPeerHandler`
Matt Corallo [Thu, 27 Jan 2022 18:39:52 +0000 (18:39 +0000)]
[Java] More carefully ensure sockets are closed in `NioPeerHandler`

There is no indication that the sockets are leaking in the handling
loop, but its good to be careful and ensure we always both close
the SocketChannel and cancel the key registration.

During connection, however, it appears we may leak a SocketChannel
if the connection times out, leaking a file descriptor at least
until the GC kicks in and cleans up after us.  Here we are more
careful.

2 years ago[Java] Stop processing net before we stop the background processor
Matt Corallo [Tue, 18 Jan 2022 21:46:31 +0000 (21:46 +0000)]
[Java] Stop processing net before we stop the background processor

See https://github.com/lightningdevkit/rust-lightning/issues/1237A

Fixes #77.

2 years ago[TS] Copy README.md instead of symlinking, so npm publish accepts it
Matt Corallo [Tue, 18 Jan 2022 00:38:47 +0000 (00:38 +0000)]
[TS] Copy README.md instead of symlinking, so npm publish accepts it

2 years ago[TS] Add a types tag in package.json to point to TS types
Matt Corallo [Tue, 18 Jan 2022 00:37:18 +0000 (00:37 +0000)]
[TS] Add a types tag in package.json to point to TS types

2 years agoMerge pull request #81 from TheBlueMatt/main
Matt Corallo [Tue, 18 Jan 2022 00:09:37 +0000 (00:09 +0000)]
Merge pull request #81 from TheBlueMatt/main

[TS] Unify Web + Node Codebases (with different init functions)

2 years ago[TS] Bump package version to 0.0.104.1alpha4
Matt Corallo [Mon, 17 Jan 2022 22:34:22 +0000 (22:34 +0000)]
[TS] Bump package version to 0.0.104.1alpha4

2 years agoUpdate auto-generated TypeScript files (now universal Node+Web!)
Matt Corallo [Mon, 17 Jan 2022 22:29:35 +0000 (22:29 +0000)]
Update auto-generated TypeScript files (now universal Node+Web!)

2 years ago[TS] Unify Web and Node.JS output so it can be universal
Matt Corallo [Mon, 17 Jan 2022 22:27:50 +0000 (22:27 +0000)]
[TS] Unify Web and Node.JS output so it can be universal

2 years agoMerge pull request #80 from TheBlueMatt/main
Matt Corallo [Mon, 17 Jan 2022 21:42:15 +0000 (21:42 +0000)]
Merge pull request #80 from TheBlueMatt/main

Fix TypeScript CI + Package Missing FIles

2 years ago[TS] Bump package version to 0.0.104.1alpha3
Matt Corallo [Mon, 17 Jan 2022 13:05:45 +0000 (13:05 +0000)]
[TS] Bump package version to 0.0.104.1alpha3

2 years ago[TS] Include missing version.mjs file
Matt Corallo [Mon, 17 Jan 2022 13:02:04 +0000 (13:02 +0000)]
[TS] Include missing version.mjs file

2 years ago[TS] spawn second HTTP server for release run, killing previous one
Matt Corallo [Mon, 17 Jan 2022 16:13:57 +0000 (16:13 +0000)]
[TS] spawn second HTTP server for release run, killing previous one

2 years ago[TS] Manually GC on chromium and skip leak checks otherwise
Matt Corallo [Mon, 17 Jan 2022 14:01:50 +0000 (14:01 +0000)]
[TS] Manually GC on chromium and skip leak checks otherwise

2 years ago[TS] Log console messages in browser tests via playwright
Matt Corallo [Mon, 17 Jan 2022 13:04:40 +0000 (13:04 +0000)]
[TS] Log console messages in browser tests via playwright

2 years agoMerge pull request #79 from TheBlueMatt/main
Matt Corallo [Mon, 17 Jan 2022 04:43:39 +0000 (04:43 +0000)]
Merge pull request #79 from TheBlueMatt/main

TypeScript Cleanups and Fixes

2 years ago[TS] Do not rely on a symlink as npm publish ignores it
Matt Corallo [Mon, 17 Jan 2022 04:33:09 +0000 (04:33 +0000)]
[TS] Do not rely on a symlink as npm publish ignores it

2 years agoUpdate auto-generated Java Bindings
Matt Corallo [Mon, 17 Jan 2022 02:57:38 +0000 (02:57 +0000)]
Update auto-generated Java Bindings

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