Releases: trustwallet/wallet-core
4.0.6
Breaking changes
Cosmos StakeAuthorization
message results in a different but valid signature and transaction payload.
What's Changed
- [Actions/CI]: Switch to macos-latest-xlarge CI runner for Android, iOS pipelines by @satoshiotomakan in #3474
- [Rust/Cosmos]: Move Cosmos blockchain into Rust by @satoshiotomakan in #3498
Full Changelog: 4.0.5...4.0.6
4.0.5
Breaking changes
Aptos blind sign is only through payload json now, using any encoded with an hex value is not supported anymore.
What's Changed
- [Swap]: Fix BSC swap by @satoshiotomakan in #3548
- [Rust/Aptos]: Move Aptos blockchain into Rust by @Milerius in #3497
Full Changelog: 4.0.4...4.0.5
3.3.3
4.0.4
What's Changed
- [Celestia]: Add support for Celestia mainnet by @satoshiotomakan in #3528
Full Changelog: 4.0.3...4.0.4
4.0.3
What's Changed
- [Celestia]: Add celestia like cosmos by @weixuefeng in #3510
- [Scroll]: Update scroll chainId by @zzq0826 in #3514
- [CI]: Fix linux-ci by @Milerius in #3519
- [Sec]: Zeroize mnemonic by @satoshiotomakan in #3520
- [Eth]: Fix EIP712 message hashing when fixed byte array is 0x0 by @satoshiotomakan in #3522
Full Changelog: 4.0.1...4.0.3
4.0.1
What's Changed
- [Scroll] Update rpc and block explorer for mainnet by @hewigovens in #3490
- [Crypto]: Fix salsa20_8(B) when compiled with -Os optimisation level by @satoshiotomakan in #3491
Full Changelog: 4.0.0...4.0.1
4.0.0
What's Changed
4.0.0
release introduces several sweeping changes to the Wallet Core, primarily centering on the shift from C++ to Rust for improved performance, security, and maintenance:
- Elliptic Curves in Rust: We've successfully migrated most of the currently supported elliptic curves to Rust. Implementation details are as follows:
secp256k1
- using RustCrypto: k256ed25519
,ed25519-blake2b
,ed25519-cardano-extended
- using curve25519-daleknistp256p1
- using RustCrypto/p256
- Wallet Core Redesign: Exploiting Rust's robust type system, the Wallet Core design has been massively enhanced to promote easier implementation of features and long-term code maintainability.
- Ethereum Transition: We've shifted the main Ethereum functionality from C++ to Rust. The implementation encompasses Ethereum's basic operations, RLP and ABI interfaces, as well as EIP712 message signing. As it stands now, the Ethereum transition is fully executed.
- Bitcoin Transition: Progress is underway to move Bitcoin functionality from C++ to Rust. So far, this involves Bitcoin's basic operations and interface redesign. Pending tasks include:
- Establishing a bridge between the legacy and new Bitcoin protobuf interfaces for seamless transition.
- Shifting all tests to Rust.
- Implementing other Bitcoin-related functionality in Rust.
Progress
Breaking changes
VeChain
andTheta
no longer support JSON signing. Initially, the chains inheritedEthereum::Entry
, butEntry::signJSON
was not overridden with the chain specific implementation.UserOperation
signed transaction (JSON representation) now has thesender: Address
field normalized with EIP55 checksum.- Removed
Ethereum::RLP::decode
functionality as it's not used in C++. - Ethereum and all EVM-compatible chains no longer support
TWTransactionCompilerBuildInput
.
Deprecated
TWEthereumAbiFunction
and all methods.TWEthereumAbiEncode
. Consider usingTWEthereumAbiEncodeFunction
through Protobuf interface instead.TWEthereumAbiDecodeOutput
. Consider usingTWEthereumAbiDecodeParams
through Protobuf interface instead.TWEthereumAbiDecodeCall
. Consider usingTWEthereumAbiDecodeContractCall
through Protobuf interface instead.TWEthereumAbiValueDecodeValue
,TWEthereumAbiValueDecodeArray
and allTWEthereumAbiValueDecode*
. Consider usingTWEthereumAbiDecodeValue
through Protobuf interface instead.
3.3.2
What's Changed
- fix typos by @i-fix-typos in #3462
- [Security/Legacy]: Fix security findings by @satoshiotomakan in #3477
- [Greenfield]: Update to mainnet by @satoshiotomakan in #3484
New Contributors
- @i-fix-typos made their first contribution in #3462
Full Changelog: 3.2.21...3.3.2
3.3.1-dev
What's Changed
This dev
release introduces several sweeping changes to the Wallet Core, primarily centering on the shift from C++ to Rust for improved performance, security, and maintenance:
- Elliptic Curves in Rust: We've successfully migrated most of the currently supported elliptic curves to Rust. Implementation details are as follows:
secp256k1
- using RustCrypto: k256ed25519
,ed25519-blake2b
,ed25519-cardano-extended
- using curve25519-daleknistp256p1
- using RustCrypto/p256
- Wallet Core Redesign: Exploiting Rust's robust type system, the Wallet Core design has been massively enhanced to promote easier implementation of features and long-term code maintainability.
- Ethereum Transition: We've shifted the main Ethereum functionality from C++ to Rust. The implementation encompasses Ethereum's basic operations, RLP and ABI interfaces, as well as EIP712 message signing. As it stands now, the Ethereum transition is fully executed.
- Bitcoin Transition: Progress is underway to move Bitcoin functionality from C++ to Rust. So far, this involves Bitcoin's basic operations and interface redesign. Pending tasks include:
- Establishing a bridge between the legacy and new Bitcoin protobuf interfaces for seamless transition.
- Shifting all tests to Rust.
- Implementing other Bitcoin-related functionality in Rust.
Progress
Breaking changes
VeChain
andTheta
no longer support JSON signing. Initially, the chains inheritedEthereum::Entry
, butEntry::signJSON
was not overridden with the chain specific implementation.UserOperation
signed transaction (JSON representation) now has thesender: Address
field normalized with EIP55 checksum.- Removed
Ethereum::RLP::decode
functionality as it's not used in C++. - Ethereum and all EVM-compatible chains no longer support
TWTransactionCompilerBuildInput
.
Deprecated
TWEthereumAbiFunction
and all methods.TWEthereumAbiEncode
. Consider usingTWEthereumAbiEncodeFunction
through Protobuf interface instead.TWEthereumAbiDecodeOutput
. Consider usingTWEthereumAbiDecodeParams
through Protobuf interface instead.TWEthereumAbiDecodeCall
. Consider usingTWEthereumAbiDecodeContractCall
through Protobuf interface instead.TWEthereumAbiValueDecodeValue
,TWEthereumAbiValueDecodeArray
and allTWEthereumAbiValueDecode*
. Consider usingTWEthereumAbiDecodeValue
through Protobuf interface instead.
3.3.0-dev
What's Changed
This dev
release introduces several sweeping changes to the Wallet Core, primarily centering on the shift from C++ to Rust for improved performance, security, and maintenance:
- Elliptic Curves in Rust: We've successfully migrated most of the currently supported elliptic curves to Rust. Implementation details are as follows:
secp256k1
- using RustCrypto: k256ed25519
,ed25519-blake2b
,ed25519-cardano-extended
- using curve25519-daleknistp256p1
- using RustCrypto/p256
- Wallet Core Redesign: Exploiting Rust's robust type system, the Wallet Core design has been massively enhanced to promote easier implementation of features and long-term code maintainability.
- Ethereum Transition: We've shifted the main Ethereum functionality from C++ to Rust. The implementation encompasses Ethereum's basic operations, RLP and ABI interfaces, as well as EIP712 message signing. As it stands now, the Ethereum transition is fully executed.
- Bitcoin Transition: Progress is underway to move Bitcoin functionality from C++ to Rust. So far, this involves Bitcoin's basic operations and interface redesign. Pending tasks include:
- Establishing a bridge between the legacy and new Bitcoin protobuf interfaces for seamless transition.
- Shifting all tests to Rust.
- Implementing other Bitcoin-related functionality in Rust.
Progress
Breaking changes
VeChain
andTheta
no longer support JSON signing. Initially, the chains inheritedEthereum::Entry
, butEntry::signJSON
was not overridden with the chain specific implementation.UserOperation
signed transaction (JSON representation) now has thesender: Address
field normalized with EIP55 checksum.- Removed
Ethereum::RLP::decode
functionality as it's not used in C++. - Ethereum and all EVM-compatible chains no longer support
TWTransactionCompilerBuildInput
.
Deprecated
TWEthereumAbiFunction
and all methods.TWEthereumAbiEncode
. Consider usingTWEthereumAbiEncodeFunction
through Protobuf interface instead.TWEthereumAbiDecodeOutput
. Consider usingTWEthereumAbiDecodeParams
through Protobuf interface instead.TWEthereumAbiDecodeCall
. Consider usingTWEthereumAbiDecodeContractCall
through Protobuf interface instead.TWEthereumAbiValueDecodeValue
,TWEthereumAbiValueDecodeArray
and allTWEthereumAbiValueDecode*
. Consider usingTWEthereumAbiDecodeValue
through Protobuf interface instead.