Releases: GLEECBTC/komodo-defi-framework
Komodo DeFi Framework v2.6.0-beta
SIA Integration, Solana Preview, and Enhanced UTXO Support
This release introduces SIA as a new supported blockchain protocol, expanding the Komodo DeFi Framework's multi-chain capabilities. It also delivers a preview of Solana integration, significant enhancements to UTXO coin handling including a new consolidation RPC and WalletConnect support, expirable maker orders for better order management, and numerous stability improvements across swap protocols and event streaming.
Release Notes
Features:
-
SIA Integration
- Complete SIA coin integration was implemented by @Alrighttt, adding SIA as a new protocol with activation in both Iguana and HD modes using the
m/44'/1991'/0'/0'/0'derivation path. Wallet operations, transaction history v1, and legacy swaps are supported. - Relevant PR: #2540
- Complete SIA coin integration was implemented by @Alrighttt, adding SIA as a new protocol with activation in both Iguana and HD modes using the
-
WalletConnect for UTXO
- BTC/UTXO coin activation via WalletConnect was implemented by @mariocynicys, aligning UTXO with existing EVM/Cosmos activations.
- Relevant PR: #2499
-
Expirable Maker Orders
- A new
timeout_in_minutesfield was added by @onur-ozkan tosetprice, allowing maker orders to automatically expire after a configurable duration while maintaining backwards compatibility. - Relevant PR: #2516
- A new
-
UTXO Consolidation
- A
consolidate_utxosRPC was introduced by @mariocynicys to merge small outputs and reduce fee overhead. - Relevant PR: #2587
- A
Work in Progress (WIP) Features
Solana Protocol:
- Initial wallet-only Solana implementation was added by @onur-ozkan with WASM support. Activation, token handling, and RPC wiring are available; swaps and transaction history are not yet supported.
- Relevant PRs: #2586, #2598, #2622, #2679
Liquidity Routing:
- A
best_swapRPC was added by @dimxy that performs ask-side liquidity routing to find the optimal route for a desired outcome amount. - Relevant PR: #2362
Enhancements
Swaps and Order Matching:
- Maker Banning: Makers are now banned after failed swap negotiation attempts to prevent repeated retries. #2688 by @dimxy
- Swap v2 Improvements: Offline validation was hardened by reusing offline maker/taker checks, and visibility gates with one-shot rebroadcast fallback were added. #2646, #2618 by @shamardy
- Orderbook Performance: The orderbook trie was split from the orderbook to reduce lock contention during propagation. #2661 by @shamardy
UTXO:
- Fixed-Fee Option: A fixed-fee option was added for DINGO-like chains. #2454 by @dimxy
- Chain Variant Config: UTXO chain variants were made explicit via
chain_variantconfig, replacing hardcoded ticker handling. #2692 by @shamardy
EVM / ETH:
- Gas Fee Policy: Gas fee policy handling was refined (adjustment params, renamed RPC) for swap/signing flows. #2533 by @dimxy
Tendermint / Cosmos:
- Trade Fee: The
get_trade_feeRPC was implemented for Tendermint-based assets. #2663 by @onur-ozkan
Event Streaming:
- OS Signals: OS shutdown signals are now broadcast via the streaming manager. #2667 by @onur-ozkan
CLI:
- Clap Migration: The CLI was migrated to
clap, standardizing-h/--helpand version output. #2510 by @BigFish2086
Bug Fixes:
Click to expand
-
Swaps:
- Legacy swap payment broadcast intervals were reduced for faster propagation on mobile devices. #2680 by @dimxy
- Order subscriptions on kickstart were fixed and GC of own pubkeys was skipped. #2597 by @shamardy
- Dexfee balance checks for TPU swaps were corrected to avoid false failures. #2600 by @dimxy
-
Wallet and Keys:
-
Hardware Wallet:
-
UTXO / Electrum:
- Electrum block-count queries were switched to sequential mode to avoid server bans on endpoints with strict per-IP limits. #2666 by @mariocynicys
- Minimum trading volume for fixed-fee UTXO coins was revised to account for HTLC spend fees. #2564 by @shamardy
- ScriptSig signature parsing was relaxed to stop rejecting valid inputs. #2591 by @dimxy
- Block-header deserialization for AuxPoW/KAWPOW variants, PIVX Sapling, Namecoin, XEC, Cheetahcoin, and others was overhauled. #2583, #2563, #2572 by @shamardy
-
EVM / ETH:
-
WalletConnect:
- The
pairing_topicis now returned innew_connectionresponses. #2538 by @mariocynicys
- The
-
RPCs:
get_enabled_coins,task::init_trezor::init, andwc_get_sessionsnow accept emptyparamsfields. #2612 by @onur-ozkan
-
Event Streaming:
- Handling of SIGINT/SIGTERM/SIGQUIT when the signal handler runs was improved. #2669 by @onur-ozkan
- Client-id parsing was fixed and query parameters now pass through to event-stream endpoints. #2677, #2678 by @onur-ozkan and @mariocynicys
- iOS certificate validation for Tendermint balance streaming was fixed. #2674 by @smk762
Other Changes:
Click to expand
-
Toolchain:
- The build was switched to use the latest available stable Rust compiler. #2444, #2528, #2557 by @onur-ozkan and @borngraced
-
Dependencies:
- Broad security/dependency updates were applied. #2562 by @onur-ozkan
-
Infrastructure / CI:
- CI container base image was updated to Debian 11. #2534 by @onur-ozkan
- Node.js 20 was added to CI container. #2536 by @smk762
- A git blame ignore list was added. #2649 by @mariocynicys
- WASM playground preview deployment on PRs was added. #2607 by @gcharang
- Port 7000 for MYCOIN in docker tests was avoided. #2681 by @mariocynicys
-
Core Maintenance:
static mutglobals were removed in favor of thread-safe primitives. #2590 by @onur-ozkan- A
map_mm_errhelper was added for ...
v2.5.2-bebdc9a
dev release for internal CI / tests
Komodo DeFi Framework v2.5.2-beta
Privacy Coins Stats and macOS Universal2 Support
This hotfix release enhances privacy coins support by enabling swap status broadcasting for privacy coins while maintaining user anonymity. It also addresses critical stability issues by resolving a segfault issue affecting Linux users, fixing WASM balance calculations for ARRR, and introducing macOS Universal2 build support for seamless operation on both Intel and Apple Silicon Macs.
Release Notes
-
Privacy Coin Status Broadcasting:
- Swap status broadcasting was enabled for privacy coins by @mariocynicys with the persistent pubkey hidden (set to zeros) to maintain user privacy. #2648
-
Stats Database Fix:
- An inconsistency in stats DB was fixed by @mariocynicys to store persistent pubkeys for both maker and taker instead of incorrectly storing htlc pubkeys in some cases. #2648
-
ARRR WASM Balance Fix:
-
Linux Stability Fix:
-
macOS Universal2 Build:
- A CI job was added by @dimxy to build macOS Universal2 artifacts for KDF. This combines
x86_64-apple-darwinandaarch64-apple-darwinbinaries vialipoto produce a single binary that runs natively on both Intel and Apple Silicon. The universal binary is uploaded askdf_<commit>-mac-universal.zip. #2628
- A CI job was added by @dimxy to build macOS Universal2 artifacts for KDF. This combines
-
Dependency Cleanup:
-
CI Containers Update:
- CI container base image was bumped to
debian:bullseye-slimby @onur-ozkan #2534 #2641
- CI container base image was bumped to
Full Changelog: v2.5.1-beta...v2.5.2-beta
Komodo DeFi Framework v2.5.1-beta
Offline Private Key Export and First AI Agent Contribution
This hotfix release addresses critical wallet management limitations by introducing essential functionality for offline private key export and wallet recovery operations. This release also marks a historic milestone as the first direct contribution from an AI agent to the Komodo DeFi Framework.
Release Notes
- Offline Private Key Export:
- A comprehensive
get_private_keysRPC method was implemented by Devin AI to provide robust offline private key, public key, and address export capabilities for any configured coin without requiring activation. This critical functionality supports both HD and Iguana wallet modes with protocol-specific logic for UTXO, EVM, Tendermint, and ZHTLC (shielded) coins, enabling essential wallet recovery operations. #2542
- A comprehensive
New Contributors
Full Changelog: v2.5.0-beta...v2.5.1-beta
🛡 VirusTotal analysis
Komodo DeFi Framework v2.5.0-beta
WalletConnect Integration and Major Wallet Enhancements
This release introduces major connectivity and wallet management upgrades, highlighted by the integration of WalletConnect v2 for EVM and Cosmos chains, enabling secure transaction signing with external wallets. It also delivers numerous enhancements to wallet security, HD wallet functionality, the P2P network, and the trading protocol, alongside various performance optimizations and bug fixes across the framework.
Release Notes
Features:
-
WalletConnect Integration
- Comprehensive support for WalletConnect v2 was implemented by @borngraced, enabling secure connection and transaction signing for EVM and Cosmos coins using external mobile and web wallets.
Click to expand details
- Secure External Signing: Users can activate EVM and Cosmos coins without exposing private keys to KDF, as all signing operations are delegated to the connected WalletConnect-compatible wallet.
- New RPCs for Session Management:
wc_new_connection: Establishes a new WalletConnect session.wc_get_sessions: Lists all active sessions.wc_get_session: Retrieves details for a specific session.wc_ping_session: Checks the status of a session.wc_delete_session: Disconnects and removes a session.
- Note: NFT and UTXO coins are not yet supported via WalletConnect.
Enhancements
Wallet Improvements:
- Wallet Deletion: A new
delete_walletRPC was introduced by @shamardy to securely remove wallets after password confirmation. The currently active wallet cannot be deleted. #2497 - HD Wallet Message Signing: Support for signing messages from any derived address in an HD wallet was implemented by @borngraced. #2432, #2474
- Z-Coin Balance Tracking: Unconfirmed z-coin notes are now correctly tracked to provide an accurate spendable balance and prevent transaction failures by @borngraced. #2331
Peer-to-Peer Network:
- Seed Node Configuration: Hardcoded seed node IP addresses were removed by @onur-ozkan to improve network maintainability and decentralization. KDF now requires explicit configuration via the
seednodesfield. #2439 - Expirable Pubkey Bans: The ability to temporarily ban misbehaving pubkeys for a configurable duration was introduced by @onur-ozkan. #2455
Trading Protocol & Orders:
- Minimum Trading Volume: The hardcoded minimum trading volume for BTC (
0.00777) was removed by @onur-ozkan. This change standardizes the validation logic, applying a more consistent minimum trading volume of0.0001across all UTXO coins and significantly lowering the entry barrier for BTC trades. #2483
RPC and Protocol Improvements:
- Simplified RPC Payloads: The
mmrpcfield is no longer required for calling most modern (v2) RPC methods. The server, refactored by @onur-ozkan, now uses a unified handler that automatically checks both legacy and modern interfaces, simplifying client-side logic. Themmrpcfield is only required to explicitly call a v2 method when a legacy (v1) method shares the same name. #2450 - IBC Channel Handling: The IBC channel handler was refactored by @onur-ozkan to use embedded channel data from the
coinsfile instead of relying on external chain-registry parsing. This improves reliability and reduces external dependencies. #2298
Bug Fixes:
Click to expand
-
Hardware Wallet:
- A race condition during the initialization of Trezor-based hardware wallets was fixed by @mariocynicys. The fix ensures the correct account is loaded before fetching the enabled address, preventing startup errors. #2504
-
UTXO:
- The validation logic for P2PK (Pay-to-Public-Key) inputs was corrected by @mariocynicys. The fix ensures that the signature in the
scriptSigis correctly verified against the expected public key, as the pubkey itself is not present in the script. #2408 - An issue with UTXO transaction fee calculation was resolved by @dimxy. The fix restructures the transaction building algorithm to properly account for the change output and correctly calculate the minimum relay fee based on transaction size, resulting in more accurate fee estimation. #2316
- The validation logic for P2PK (Pay-to-Public-Key) inputs was corrected by @mariocynicys. The fix ensures that the signature in the
-
EVM / ERC20:
- A bug in event streaming was fixed by @mariocynicys where ETH addresses were being truncated during serialization. This caused malformed data in Server-Sent Events (SSE). The fix ensures addresses are always serialized in their full format. #2440
- An issue with ERC20 token identification was resolved by @laruh. The lookup logic now uses the platform ticker alongside the contract address, preventing conflicts between tokens with the same address on different EVM chains. #2445
-
Peer-to-Peer Network:
- The IP resolution logic for seed nodes was improved by @onur-ozkan to enhance connection reliability, failing only if no IPv4 address can be found. #2487
Other Changes:
Click to expand
-
Build and Dependency Management:
- Static CRT linking for MSVC builds was enabled by @shamardy to improve the portability of Windows binaries. #2464
- Dependencies were reorganized using the
workspace.dependenciesfeature for centralized and consistent management across the project by @borngraced. #2449 - The
base58crate was replaced withbs58throughout the codebase for consistency and security by @shamardy. #2427 - The
timed-mapdependency was updated to version1.4.1for improved performance and stability by @onur-ozkan. #2413, #2481
-
Documentation:
-
Refactoring and Internal Improvements:
- A unit test was added by @dimxy to validate DEX fee handling for ZCoin. #2460
- The event-streaming system was refactored by @BigFish2086 to use strongly-typed streamer IDs, improving the internal type safety and robustness of the event broadcasting mechanism. #2441
- The logic for generating internal Tendermint transaction IDs was refactored into a common helper function by @onur-ozkan, improving code organization. #2438
- The migration from
dbdirtoaddress_dirwas continued by @mariocynicys as part of an ongoing database architecture improvement. #2398
NB - Backwards compatibility breaking changes
⚡ API and Configuration Changes
- WalletConnect/EVM Coin Activation: The
priv_key_policyfield for EVM coin activation is no longer a string. It now requires an object with atypefield (e.g.,"priv_key_policy": { "type": "ContextPrivKey" }). WalletConnect activation uses{ "type": "WalletConnect", ... }. #2223 - EVM Coin Configuration: EVM coin configurations in
coinsfiles must now include thechain_idinside theprotocol_dataobject. The legacy top-levelchain_idfield is deprecated. #2425 - Seednode Configuration: All hardcoded seed nodes have been removed. KDF will no longer connect to the mainnet (netid 8762) by default. Users must provide a list of seed nodes in the
seednodesconfiguration field to connect to the P2P network. #2439 - IBC/Cosmos: The
ibc_chainsandibc_transfer_channelsRPC endpoints have been removed. Theibc_source_channelfield now requires numeric values only (e.g.,12instead ofchannel-12) [#2298](https://github.com/KomodoPlatf...
Komodo DeFi Framework v2.4.0-beta
Cosmos Staking, Improved Event Streaming, and Network Time Synchronization
This release introduces significant advancements to the Komodo DeFi Framework, including a comprehensive Cosmos staking implementation, a revamped event streaming system, and network time synchronization to prevent swap failures. The new "experimental" namespace provides a structured approach for features still under development. Other highlights include enhanced wallet management and numerous security and performance upgrades across the codebase.
Release Notes
Features:
-
Experimental Namespace
- A new namespace for APIs that may undergo breaking changes in future releases was introduced by @onur-ozkan. This provides a structured approach for innovative features still in development.
- Relevant PR: #2372
-
Event Streaming
- Event-streaming system was refactored by @mariocynicys to support dynamic, API-driven subscription management.
- Additional event types were added, including transaction history events, swap events, and more.
- Relevant PR: #2172
-
Cosmos Staking
- A comprehensive set of staking operations for Cosmos chains was implemented by @onur-ozkan:
Click to expand details
- Delegation: Users can now delegate tokens to validators #2322
- Undelegation: Support for undelegating tokens from validators #2330
- Claiming Rewards: Users can claim delegation rewards #2351, #2373
- Validator Queries: Added RPCs for accessing validator data #2310
- Delegation Status: Introduced methods to check delegation status and ongoing undelegations #2377
- All staking RPCs are located under the
experimental::stakingnamespace #2372
Enhancements
Peer-to-Peer Network:
- Time Synchronization: Network time synchronization validation was implemented by @onur-ozkan to prevent swap failures due to node clock drift. #2255, #2302
- Network Reliability: Static seed node IP addresses were removed for improved stability by @onur-ozkan. #2407
- Error Handling: Improved error handling in
best_ordersRPC when no peers respond to orderbook requests by @mariocynicys. #2318
Trading Protocol Improvements:
- Zero DEX Fees: Implemented zero DEX fees for v2 swaps (TPU) involving KMD trading pairs by @borngraced. #2323
- Protocol Versioning: Added swap protocol versioning with fallback support to legacy swaps by @laruh. #2324
- Pre-burn Address: Added pre-burn address outputs for collecting 25% of taker DEX fees for UTXO swaps (both v1 and v2 protocols), and Cosmos and ARRR swaps (legacy protocol only) by @dimxy. #2112
- Swap Robustness: Improved swap robustness by checking for existing maker/taker payments before timeout validation by @shamardy. #2283
- Success Indicator: Added
is_successfield to legacy swap status response, making success state more explicit by @Alrighttt. #2371
Wallet Improvements:
- Password Management: Added an RPC to change mnemonic passwords by @borngraced. #2317
- Mnemonic Support: Enabled storage and usage of non-BIP39 mnemonics by @borngraced. #2312
- Wallet Security:
RPC Enhancements:
- Dynamic Port Allocation: Implemented dynamic RPC port allocation (rpcport: 0) allowing automatic selection of available ports by @Alrighttt. #2342
Bug Fixes:
Click to expand
-
Trading Protocol:
- Fixed memory leak issue in legacy swaps tracking (running_swap) by @mariocynicys. #2301
-
Tendermint/Cosmos:
- Improved transaction query reliability using standardized TxSearchRequest by @onur-ozkan. #2384
- Added token transaction history support by @onur-ozkan. #2404
- Fixed unhandled IBC and HTLC events by @onur-ozkan. #2385
-
Hardware Wallet:
-
NFT Integration:
-
UTXO Improvements:
- Added support for parsing taproot output address types from
blockchain.transaction.getverbose transactions by @mariocynicys. #2423
- Added support for parsing taproot output address types from
-
FIRO Integration:
- Added support for FIRO Spark verbose transaction details by @levoncrypto. #2396
-
Simple Maker Bot:
Security Fixes:
Click to expand
- Fixed potential panics in hash processing by enforcing fixed-size arrays and proper length validation by @borngraced. #2279
- Improved security of key derivation by validating key material length by @DeckerSU. #2356
- Ensured consistent Argon2 parameters for wallet encryption/decryption by @shamardy. #2360
- Fixed path traversal vulnerability in wallet file handling by @shamardy. #2400
Other Changes:
Click to expand
-
Code and Dependencies:
- Added default implementations for protocol-specific SwapOps functions by @Alrighttt. #2354
- Updated dependencies:
- Replaced deprecated instant dependency by @onur-ozkan. #2391
- Completed migration to timed-map crate by @shamardy. #2247, #2306, #2308
- Bumped libp2p from k-0.52.11 to k-0.52.12 to fix iOS platform build issues by @onur-ozkan. #2326
-
Qtum Delegation:
- Standardized parameter naming by using
validator_addressfor QTUM delegation similar to Cosmos by @onur-ozkan. #2419
- Standardized parameter naming by using
NB - Backwards compatibility breaking changes
- Event streaming model changed from static configuration to API-driven subscription #2172
New Contributors
- @levoncrypto made their first contribution in #2396
Full Changelog: v2.3.0-beta...v2.4.0-beta
Checksum & VirusTotal Analysis:
| Link | SHA256 |
|---|---|
| mm2-c800ea03f-Darwin-Release.zip | `70075f752d75bcf00a8a079c9cd9de6742f16c05b9569e9b6abde5ca913db1... |
Komodo DeFi Framework v2.3.0-beta
Release Notes
- feat(LRAPI): add 1inch classic swap rpc: Initial code to connect to 1inch Liquidity Routing API (LRAPI) provider and two new RPCs to use 1inch classic swap API. It also adds 'approve' and 'allowance' RPCs (for ERC20 tokens)
- improvement(error-handling): main files: Makes KDF to check main files (config/coins/etc..) before reading them to prevent potential panics.
- fix(rpc): remove character check blocking password input: Removes check for <, >, & characters in RPC request bodies that was incorrectly blocking valid password characters in get_mnemonic RPC call. These special characters should be allowed in passwords.
- fix(mm2_bitcoin): don't rely on core Makes no sense to rely on core on KDF.
- chore(ctx): replace gstuff constructible with oncelock Replaced Constructible from the gstuff crate with once_cell::sync::OnceCell for managing lazy-initialized values in mm_ctx for better performance and stronger thread safety.
- chore(adex-cli): use "Komodo DeFi Framework" name in adex_cli self-explanatory
- chore(libp2p): k-0.52.11 bump Fixes a security (memory leak) issue.
Full Changelog: v2.2.0-beta...v2.3.0-beta
Checksum & VirusTotal Analysis:
| Link | SHA256 |
|---|---|
| mm2-8206c6ef6-Darwin-Release.zip | 215f40d4ce9d67daebf19bbd6775e0f78b739792efa3dc21f99575000f7a59c2 |
| mm2-8206c6ef6-Linux-Release.zip | 1163efd83af247575ed55e11f3128ce5a49a13601712bdb708581db968d28f7a |
| mm2-8206c6ef6-Win64.zip | b2f3dd59f40e3fd8ea46e42350a17ced72b303b8e0203396cf5d13fb08ca76e9 |
| mm2-8206c6ef6-android-aarch64-CI.zip | 4fdff1027260f7fe5740802146cf125a64dbf11e9a2af8dfe4b6555f1a7cb7c3 |
| mm2-8206c6ef6-android-armv7-CI.zip | e508d27142ab6b5c54568cd1a8c0f73bad6a093f24a3309a1fdb6550e99a8752 |
| mm2-8206c6ef6-ios-aarch64-CI.zip | 2a2094fbcaa9ad0026fa819348c4eb44babdaa71064e4f3b947308bd492b45d5 |
| mm2_8206c6ef6-wasm.zip | f82e330a8d9bc1c2011604648233922cf216a732858c5a6a935ad77a286b1993 |
This release was signed by https://keybase.io/deckersu (GPG fingerprint: FD9A 772C 7300 F4C8 94D1 A819 FE50 4808 62E6 451C).
🛡 VirusTotal analysis
Komodo DeFi Framework v2.2.0-beta
Custom Token Support and various optimizations
This release introduces significant improvements to connection handling and token support capabilities. Key highlights include an intelligent Electrum client architecture with configurable connection modes, support for custom EVM tokens without pre-configuration, and a robust connection health check system. The release also brings notable stability enhancements to the Cosmos integration and delivers substantial performance optimizations and bug fixes across multiple components.
Release Notes
Features:
-
Custom Tokens Support
-
Connection Healthcheck
- Connection healthcheck implementation for peers was introduced by @onur-ozkan.
- Relevant PR: #2194
Enhancements
-
Electrum Client
- Electrum client was refactored by @rozhkovdmitrii and @mariocynicys to add min/max connection controls, with server priority based on list order.
Click to expand details
- Electrum client can now operate in single-server mode (1,1) to reduce resource usage (especially beneficial for mobile) or multi-server (legacy) mode for reliability.
- Higher priority servers automatically replace lower priority ones when reconnecting during periodic retries or when connection count drops below minimum.
- Relevant PR: #1966
-
Seed Management
-
RPC Service
NB - Backwards compatibility breaking changes
❌ Removals
- adex-cli 🗑️
- Status: Removed in v2.2.0-beta
- Rationale: To be replaced with a simpler, more maintainable implementation
- Reference: #2234
⚡ API Changes
- RPC Renaming
get_peers_infoRPC was renamed toget_directly_connected_peersby @onur-ozkan #2195
- Cosmos Integration
- 'rpc_urls' field (previously a list of plain string values) was replaced by @onur-ozkan with 'nodes' (a list of JSON objects) in Cosmos activation payloads. #2173
- Komodo DeFi Proxy
- All RPC methods fields controlling komodo-defi-proxy were renamed to 'komodo_proxy' by @onur-ozkan. This affects various activations, including ETH/EVM. #2173
Bug Fixes:
Click to expand
- NFT integration
- Graceful Shutdown
- CTRL-C signal handling with graceful shutdown was implemented by @onur-ozkan #2213
- Cosmos Integration
- Cosmos tx broadcasting error was fixed by @onur-ozkan by upgrading cosmrs to version 15. #2238
- A bug in Cosmos transaction history address parsing logic was fixed by @onur-ozkan #2245
- Order Management
- Legacy Swaps
- A legacy swap issue was resolved by @laruh where taker spent maker payment transactions were sometimes incorrectly marked as successful when they were actually reverted or not confirmed, particularly in EVM-based swaps. #2199
- Two new events were added: "MakerPaymentSpendConfirmed" and "MakerPaymentSpendConfirmFailed"
- A fix was introduced by @shamardy where Takers don't need to confirm their own payment as they can wait for the spending of it straight away. #2249
- This invalidates this fix #1442, a better solution will be introduced where taker rebroadcasts their transaction if it's not on the chain.
- A fix was introduced by @shamardy for recover funds for takers when the swap was marked as unsuccessful due to the maker payment spend transaction not being confirmed. #2242
- The required confirmations from coin config for taker/maker payment spend are now used instead of using 1 confirmation max. This is because some chains require more than 1 confirmation for finality, e.g. Polygon.
- A legacy swap issue was resolved by @laruh where taker spent maker payment transactions were sometimes incorrectly marked as successful when they were actually reverted or not confirmed, particularly in EVM-based swaps. #2199
- Swap watchers
- Coins Activation
- EVM addresses are now displayed in full in iguana v2 activation response by @borngraced #2254
- HD Wallet
- RPC Service
- A fix was introduced by @mariocynicys to run rpc request futures till completion in #1966. This ensures RPC request futures complete fully even if clients disconnect, preventing partial state updates and maintaining data consistency.
- Escaped response body in native RPC was removed by @borngraced #2219
- Security Enhancements
- Remote files are now handled in a safer way in CI by @onur-ozkan #2217
- Database
- Build Process
wasm-optoverriding was removed by @onur-ozkan #2200
Full Changelog: v2.1.0-beta...v2.2.0-beta
Checksum & VirusTotal Analysis:
| Link | SHA256 |
|---|---|
| mm2-bb749a993-Darwin-Release.zip | 62c3ef36cb3cd4fc166d381d7efce6b67d3b5dc62de4080bfb39462c0c4efb48 |
| mm2-bb749a993-Linux-Release.zip | e8c4cc2b6fbddc229820e7868591b757e223a47553a66755131330345a624093 |
| mm2-bb749a993-Win64.zip | 88a723d584ef10e528b11a16327a6bcdf25867cdb6c7e6afadc77a62c8bed7dc |
| mm2-bb749a993-android-aarch64-CI.zip | bdead61715e5f95e5f1d842691b7ee19b8dc9ef780bc13f1207589214ff0fc24 |
| mm2-bb749a993-android-armv7-CI.zip | bfc294ece8481aabedf21b2d3e785eedc9719f066b396da91811427fa857f2b3 |
| mm2-bb749a993-ios-aarch64-CI.zip | 545e657f6d15a1bd552e59f6006811f84876ae39837b6b68a39b1eec3094f8dc |
| mm2_bb749a993-wasm.zip | 877d42c9051c060609b969aa3dfa550d73ae24f53153dea08143d820e7d317c7 |
This release was signed by https://keybase.io/deckersu (GPG fingerprint: FD9A 772C 7300 F4C8 94D1 A819 FE50 4808 62E6 451C).
🛡 VirusTotal analysis
Komodo DeFi Framework v2.1.0-beta
Essential New Features: Trading Protocol Upgrade, HD Wallet, Event Streaming, and Seeds Management
This release introduces a range of significant features designed to enhance the framework’s capabilities. The trading protocol has been upgraded to boost the security and reliability of swaps. HD Wallets have been integrated to enhance privacy and streamline address management for both UTXO and EVM chains. Event Streaming has been implemented to provide clients with real-time balance updates, with more real-time events planned for future updates. Seed Management has been enhanced to ensure robust seed generation and storage. These features are complemented by advancements in the NFT feature, expanded chain support for Trezor, fee improvements, ARRR/Pirate support in browser environments, and updates to the Tendermint protocol that facilitate integration with external wallets.
Release Notes
Features:
-
Trading Protocol Upgrade:
- A major upgrade to the trading protocol (enabled with
"use_trading_proto_v2": true) was implemented by @artemii235 in several PRs. This upgrade is currently available only for UTXO/UTXO swaps. All other swap types are not yet supported with this new protocol.
Click to expand details
- This upgrade introduces significant enhancements:
- Immediate refund handling for taker payments, including DEX fee refunds, and subsequent immediate maker payment refunds, effectively solving maker/taker backout issues.
- New RPCs:
my_swap_status,my_recent_swaps, andactive_swapsV2. - Upgraded swap data is also accessible through V1 RPCs.
- Important note: Seednodes must be updated to support and rebroadcast new swap protocol messages.
- A major upgrade to the trading protocol (enabled with
-
HD Wallet:
- HD wallet functionalities were fully implemented by @shamardy for UTXO and EVM coins, allowing users to enable the feature with
"enable_hd": true. For Tendermint and Pirate coins, only a single address is supported, following the BIP32/39/44 standards.
Click to expand details
- This implementation simplifies the process of importing mnemonics from other wallets into the Komodo DeFi Framework (KDF), enabling users to retain their balances, transaction history, and more.
- Users can now manage multiple addresses for UTXO and EVM coins, enhancing flexibility and control. The
path_to_addressparameter was added to coin activation requests to set the default account'/change/address_index path used for swaps. If not provided, the default path will be 0'/0/0. - HD withdrawals from any account'/change/address_index path were added for UTXO, EVM, Tendermint, and ARRR coins.
- Address scanning for balances is supported through the
scan_for_new_addressesRPC, and users can manage their HD wallet with new RPCs such asaccount_balance,get_new_address, andcreate_new_account. - These RPCs (
scan_for_new_addresses,account_balance,get_new_address, andcreate_new_account) can be managed through the task manager usingtask::<rpc-name>::(init, cancel, status). - For full HD wallet functionalities, including balance scanning and withdrawals, use task manager-enabled methods like
task::enable_eth::init,task::enable_qtum::init,task::enable_utxo::init,task::enable_erc20::init, and manage tasks throughtask::<rpc-name>::(init, cancel, status). - Task manager withdrawals are also supported using
task::withdraw::init.
- HD wallet functionalities were fully implemented by @shamardy for UTXO and EVM coins, allowing users to enable the feature with
-
Event Streaming:
- Streaming channels using Server-Sent Events (SSE) to continuously send data to clients were implemented by @onur-ozkan in several PRs. This feature supports various event types, including P2P network events, coin balance events, error events, and heartbeat events.
Click to expand details
- P2P network events: Streaming real-time updates about the network status.
- Coin balance events: For UTXOs, EVM, ARRR/Pirate by @borngraced, and Tendermint Protocols, providing continuous balance updates.
- Error events: Emitted when there's an error in generating an event, ensuring robust monitoring.
- Heartbeat events: Periodic notifications about the health of the streaming channel.
- For WebAssembly (Wasm), event streaming uses Shared Workers instead of SSE, enabling a more flexible and efficient event handling mechanism.
- SharedWorker support was added, allowing any worker path in
event_stream_configuration, with a default toevent_streaming_worker.js. - To handle broadcasted messages from the client side, an event listener must be implemented within the client browser environment to capture and process these events as they are streamed.
- SharedWorker support was added, allowing any worker path in
- To utilize this feature, the
event_stream_configurationneeds to be added to the KDF config before starting.
-
Seed Management:
- Seed generation, encryption, and storage were implemented by @shamardy, introducing secure methods for seed handling, including strong encryption and key derivation techniques.
Click to expand details
- Introduced a new
get_mnemonicAPI for retrieving mnemonics as plaintext or encrypted. - Added support for a
wallet_nameparameter in the configuration, enabling KDF to handle seed management.- If
wallet_nameis used,wallet_passwordmust be provided, allowing for encrypted storage and retrieval of mnemonics. - If no mnemonic is provided, a new one is generated, encrypted, and stored.
- Existing mnemonics can be imported and encrypted, or mnemonics can be imported in an encrypted format.
- If
- Introduced a global database for storing encrypted mnemonics and wallet names, separate from individual wallet-specific databases.
- Seed management is fully integrated within KDF when
wallet_nameconfig parameter is used, bypassing the need for external mnemonic handling.
NB - Backwards compatibility breaking changes
- The
mm2binaries have been renamed tokdf, with backward-compatible copies provided formm2naming. However, WASM binaries use thekdfnaming only, which is a breaking change. #2126 by @shamardy
New Contributors
- @mariocynicys made their first contribution in #2061
- @r2st made their first contribution in #2091
- @CharlVS made their first contribution in #2163
Full Changelog: v2.0.0-beta...v2.1.0-beta
Enhancements:
Click to expand
- KMD Burn:
- KMD dex fee burn for upgraded swaps was added. #2046 by @artemii235
- Network Enhancements:
- Hardware Wallet:
- Trezor now supports SegWit for withdrawals. #1984 by @dimxy
- Trezor support was added for EVM coins/tokens using task manager activation methods. #1962 by @dimxy
- Support for unsigned Tendermint transactions using Ledger's Keplr extension was added, excluding HTLC transactions and swap operations. #2148 by @onur-ozkan
- NFT Integration:
- Simple Maker Bot:
- Maker bot was updated to support multiple price URLs. #2027 by @shamardy
testcoinwas added to provider options, allowing testing of the maker bot using test chain assets. [#2161](https://github.com/KomodoPlatform/komodo-defi-frame...
Komodo DeFi Framework mm2-af57160
Tech Release for Devs (mm2-af57160)
This technical release, which includes an additional WASM version for developers, introduces several key improvements.
Tech Release Tags for Developers
The mm2-[0-9a-f]{7} tags (e.g., mm2-af57160) will be used exclusively for technical development releases. These tags are intended for developers to test and integrate the latest features and improvements.
For regular users, it is recommended to use the standard releases that follow Semantic Versioning (e.g., v1.2.3). These regular releases are more stable and undergo thorough testing to ensure reliability and performance.
Checksum & VirusTotal Analysis:
| Link | SHA256 |
|---|---|
| mm2_af571608c-wasm.zip | d712345f061d60e3c983ff5ee5ded45c3f572c8bed9f97521fe31b4befb2e187 |
This release was signed by https://keybase.io/deckersu (GPG fingerprint: FD9A 772C 7300 F4C8 94D1 A819 FE50 4808 62E6 451C).
🛡 VirusTotal GitHub Action analysis: