Skip to content

Latest commit

 

History

History
108 lines (105 loc) · 13.4 KB

CHANGELOG.md

File metadata and controls

108 lines (105 loc) · 13.4 KB

v1.0.0-beta - 2023-03-08

Features:

  • ARRR integration #927:
    • Zcoin native mode support was added #1438
    • Multi lightwalletd servers support was added #1472
    • Allow passing Zcash params file path to activation request #1538
    • Checksum verification of Zcash params files was added #1549
  • Tendermint integration #1432
    • Tendermint HTLC implementation #1454
    • Tendermint swap support (POC level) #1468
    • Complete tendermint support for swaps and tx history implementation #1526
    • Improve rpc client rotation of tendermint #1675
  • HD Wallet #740
    • Implement Global HD account activation mode #1512
    • mm2_rmd160 property was removed from the HD account table. Now, either Iguana or an HD account share the same HD account records #1672
  • 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 legacy get_new_address RPC #1672
    • trezor_connection_status RPC was added to allow the GUI to poll the Trezor connection status #1672
  • Simple Payment Verification #1612
    • Implement unit test for Block header UTXO Loop #1519
    • SPV with minimal storage requirements and fast block headers sync time was implemented #1585
    • Block headers storage was implemented for IndexedDB #1644
    • SPV was re-enabled in WASM #1644
  • New RPCs
    • gui-auth and enable_eth_with_tokens enable_erc20 RPCs were added #1335
    • get_current_mtp RPC was added #1340
    • max_maker_vol RPC was added #1618
  • 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 and MakerPayment swap messages were modified to include payment instructions for the other side, in the case of lightning this payment instructions is a lightning invoice #1497
    • MakerPaymentInstructionsReceived/TakerPaymentInstructionsReceived events are added to MakerSwapEvent/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 the BackgroundProcessor 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' in eth::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 and rpc_client mods #1594
  • Update metrics related dep && refactoring #1312
  • Fix rick and morty genesis block deserialization #1647
  • In librustzcash bumped bech32 to 0.9.1(which we already have in mm2, so we will not have 2 versions of bech32)
  • 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
    • Tendermint multiple rpcs optimization #1568
    • Multiple rpcs optimization for z_rpc and http_transport #1653
    • Refactor p2p message processing flow (related with one of the security problem) #1436
  • 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
  • Workflow for VirusTotal results was added to CI #1676
  • parity-ethereum and testcontainers-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.