Features:
- ARRR integration #927:
- Tendermint integration #1432
- HD Wallet #740
- Hardware Wallet #964
- Implement TX history V2 for UTXO coins activated with a Hardware wallet #1467
- Fix KMD withdraw with Trezor #1628
task::get_new_address::*
RPCs were added to replace the legacyget_new_address
RPC #1672trezor_connection_status
RPC was added to allow the GUI to poll the Trezor connection status #1672
- Simple Payment Verification #1612
- New RPCs
- Lightning integration
WIP
#1045- rust-lightning was updated to v0.0.110 in #1452
- Inbound channels details was added to SQL channels history in #1339
- Blocking was fixed for sync rust-lightning functions that calls other I/O functions or that has mutexes that can be held for some time in #1452
- Default fees are retrieved from rpc instead of config when starting lightning #1452
- 0 confirmations channels feature was added in #1452
- An
update_channel
RPC was added that updates a channel that is open without closing it in #1452 - Lightning RPCs now use the
lightning::
namespace in #1497 TakerFee
andMakerPayment
swap messages were modified to include payment instructions for the other side, in the case of lightning this payment instructions is a lightning invoice #1497MakerPaymentInstructionsReceived
/TakerPaymentInstructionsReceived
events are added toMakerSwapEvent
/TakerSwapEvent
in #1497, for more info check this comment- Lightning swaps were implemented in #1497, #1557
- Lightning swap refunds were implemented in #1592
MakerPaymentRefundStarted
,TakerPaymentRefundStarted
,MakerPaymentRefundFinished
,TakerPaymentRefundFinished
events were added to swap error events in #1592, for more info check this comment- Enabling lightning now uses the task manager #1513
- Disabling lightning coin or calling
stop
RPC now drops theBackgroundProcessor
which persists the latest network graph and scorer to disk #1513, #1490 avg_blocktime
from platform/utxo coin is used for l2/lightning estimating of the number of blocks swap payments are locked for #1606
- MetaMask
WIP
#1167- Login with a MetaMask wallet #1551
- Check if corresponding ETH chain is known by MetaMask wallet on coin activation using
wallet_switchEthereumChain
#1674 - Refactor ETH/ERC20 withdraw taking into account that the only way to sign a transaction is to send it using
eth_sendTransaction
#1674 - Extract address's public key using
eth_singTypedDataV4
#1674 - Perform swaps with coins activated with MetaMask #1674
Enhancements/Fixes:
- Update
rust-web3
crate #1674 - Custom enum from stringify derive macro to derive From implementations for enums #1502
- Validate that
input_tx
is calling'receiverSpend'
ineth::extract_secret
#1596 - Validate all Swap parameters at the Negotiation stage #1475
- created safe number type castings #1517
- Improve
stop
functionality #1490 - A possible seednode p2p thread panicking attack due to
GetKnownPeers
msg was fixed in #1445 - NAV
cold_staking
script type was added to fix a problem in NAV tx history in #1466 - SPV was temporarily disabled in WASM in #1479
BTC-segwit
swap locktimes was fixed in #1548 by using orderbook ticker instead of ticker in swap locktimes calculations.- BTC block headers deserialization was fixed for version 4 and
KAWPOW_VERSION
in #1452 - Error messages for failing swaps due to a time difference between maker and taker are now more informative after #1677
- Fix
LBC
block header deserialization bug #1343 - Fix
NMC
block header deserialization bug #1409 - Refactor mm2 error handling for some structures #1444
- Tx wait for confirmation timeout fix #1446
- Retry tx wait confirmation if not on chain #1474
- Fix electrum "response is too large (over 2M bytes)" error for block header download #1506
- Deactivate tokens with platform coin #1525
- Enhanced logging in
spv
andrpc_client
mods #1594 - Update metrics related dep && refactoring #1312
- Fix rick and morty genesis block deserialization #1647
- In
librustzcash
bumpedbech32
to0.9.1
(which we already have in mm2, so we will not have 2 versions ofbech32
) - Use dev branch as a target branch for Dependabot #1424
- Fixed Zhtlc orders is_mine bug (orders had "is_mine":false) #1489
- Grouped SwapOps method arguments into new groups(structures) #1529
- Handling multiple rpcs optimization #1480
- Solana tests are disabled #1660
- Some of vulnerable dependencies(tokio, libp2p) are fixed #1666
- Add
mm2_stop
WASM FFI #1628 - Use
futures_timer
crate and fix some unstable tests #1511 - Fix
Timer::sleep_ms
in WASM #1514 - Fix a race condition in
AbortableQueue
#1528 - Spawn
process_json_request
so the RPC requests can be processed asynchronously #1620 - Fix
task::-::cancel
if the RPC task is an awaiting status #1582 disable_coin
should fail if there are tokens dependent on the platform #1651- Implement a repeatable future #1564
- Version handling was enhanced #1686
- Version of
mm2_bin_lib
from cargo manifest is now used for the API version --version
,-v
,version
arguments now print the mm2 version
- Version of
- Workflow for VirusTotal results was added to CI #1676
parity-ethereum
andtestcontainers-rs
crates from KomodoPlatform repo are now used #1690- Testnet node of atom was updated, RUSTSEC-2023-0018 was ignored #1692
- Timestamp value sent from the peer in
PubkeyKeepAlive
msg was ignored and the received timestamp was used instead #1668 - Change release branch from mm2.1 to main in CI #1697
- CHANGELOG.md was introduced to have a complete log of code changes #1680
- Small fixes #1518, #1515, #1550, #1657
NB - Backwards compatibility breaking changes:
- Because of #1548, old nodes will not be able to swap BTC segwit with new nodes since locktimes are exchanged and validated in the negotiation messages.