Skip to content

Conversation

@10gic
Copy link
Contributor

@10gic 10gic commented Sep 18, 2024

Description

Fix issue #4030

How to test

Run Rust, C++, Kotlin, Swift tests

Types of changes

Checklist

  • Create pull request as draft initially, unless its complete.
  • Add tests to cover changes as needed.
  • Update documentation as needed.
  • If there is a related Issue, mention it in the description.

If you're adding a new blockchain

  • I have read the guidelines for adding a new blockchain.

Screenshots

Before fixing, run Base58.decode 100000 times, it takes up to 200 MB of memory:
Xnip2024-09-18_15-25-56

After fixing, run Base58.decode 100000 times, it takes up to 97.4 MB of memory:
Xnip2024-09-18_15-21-17

Solution

The generated code before fixing:

package com.trustwallet.core

actual object Base58 {

    // ......

    actual fun decode(string: String): ByteArray? =
        TWBase58Decode(string.toTwString()).readTwBytes()         // toTwString and readTwBytes leak memory!


    // ......
}

Definition of old readTwBytes:

internal fun COpaquePointer?.readTwBytes(): ByteArray? =
    TWDataBytes(this)?.readBytes(TWDataSize(this).toInt())

The generated code after fixing:

package com.trustwallet.core

actual object Base58 {

    // ......

    actual fun decode(string: String): ByteArray? {
        val stringString = TWStringCreateWithUTF8Bytes(string)
        val result = TWBase58Decode(stringString).readTwBytes()
        TWStringDelete(stringString)
        return result
    }

    // ......
}

Definition of new readTwBytes:

internal fun COpaquePointer?.readTwBytes(): ByteArray? =
    this?.let {
        val result = TWDataBytes(it)?.readBytes(TWDataSize(it).toInt())
        TWDataDelete(it)
        result
    }

@10gic
Copy link
Contributor Author

10gic commented Sep 25, 2024

@satoshiotomakan Could you please review this PR?

@10gic 10gic force-pushed the fix-kmp-memory-leak-base58-decode branch from b94a2e0 to 355c345 Compare September 27, 2024 02:20
Copy link
Collaborator

@satoshiotomakan satoshiotomakan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work as usual! Could you please consider minor changes?

@satoshiotomakan
Copy link
Collaborator

@10gic can you please fix code formatting?
Screenshot 2024-09-30 at 11 50 04

The code will be available in the iOS Kotlin package, so it should be readable enough.

Please also note that iOS native bindings have been broken by changing val -> value function argument.
Could you please fix it?

@satoshiotomakan
Copy link
Collaborator

@10gic is it possible to revert val -> value argument name refactoring?

@10gic
Copy link
Contributor Author

10gic commented Sep 30, 2024

@10gic can you please fix code formatting? Screenshot 2024-09-30 at 11 50 04

The code will be available in the iOS Kotlin package, so it should be readable enough.

Please also note that iOS native bindings have been broken by changing val -> value function argument. Could you please fix it?

I noticed this issue. However, if I fix the too little code indentation in AnyAddress.kt, then Base58.kt will have too much indentation because the adjusted code in AnyAddress.kt is located within the actual companion object code block, which inherently requires more indentation.

@10gic
Copy link
Contributor Author

10gic commented Sep 30, 2024

@10gic is it possible to revert val -> value argument name refactoring?

Do you have any other considerations? Since the keywords in different languages are different, avoiding using them is the simplest way.

@satoshiotomakan
Copy link
Collaborator

The main reason is to avoid unnecessary breaking changes

@10gic is it possible to revert val -> value argument name refactoring?

Do you have any other considerations? Since the keywords in different languages are different, avoiding using them is the simplest way.

@10gic
Copy link
Contributor Author

10gic commented Sep 30, 2024

The main reason is to avoid unnecessary breaking changes

@10gic is it possible to revert val -> value argument name refactoring?

Do you have any other considerations? Since the keywords in different languages are different, avoiding using them is the simplest way.

Actually, I didn't intend to adjust this behavior in this PR. I can't remember what issue led me to change it. However, I can try to revert it.

@10gic
Copy link
Contributor Author

10gic commented Sep 30, 2024

@satoshiotomakan All comments have been resolved, please review again.

Copy link
Collaborator

@satoshiotomakan satoshiotomakan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@satoshiotomakan satoshiotomakan changed the base branch from master to dev October 1, 2024 09:05
@satoshiotomakan satoshiotomakan merged commit 2ed7098 into trustwallet:dev Oct 1, 2024
12 checks passed
satoshiotomakan added a commit that referenced this pull request Jan 3, 2025
* Kotlin multiplatform leaking memory (#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (#4092)

* [Chore]: Fix Android bindings (#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (#4097)

* Update Callisto explorer (#4131)

* Revert "[TON]: Add support for TON 24-words mnemonic (#3998)" (#4148)

This reverts commit 0b16771.

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
satoshiotomakan added a commit that referenced this pull request Jan 3, 2025
* Kotlin multiplatform leaking memory (#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (#4092)

* [Chore]: Fix Android bindings (#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (#4097)

* Update Callisto explorer (#4131)

* [Babylon]: Add Babylon Staking Inputs and Outputs to BitcoinV2.proto

* [Babylon]: Add `covenant_committee_signatures`

* Revert "[TON]: Add support for TON 24-words mnemonic (#3998)" (#4148)

This reverts commit 0b16771.

* [Babylon]: Add timelock, unbonding, slashing condition scripts

* Test taproot merkle root generator

* [BTC]: Add Babylon Staking output

* [BTC]: Add Babylon Staking OP_RETURN

* [BTC]: Minor changes

* [BTC]: Add Babylon Staking UTXO

* [BTC]: Add Babylon Unbonding UTXO

* [BTC]: Refactor by adding `BabylonStaking.proto`

* [BTC]: Add Babylon Staking transaction test

* [BTC]: Add spending of Staking output via Unbonding path

* [BTC]: Withdraw Unbonding transaction via timelock path

* [BTC]: Withdraw Staking transaction via timelock path

* [BTC]: Fix tests, minor improves

* [BTC]: Fix TODOs

* [CI] Trigger CI

* [BTC]: Fix Rust sample

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
satoshiotomakan added a commit that referenced this pull request Jan 17, 2025
* Kotlin multiplatform leaking memory (#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (#4092)

* [Chore]: Fix Android bindings (#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (#4097)

* Update Callisto explorer (#4131)

* Revert "[TON]: Add support for TON 24-words mnemonic (#3998)" (#4148)

This reverts commit 0b16771.

* Fix JVM synchronization issue (#4218)

* Fix Java JVM leak

* clean

* apply to jni

* [Misc]: Upgrade Rust toolchain to `nightly-2025-01-16`

* [Misc]: Fix Clippy warnings

---------

Co-authored-by: Satoshi Otomakan <[email protected]>

* [Misc]: Fix Clippy warnings

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
zkrypt-crossbar pushed a commit to Cramiumlabs/wallet-core that referenced this pull request Jun 15, 2025
* Kotlin multiplatform leaking memory (trustwallet#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (trustwallet#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (trustwallet#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (trustwallet#4092)

* [Chore]: Fix Android bindings (trustwallet#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (trustwallet#4097)

* Update Callisto explorer (trustwallet#4131)

* Revert "[TON]: Add support for TON 24-words mnemonic (trustwallet#3998)" (trustwallet#4148)

This reverts commit 0b16771.

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
zkrypt-crossbar pushed a commit to Cramiumlabs/wallet-core that referenced this pull request Jun 15, 2025
* Kotlin multiplatform leaking memory (trustwallet#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (trustwallet#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (trustwallet#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (trustwallet#4092)

* [Chore]: Fix Android bindings (trustwallet#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (trustwallet#4097)

* Update Callisto explorer (trustwallet#4131)

* [Babylon]: Add Babylon Staking Inputs and Outputs to BitcoinV2.proto

* [Babylon]: Add `covenant_committee_signatures`

* Revert "[TON]: Add support for TON 24-words mnemonic (trustwallet#3998)" (trustwallet#4148)

This reverts commit 0b16771.

* [Babylon]: Add timelock, unbonding, slashing condition scripts

* Test taproot merkle root generator

* [BTC]: Add Babylon Staking output

* [BTC]: Add Babylon Staking OP_RETURN

* [BTC]: Minor changes

* [BTC]: Add Babylon Staking UTXO

* [BTC]: Add Babylon Unbonding UTXO

* [BTC]: Refactor by adding `BabylonStaking.proto`

* [BTC]: Add Babylon Staking transaction test

* [BTC]: Add spending of Staking output via Unbonding path

* [BTC]: Withdraw Unbonding transaction via timelock path

* [BTC]: Withdraw Staking transaction via timelock path

* [BTC]: Fix tests, minor improves

* [BTC]: Fix TODOs

* [CI] Trigger CI

* [BTC]: Fix Rust sample

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
zkrypt-crossbar pushed a commit to Cramiumlabs/wallet-core that referenced this pull request Jun 15, 2025
* Kotlin multiplatform leaking memory (trustwallet#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (trustwallet#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (trustwallet#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (trustwallet#4092)

* [Chore]: Fix Android bindings (trustwallet#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (trustwallet#4097)

* Update Callisto explorer (trustwallet#4131)

* Revert "[TON]: Add support for TON 24-words mnemonic (trustwallet#3998)" (trustwallet#4148)

This reverts commit 0b16771.

* Fix JVM synchronization issue (trustwallet#4218)

* Fix Java JVM leak

* clean

* apply to jni

* [Misc]: Upgrade Rust toolchain to `nightly-2025-01-16`

* [Misc]: Fix Clippy warnings

---------

Co-authored-by: Satoshi Otomakan <[email protected]>

* [Misc]: Fix Clippy warnings

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
zkrypt-crossbar pushed a commit to Cramiumlabs/wallet-core that referenced this pull request Jun 21, 2025
* Kotlin multiplatform leaking memory (trustwallet#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (trustwallet#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (trustwallet#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (trustwallet#4092)

* [Chore]: Fix Android bindings (trustwallet#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (trustwallet#4097)

* Update Callisto explorer (trustwallet#4131)

* Revert "[TON]: Add support for TON 24-words mnemonic (trustwallet#3998)" (trustwallet#4148)

This reverts commit 0b16771.

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
zkrypt-crossbar pushed a commit to Cramiumlabs/wallet-core that referenced this pull request Jun 21, 2025
* Kotlin multiplatform leaking memory (trustwallet#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (trustwallet#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (trustwallet#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (trustwallet#4092)

* [Chore]: Fix Android bindings (trustwallet#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (trustwallet#4097)

* Update Callisto explorer (trustwallet#4131)

* [Babylon]: Add Babylon Staking Inputs and Outputs to BitcoinV2.proto

* [Babylon]: Add `covenant_committee_signatures`

* Revert "[TON]: Add support for TON 24-words mnemonic (trustwallet#3998)" (trustwallet#4148)

This reverts commit 0b16771.

* [Babylon]: Add timelock, unbonding, slashing condition scripts

* Test taproot merkle root generator

* [BTC]: Add Babylon Staking output

* [BTC]: Add Babylon Staking OP_RETURN

* [BTC]: Minor changes

* [BTC]: Add Babylon Staking UTXO

* [BTC]: Add Babylon Unbonding UTXO

* [BTC]: Refactor by adding `BabylonStaking.proto`

* [BTC]: Add Babylon Staking transaction test

* [BTC]: Add spending of Staking output via Unbonding path

* [BTC]: Withdraw Unbonding transaction via timelock path

* [BTC]: Withdraw Staking transaction via timelock path

* [BTC]: Fix tests, minor improves

* [BTC]: Fix TODOs

* [CI] Trigger CI

* [BTC]: Fix Rust sample

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
zkrypt-crossbar pushed a commit to Cramiumlabs/wallet-core that referenced this pull request Jun 21, 2025
* Kotlin multiplatform leaking memory (trustwallet#4037)

* Add deinit for KMP iOS and JVM targets

* Add deinit for JS target

* Add deinit for JS target

* Fix JVM native name

* Reuse one thread on JVM

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [KMP] Fix issue: memory leak found in Base58.decode in iOS (trustwallet#4031)

* Fix kmp issue: memory leak found in Base58.decode in iOS

* Remove unused functions

* Fix failed test cases

* Revert "Fix failed test cases"

This reverts commit 57eee39.

* Revert val -> value argument name refactoring

* Output better indentation

* Revert changes in TWEthereumAbiFunction.h

* Fix inconsistent naming

---------

Co-authored-by: satoshiotomakan <[email protected]>

* [TON]: Add support for TON 24-words mnemonic (trustwallet#3998)

* feat(ton): Add support for TON 24-words mnemonic in Rust

* feat(ton): Add tw_ton_wallet FFIs

* feat(ton): Add TWTONWallet FFI in C++

* feat(ton): Add tonMnemonic StoredKey type

* feat(ton): Add StoredKey TON tests

* feat(ton): Add TWStoredKey TON tests

* feat(ton): Add TONWallet support in Swift

* TODO add iOS tests

* feat(ton): Add `KeyStore` iOS tests

* feat(ton): Add TONWallet support in JavaScript

* Add `KeyStore` TypeScript tests

* feat(ton): Remove `TonMnemonic` structure, replace with a `validate_mnemonic_words` function

* [CI] Trigger CI

* feat(ton): Fix rustfmt

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ build

* feat(ton): Fix C++ address analyzer

* feat(ton): Fix C++ tests

* feat(ton): Add Android tests

* feat(ton): Bump `actions/upload-artifact` to v4

* Bump `dawidd6/action-download-artifact` to v6

* feat(eth): Fix PR comments

* Fix Java JVM leak (trustwallet#4092)

* [Chore]: Fix Android bindings (trustwallet#4095)

* [Chore]: Add GenericPhantomReference.java

* [Chore]: Fix unnecessary null assertion in WalletCoreLibLoader.kt

* Fix memory lead found in public key in kmp binding (trustwallet#4097)

* Update Callisto explorer (trustwallet#4131)

* Revert "[TON]: Add support for TON 24-words mnemonic (trustwallet#3998)" (trustwallet#4148)

This reverts commit 0b16771.

* Fix JVM synchronization issue (trustwallet#4218)

* Fix Java JVM leak

* clean

* apply to jni

* [Misc]: Upgrade Rust toolchain to `nightly-2025-01-16`

* [Misc]: Fix Clippy warnings

---------

Co-authored-by: Satoshi Otomakan <[email protected]>

* [Misc]: Fix Clippy warnings

---------

Co-authored-by: Viacheslav Kulish <[email protected]>
Co-authored-by: 10gic <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants