Skip to content

Latest commit

 

History

History
724 lines (569 loc) · 53.7 KB

changelog.md

File metadata and controls

724 lines (569 loc) · 53.7 KB

CHANGELOG

Unreleased

Features

  • 2984 - add Whitelist message ability to whitelist SPL tokens on Solana
  • 3091 - improve build reproducability. make release{,-build-only} checksums should now be stable.
  • 3124 - integrate SPL deposits
  • 3134 - integrate SPL tokens withdraw to Solana

Tests

  • 3075 - ton: withdraw concurrent, deposit & revert.
  • 3105 - split Bitcoin E2E tests into two runners for deposit and withdraw
  • 3154 - configure Solana gateway program id for E2E tests

Refactor

  • 3118 - zetaclient: remove hsm signer
  • 3122 - improve & refactor zetaclientd cli
  • 3125 - drop support for header proofs
  • 3131 - move app context update from zetacore client
  • 3137 - remove chain.Chain from zetaclientd config

Fixes

  • 3117 - register messages for emissions module to legacy amino codec.
  • 3041 - replace libp2p public DHT with private gossip peer discovery and connection gater for inbound connections
  • 3106 - prevent blocked CCTX on out of gas during omnichain calls
  • 3139 - fix config resolution in orchestrator
  • 3149 - abort the cctx if dust amount is detected in the revert outbound
  • 3162 - skip depositor fee calculation if transaction does not involve TSS address

v21.0.0

Features

  • 2633 - support for stateful precompiled contracts
  • 2788 - add common importable zetacored rpc package
  • 2784 - staking precompiled contract
  • 2795 - support restricted address in Solana
  • 2861 - emit events from staking precompile
  • 2860 - bank precompiled contract
  • 2870 - support for multiple Bitcoin chains in the zetaclient
  • 2883 - add chain static information for btc signet testnet
  • 2907 - derive Bitcoin tss address by chain id and added more Signet static info
  • 2911 - add chain static information for btc testnet4
  • 2904 - integrate authenticated calls smart contract functionality into protocol
  • 2919 - add inbound sender to revert context
  • 2957 - enable Bitcoin inscription support on testnet
  • 2896 - add TON inbound observation
  • 2987 - add non-EVM standard inbound memo package
  • 2979 - add fungible keeper ability to lock/unlock ZRC20 tokens
  • 3012 - integrate authenticated calls erc20 smart contract functionality into protocol
  • 3025 - standard memo for Bitcoin inbound
  • 3028 - whitelist connection gater
  • 3019 - add ditribute functions to staking precompile
  • 3020 - add support for TON withdrawals

Refactor

  • 2749 - fix all lint errors from govet
  • 2725 - refactor SetCctxAndNonceToCctxAndInboundHashToCctx to receive tsspubkey as an argument
  • 2802 - set default liquidity cap for new ZRC20s
  • 2826 - remove unused code from emissions module and add new parameter for fixed block reward amount
  • 2890 - refactor MsgUpdateChainInfo to accept a single chain, and add MsgRemoveChainInfo to remove a chain
  • 2899 - remove btc deposit fee v1 and improve unit tests
  • 2952 - add error_message to cctx.status
  • 3039 - use btcd native APIs to handle Bitcoin Taproot address
  • 3082 - replace docker-based bitcoin sidecar inscription build with Golang implementation

Tests

  • 2661 - update connector and erc20Custody addresses in tss migration e2e tests
  • 2703 - add e2e tests for stateful precompiled contracts
  • 2830 - extend staking precompile tests
  • 2867 - skip precompiles test for tss migration
  • 2833 - add e2e framework for TON blockchain
  • 2874 - add support for multiple runs for precompile tests
  • 2895 - add e2e test for bitcoin deposit and call
  • 2894 - increase gas limit for TSS vote tx
  • 2932 - add gateway upgrade as part of the upgrade test
  • 2947 - initialize simulation tests
  • 3033 - initialize simulation tests for import and export

Fixes

  • 2674 - allow operators to vote on ballots associated with discarded keygen without affecting the status of the current keygen.
  • 2672 - check observer set for duplicates when adding a new observer or updating an existing one
  • 2735 - fix the outbound tracker blocking confirmation and outbound processing on EVM chains by locally index outbound txs in zetaclient
  • 2944 - add tsspubkey to index for tss keygen voting
  • 2842 - fix: move interval assignment out of cctx loop in EVM outbound tx scheduler
  • 2853 - calling precompile through sc with sc state update
  • 2925 - add recover to init chainer to diplay informative message when starting a node from block 1
  • 2909 - add legacy messages back to codec for querier backward compatibility
  • 3018 - support DepositAndCall and WithdrawAndCall with empty payload
  • 3030 - Avoid storing invalid Solana gateway address in the SetGatewayAddress
  • 3047 - wrong block hash in subscribe new heads

v20.0.0

Features

  • 2578 - add Gateway address in protocol contract list
  • 2630 - implement MsgMigrateERC20CustodyFunds to migrate the funds from the ERC20Custody to a new contracts (to be used for the new ERC20Custody contract for smart contract V2)
  • 2578 - Add Gateway address in protocol contract list
  • 2594 - Integrate Protocol Contracts V2 in the protocol
  • 2634 - add support for EIP-1559 gas fees
  • 2597 - Add generic rpc metrics to zetaclient
  • 2538 - add background worker routines to shutdown zetaclientd when needed for tss migration
  • 2681 - implement MsgUpdateERC20CustodyPauseStatus to pause or unpause ERC20 Custody contract (to be used for the migration process for smart contract V2)
  • 2644 - add created_timestamp to cctx status
  • 2673 - add relayer key importer, encryption and decryption
  • 2633 - support for stateful precompiled contracts
  • 2751 - add RPC status check for Solana chain
  • 2788 - add common importable zetacored rpc package
  • 2784 - staking precompiled contract
  • 2795 - support restricted address in Solana
  • 2825 - add Bitcoin inscriptions support

Refactor

  • 2615 - Refactor cleanup of outbound trackers
  • 2855 - disable Bitcoin witness support for mainnet

Tests

  • 2726 - add e2e tests for deposit and call, deposit and revert
  • 2821 - V2 protocol contracts migration e2e tests

Fixes

  • 2654 - add validation for authorization list in when validating genesis state for authorization module
  • 2672 - check observer set for duplicates when adding a new observer or updating an existing one
  • 2824 - fix Solana deposit number

v19.0.0

Breaking Changes

Features

  • 2032 - improve some general structure of the ZetaClient codebase
  • 2100 - cosmos v0.47 upgrade
  • 2145 - add ibc and ibc-transfer modules
  • 2135 - add develop build version logic
  • 2152 - custom priority nonce mempool
  • 2113 - add zetaclientd-supervisor process
  • 2154 - add ibccrosschain module
  • 2282 - modify rpc methods to support synthetic txs
  • 2258 - add Optimism and Base in static chain information
  • 2287 - implement MsgUpdateChainInfo message
  • 2279 - add a CCTXGateway field to chain static data
  • 2275 - add ChainInfo singleton state variable in authority
  • 2291 - initialize cctx gateway interface
  • 2289 - add an authorization list to keep track of all authorizations on the chain
  • 2305 - add new messages MsgAddAuthorization and MsgRemoveAuthorization that can be used to update the authorization list
  • 2313 - add CheckAuthorization function to replace the IsAuthorized function. The new function uses the authorization list to verify the signer's authorization
  • 2312 - add queries ShowAuthorization and ListAuthorizations
  • 2319 - use CheckAuthorization function in all messages
  • 2325 - revert telemetry server changes
  • 2339 - add binaries related question to syncing issue form
  • 2366 - add migration script for adding authorizations table
  • 2372 - add queries for tss fund migration info
  • 2416 - add Solana chain information
  • 2465 - add Solana inbound SOL token observation
  • 2497 - support for runtime chain (de)provisioning
  • 2518 - add support for Solana address in zetacore
  • 2483 - add priorityFee (gasTipCap) gas to the state
  • 2567 - add sign latency metric to zetaclient (zetaclient_sign_latency)
  • 2524 - add inscription envelop parsing
  • 2560 - add support for Solana SOL token withdraw
  • 2533 - parse memo from both OP_RETURN and inscription
  • 2765 - bitcoin depositor fee improvement

Refactor

  • 2094 - upgrade go-tss to use cosmos v0.47
  • 2110 - move non-query rate limiter logic to zetaclient side and code refactor
  • 2032 - improve some general structure of the ZetaClient codebase
  • 2097 - refactor lightclient verification flags to account for individual chains
  • 2071 - Modify chains struct to add all chain related information
  • 2118 - consolidate inbound and outbound naming
  • 2124 - removed unused variables and method
  • 2150 - created chains zetacore orchestrator packages in zetaclient and reorganized source files accordingly
  • 2210 - removed unnecessary panics in the zetaclientd process
  • 2205 - remove deprecated variables pre-v17
  • 2226 - improve Go formatting with imports standardization and max line length to 120
  • 2262 - refactor MsgUpdateZRC20 into MsgPauseZrc20 and MsgUnPauseZRC20
  • 2290 - rename MsgAddBlameVote message to MsgVoteBlame
  • 2269 - refactor MsgUpdateCrosschainFlags into MsgEnableCCTX, MsgDisableCCTX and MsgUpdateGasPriceIncreaseFlags
  • 2306 - refactor zetaclient outbound transaction signing logic
  • 2296 - move testdata package to testutil to organize test-related utilities
  • 2317 - add ValidateOutbound method for cctx orchestrator
  • 2340 - add ValidateInbound method for cctx orchestrator
  • 2344 - group common data of EVM/Bitcoin signer and observer using base structs
  • 2357 - integrate base Signer structure into EVM/Bitcoin Signer
  • 2359 - integrate base Observer structure into EVM/Bitcoin Observer
  • 2375 - improve & speedup code formatting
  • 2380 - use ChainInfo in authority to allow dynamically support new chains
  • 2395 - converge AppContext with ZetaCoreContext in zetaclient
  • 2428 - propagate context across codebase & refactor zetacore client
  • 2464 - move common voting logic to voting.go and add new function VoteOnBallot
  • 2515 - replace chainName by chainID for ChainNonces indexing
  • 2541 - deprecate ChainName field in Chain object
  • 2542 - adjust permissions to be more restrictive
  • 2572 - turn off IBC modules
  • 2556 - refactor migrator length check to use consensus type
  • 2568 - improve AppContext by converging chains, chainParams, enabledChains, and additionalChains into a single zctx.Chain

Tests

  • 2047 - fix liquidity cap advanced test
  • 2181 - add more assertion and test cases in ZEVM message passing E2E tests
  • 2184 - add tx priority checks to e2e tests
  • 2199 - custom priority mempool unit tests
  • 2240 - removed hard-coded Bitcoin regnet chainID in E2E withdraw tests
  • 2266 - try fixing E2E test crosschain_swap failure btc transaction not signed
  • 2294 - add and fix existing ethermint rpc unit test
  • 2329 - fix TODOs in rpc unit tests
  • 2342 - extend rpc unit tests with testing extension to include synthetic ethereum txs
  • 2299 - add zetae2e command to deploy test contracts
  • 2364 - add stateful upgrade test
  • 2360 - add stateful e2e tests.
  • 2349 - add TestBitcoinDepositRefund and WithdrawBitcoinMultipleTimes E2E tests
  • 2368 - eliminate panic usage across testing suite
  • 2369 - fix random cross-chain swap failure caused by using tiny UTXO
  • 2549 - add separate accounts for each policy in e2e tests
  • 2415 - add e2e test for upgrade and test admin functionalities
  • 2440 - Add e2e test for TSS migration
  • 2473 - add e2e tests for most used admin transactions

Fixes

  • 1484 - replaced hard-coded MaxLookaheadNonce with a default lookback factor
  • 2125 - fix develop upgrade test
  • 2222 - removed maxHeightDiff to let observer scan from Bitcoin height where it left off
  • 2233 - fix IsSupported flag not properly updated in zetaclient's context
  • 2243 - fix incorrect bitcoin outbound height in the CCTX outbound parameter
  • 2256 - fix rate limiter falsely included reverted non-withdraw cctxs
  • 2327 - partially cherry picked the fix to Bitcoin outbound dust amount
  • 2362 - set 1000 satoshis as minimum BTC amount that can be withdrawn from zEVM
  • 2382 - add tx input and gas in rpc methods for synthetic eth txs
  • 2396 - special handle bitcoin testnet gas price estimator
  • 2434 - the default database when running zetacored init is now pebbledb
  • 2481 - increase gas limit inbound and outbound vote message to 500k
  • 2545 - check solana minimum rent exempt to avoid outbound failure
  • 2547 - limit max txs in priority mempool
  • 2628 - avoid submitting invalid hashes to outbound tracker

CI

  • 2388 - added GitHub attestations of binaries produced in the release workflow.
  • 2285 - added nightly EVM performance testing pipeline, modified localnet testing docker image to utilize debian:bookworm, removed build-jet runners where applicable, removed deprecated/removed upgrade path testing pipeline
  • 2268 - updated the publish-release pipeline to utilize the Github Actions Ubuntu 20.04 Runners
  • 2070 - Added commands to build binaries from the working branch as a live full node rpc to test non-governance changes
  • 2119 - Updated the release pipeline to only run on hotfix/ and release/ branches. Added option to only run pre-checks and not cut release as well. Switched approval steps to use environments
  • 2189 - Updated the docker tag when a release trigger runs to be the github event for the release name which should be the version. Removed mac specific build as the arm build should handle that
  • 2191 - Fixed conditional logic for the docker build step for non release builds to not overwrite the github tag
  • 2192 - Added release status checker and updater pipeline that will update release statuses when they go live on network
  • 2335 - ci: updated the artillery report to publish to artillery cloud
  • 2377 - ci: adjusted sast-linters.yml to not scan itself, nor alert on removal of nosec.
  • 2400 - ci: adjusted the performance test to pass or fail pipeline based on test results, alert slack, and launch network with state. Fixed connection issues as well.
  • 2425 - Added verification to performance testing pipeline to ensure p99 aren't above 2000ms and p50 aren't above 40ms, Tweaked the config to 400 users requests per second. 425 is the current max before it starts failing.

Documentation

  • 2321 - improve documentation for ZetaClient functions and packages

Performance

  • 2482 - increase the outbound tracker buffer length from 2 to 5

v18.0.0

  • 2470 - add Polygon, Base and Base Sepolia in static chain info

v17.0.1

Fixes

  • hotfix/v17.0.1 - modify the amount field in CCTXs that carry dust BTC amounts to avoid dust output error

v17.0.0

Fixes

  • 2249 - fix inbound and outbound validation for BSC chain
  • 2265 - fix rate limiter query for revert cctxs

v16.0.0

Breaking Changes

  • Admin policies have been moved from observer to a new module authority

    • Updating admin policies now requires to send a governance proposal executing the UpdatePolicies message in the authority module
    • The Policies query of the authority module must be used to get the current admin policies
    • PolicyType_group1 has been renamed into PolicyType_groupEmergency and PolicyType_group2 has been renamed into PolicyType_groupAdmin
  • A new module called lightclient has been created for the blocker header and proof functionality to add inbound and outbound trackers in a permissionless manner (currently deactivated on live networks)

    • The list of block headers are now stored in the lightclient module instead of the observer module
      • The message to vote on new block headers is still in the observer module but has been renamed to MsgVoteBlockHeader instead of MsgAddBlockHeader
      • The GetAllBlockHeaders query has been moved to the lightclient module and renamed to BlockHeaderAll
      • The GetBlockHeaderByHash query has been moved to the lightclient module and renamed to BlockHeader
      • The GetBlockHeaderStateByChain query has been moved to the lightclient module and renamed to ChainState
      • The Prove query has been moved to the lightclient module
      • The BlockHeaderVerificationFlags has been deprecated in CrosschainFlags, VerificationFlags should be used instead
  • MsgGasPriceVoter message in the crosschain module has been renamed to MsgVoteGasPrice

    • The structure of the message remains the same
  • MsgCreateTSSVoter message in the crosschain module has been moved to the observer module and renamed to MsgVoteTSS

    • The structure of the message remains the same

Refactor

  • 1511 - move ballot voting logic from crosschain to observer
  • 1783 - refactor zetaclient metrics naming and structure
  • 1774 - split params and config in zetaclient
  • 1831 - removing unnecessary pointers in context structure
  • 1864 - prevent panic in param management
  • 1848 - create a method to observe deposits to tss address in one evm block
  • 1885 - change important metrics on port 8123 to be prometheus compatible
  • 1863 - remove duplicate ValidateChainParams function
  • 1914 - move crosschain flags to core context in zetaclient
  • 1948 - remove deprecated GetTSSAddress query in crosschain module
  • 1936 - refactor common package into subpackages and rename to pkg
  • 1966 - move TSS vote message from crosschain to observer
  • 1853 - refactor vote inbound tx and vote outbound tx
  • 1815 - add authority module for authorized actions
  • 1976 - add lightclient module for header and proof functionality
  • 2001 - replace broadcast mode block with sync and remove fungible params
  • 1989 - simplify IsSendOutTxProcessed method and add unit tests
  • 2013 - rename GasPriceVoter message to VoteGasPrice
  • 2059 - Remove unused params from all functions in zetanode
  • 2071 - Modify chains struct to add all chain related information
  • 2076 - automatically deposit native zeta to an address if it doesn't exist on ZEVM
  • 2169 - Limit zEVM revert transactions to coin type ZETA

Features

  • 1789 - block cross-chain transactions that involve restricted addresses
  • 1755 - use evm JSON RPC for inbound tx (including blob tx) observation
  • 1884 - added zetatool cmd, added subcommand to filter deposits
  • 1942 - support Bitcoin P2TR, P2WSH, P2SH, P2PKH addresses
  • 1935 - add an operational authority group
  • 1954 - add metric for concurrent keysigns
  • 1979 - add script to import genesis data into an existing genesis file
  • 2006 - add Amoy testnet static chain information
  • 2045 - add grpc query with outbound rate limit for zetaclient to use
  • 2046 - add state variable in crosschain for rate limiter flags
  • 2034 - add support for zEVM message passing
  • 1825 - add a message to withdraw emission rewards

Tests

  • 1767 - add unit tests for emissions module begin blocker
  • 1816 - add args to e2e tests
  • 1791 - add e2e tests for feature of restricted address
  • 1787 - add unit tests for cross-chain evm hooks and e2e test failed withdraw to BTC legacy address
  • 1840 - fix code coverage test failures ignored in CI
  • 1870 - enable emissions pool in local e2e testing
  • 1868 - run e2e btc tests locally
  • 1851 - rename usdt to erc20 in e2e tests
  • 1872 - remove usage of RPC in unit test
  • 1805 - add admin and performance test and fix upgrade test
  • 1879 - full coverage for messages in types packages
  • 1899 - add empty test files so packages are included in coverage
  • 1900 - add testing for external chain migration
  • 1903 - common package tests
  • 1961 - improve observer module coverage
  • 1967 - improve crosschain module coverage
  • 1955 - improve emissions module coverage
  • 1941 - add unit tests for zetacore package
  • 1985 - improve fungible module coverage
  • 1992 - remove setupKeeper from crosschain module
  • 2008 - add test for connector bytecode update
  • 2047 - fix liquidity cap advanced test
  • 2076 - automatically deposit native zeta to an address if it doesn't exist on ZEVM

Fixes

  • 1861 - fix ObserverSlashAmount invalid read
  • 1880 - lower the gas price multiplier for EVM chains
  • 1883 - zetaclient should check 'IsSupported' flag to pause/unpause a specific chain
  • 2076 - automatically deposit native zeta to an address if it doesn't exist on ZEVM
  • 1633 - zetaclient should be able to pick up new connector and erc20Custody addresses
  • 1944 - fix evm signer unit tests
  • 1888 - zetaclient should stop inbound/outbound txs according to cross-chain flags
  • 1970 - remove the timeout in the evm outtx tracker processing thread

Chores

  • 1814 - fix code coverage ignore for protobuf generated files

CI

  • 1958 - Fix e2e advanced test debug checkbox
  • 1945 - update advanced testing pipeline to not execute tests that weren't selected so they show skipped instead of skipping steps
  • 1940 - adjust release pipeline to be created as pre-release instead of latest
  • 1867 - default restore_type for full node docker-compose to snapshot instead of statesync for reliability
  • 1891 - fix typo that was introduced to docker-compose and a typo in start.sh for the docker start script for full nodes
  • 1894 - added download binaries and configs to the start sequence so it will download binaries that don't exist
  • 1953 - run E2E tests for all PRs

Version: v15.0.0

Features

  • 1912 - add reset chain nonces msg

Version: v14.0.1

  • 1817 - Add migration script to fix pending and chain nonces on testnet

Version: v13.0.0

Breaking Changes

  • zetaclientd start: now requires 2 inputs from stdin: hotkey password and tss keyshare password Starting zetaclient now requires two passwords to be input; one for the hotkey and another for the tss key-share

Features

  • 1698 - bitcoin dynamic depositor fee

Docs

  • 1731 added doc for hotkey and tss key-share password prompts

Features

  • [1728] (#1728) - allow aborted transactions to be refunded by minting tokens to zEvm

Refactor

  • 1766 - Refactors the PostTxProcessing EVM hook functionality to deal with invalid withdraw events
  • 1630 - added password prompts for hotkey and tss keyshare in zetaclient
  • 1760 - Make staking keeper private in crosschain module
  • 1809 - Refactored tryprocessout function in evm signer

Fixes

  • 1678 - clean cached stale block to fix evm outtx hash mismatch
  • 1690 - double watched gas prices and fix btc scheduler
  • 1687 - only use EVM supported chains for gas stability pool
  • 1692 - fix get params query for emissions module
  • 1706 - fix CLI crosschain show-out-tx-tracker
  • 1707 - fix bitcoin fee rate estimation
  • 1712 - increase EVM outtx inclusion timeout to 20 minutes
  • 1733 - remove the unnecessary 2x multiplier in the convertGasToZeta RPC
  • 1721 - zetaclient should provide bitcoin_chain_id when querying TSS address
  • 1744 - added cmd to encrypt tss keyshare file, allowing empty tss password for backward compatibility

Tests

  • 1584 - allow to run E2E tests on any networks
  • 1746 - rename smoke tests to e2e tests
  • 1753 - fix gosec errors on usage of rand package
  • 1762 - improve coverage for fungible module
  • 1782 - improve coverage for fungible module system contract

CI

  • Adjusted the release pipeline to be a manually executed pipeline with an approver step. The pipeline now executes all the required tests run before the approval step unless skipped
  • Added pipeline to build and push docker images into dockerhub on release for ubuntu and macos
  • Adjusted the pipeline for building and pushing docker images for MacOS to install and run docker
  • Added docker-compose and make commands for launching full nodes. make mainnet-zetarpc-node make mainnet-bitcoind-node
  • Made adjustments to the docker-compose for launching mainnet full nodes to include examples of using the docker images build from the docker image build pipeline
  • 1736 - chore: add Ethermint endpoints to OpenAPI
  • Re-wrote Dockerfile for building Zetacored docker images
  • Adjusted the docker-compose files for Zetacored nodes to utilize the new docker image
  • Added scripts for the new docker image that facilitate the start up automation
  • Adjusted the docker pipeline slightly to pull the version on PR from the app.go file
  • 1781 - add codecov coverage report in CI
  • fixed the download binary script to use relative pathing from binary_list file

Features

  • 1425 add whitelist-erc20 command

Chores

  • 1729 - add issue templates
  • 1754 - cleanup expected keepers

Version: v12.2.4

Fixes

  • 1638 - additional check to make sure external chain height always increases
  • 1672 - paying 50% more than base gas price to buffer EIP1559 gas price increase
  • 1642 - Change WhitelistERC20 authorization from group1 to group2
  • 1610 - add pending outtx hash to tracker after monitoring for 10 minutes
  • 1656 - schedule bitcoin keysign with intervals to avoid keysign failures
  • 1662 - skip Goerli BlobTxType transactions introduced in Dencun upgrade
  • 1663 - skip Mumbai empty block if ethclient sanity check fails
  • 1661 - use estimated SegWit tx size for Bitcoin gas fee calculation
  • 1667 - estimate SegWit tx size in uinit of vByte
  • 1675 - use chain param ConfirmationCount for bitcoin confirmation

Chores

  • 1694 - remove standalone network, use require testing package for the entire node folder

Version: v12.1.0

Tests

  • 1577 - add chain header tests in E2E tests and fix admin tests

Features

  • 1658 - modify emission distribution to use fixed block rewards

Fixes

  • 1535 - Avoid voting on wrong ballots due to false blockNumber in EVM tx receipt
  • 1588 - fix chain params comparison logic
  • 1650 - exempt (discounted) system txs from min gas price check and gas fee deduction
  • 1632 - set keygen to KeygenStatus_KeyGenSuccess if its in KeygenStatus_PendingKeygen
  • 1576 - Fix zetaclient crash due to out of bound integer conversion and log prints
  • 1575 - Skip unsupported chain parameters by IsSupported flag

CI

  • 1580 - Fix release pipelines cleanup step

Chores

  • 1585 - Updated release instructions
  • 1615 - Add upgrade handler for version v12.1.0

Features

  • 1591 - support lower gas limit for voting on inbound and outbound transactions
  • 1592 - check inbound tracker tx hash against Tss address and some refactor on inTx observation

Refactoring

  • 1628 optimize return and simplify code
  • 1640 reorganize zetaclient into subpackages
  • 1619 - Add evm fee calculation to tss migration of evm chains

Version: v12.0.0

Breaking Changes

TSS and chain validation related queries have been moved from crosschain module to observer module:

  • PendingNonces :Changed from /zeta-chain/crosschain/pendingNonces/{chain_id}/{address} to /zeta-chain/observer/pendingNonces/{chain_id}/{address} . It returns all the pending nonces for a chain id and address. This returns the current pending nonces for the chain
  • ChainNonces : Changed from /zeta-chain/crosschain/chainNonces/{chain_id} to/zeta-chain/observer/chainNonces/{chain_id} . It returns all the chain nonces for a chain id. This returns the current nonce of the TSS address for the chain
  • ChainNoncesAll :Changed from /zeta-chain/crosschain/chainNonces to /zeta-chain/observer/chainNonces . It returns all the chain nonces for all chains. This returns the current nonce of the TSS address for all chains

All chains now have the same observer set:

  • ObserversByChain: /zeta-chain/observer/observers_by_chain/{observation_chain} has been removed and replaced with /zeta-chain/observer/observer_set. All chains have the same observer set
  • AllObserverMappers: /zeta-chain/observer/all_observer_mappers has been removed. /zeta-chain/observer/observer_set should be used to get observers.

Observer params and core params have been merged into chain params:

  • Params: /zeta-chain/observer/params no longer returns observer params. Observer params data have been moved to chain params described below.
  • GetCoreParams: Renamed into GetChainParams. /zeta-chain/observer/get_core_params moved to /zeta-chain/observer/get_chain_params
  • GetCoreParamsByChain: Renamed into GetChainParamsForChain. /zeta-chain/observer/get_core_params_by_chain moved to /zeta-chain/observer/get_chain_params_by_chain

Getting the correct TSS address for Bitcoin now requires providing the Bitcoin chain id:

  • GetTssAddress : Changed from /zeta-chain/observer/get_tss_address/ to /zeta-chain/observer/getTssAddress/{bitcoin_chain_id} . Optional bitcoin chain id can now be passed as a parameter to fetch the correct tss for required BTC chain. This parameter only affects the BTC tss address in the response

Features

  • 1498 - Add monitoring(grafana, prometheus, ethbalance) for localnet testing
  • 1395 - Add state variable to track aborted zeta amount
  • 1410 - snapshots commands
  • enable zetaclients to use dynamic gas price on zetachain - enables >0 min_gas_price in feemarket module
  • add static chain data for Sepolia testnet
  • added metrics to track the burn rate of the hotkey in the telemetry server as well as prometheus

Fixes

  • 1554 - Screen out unconfirmed UTXOs that are not created by TSS itself
  • 1560 - Zetaclient post evm-chain outtx hashes only when receipt is available
  • 1516 - Unprivileged outtx tracker removal
  • 1537 - Sanity check events of ZetaSent/ZetaReceived/ZetaRevertedWithdrawn/Deposited
  • 1530 - Outbound tx confirmation/inclusion enhancement
  • 1496 - post block header for enabled EVM chains only
  • 1518 - Avoid duplicate keysign if an outTx is already pending
  • fix Code4rena issue - zetaclients potentially miss inTx when PostSend (or other RPC) fails
  • fix go-staticcheck warnings for zetaclient
  • fix Athens-3 issue - incorrect pending-tx inclusion and incorrect confirmation count
  • masked zetaclient config at startup
  • set limit for queried pending cctxs
  • add check to verify new tss has been produced when triggering tss funds migration
  • fix Athens-3 log print issue - avoid posting unnecessary outtx confirmation
  • fix docker build issues with version: golang:1.20-alpine3.18
  • 1525 - relax EVM chain block header length check 1024->4096
  • 1522 - block distribution module account from receiving zeta
  • 1528 - fix panic caused on decoding malformed BTC addresses
  • 1536 - add index to check previously finalized inbounds
  • 1556 - add emptiness check for topic array in event parsing
  • 1546 - fix reset of pending nonces on genesis import
  • 1555 - Reduce websocket message limit to 10MB
  • 1567 - add bitcoin chain id to fetch the tss address rpc endpoint
  • 1501 - fix stress test - use new refactored config file and smoketest runner
  • 1589 - add bitcoin chain id to get tss address and get tss address historical cli query

Refactoring

  • 1552 - requires group2 to enable header verification
  • 1211 - use grpc and msg for query and message files
  • refactor cctx scheduler - decouple evm cctx scheduler from btc cctx scheduler
  • move tss state from crosschain to observer
  • move pending nonces, chain nonces and nonce to cctx to observer
  • move tss related cli from crosschain to observer
  • reorganize smoke tests structure
  • Add pagination to queries which iterate over large data sets InTxTrackerAll ,PendingNoncesAll ,AllBlameRecord ,TssHistory
  • GetTssAddress now returns only the current tss address for ETH and BTC
  • Add a new query GetTssAddressesByFinalizedBlockHeight to get any other tss addresses for a finalized block height
  • Move observer params into core params
  • Remove chain id from the index for observer mapper and rename it to observer set.
  • Add logger to smoke tests
  • 1521 - replace go-tss lib version with one that reverts back to thorchain tss-lib
  • 1558 - change log level for gas stability pool iteration error
  • Update --ledger flag hint

Chores

  • 1446 - renamed file zetaclientd/aux.go to zetaclientd/utils.go to avoid complaints from go package resolver
  • 1499 - Add scripts to localnet to help test gov proposals
  • 1442 - remove build types in .goreleaser.yaml
  • 1504 - remove -race in the make install command
  • 1564 - bump ti-actions/changed-files

Tests

  • 1538 - improve stateful e2e testing

CI

  • Removed private runners and unused GitHub Action

Version: v11.0.0

Features

  • 1387 - Add HSM capability for zetaclient hot key
  • add a new thread to zetaclient which checks zeta supply in all connected chains in every block
  • add a new tx to update an observer, this can be either be run a tombstoned observer/validator or via admin_policy_group_2

Fixes

  • Added check for redeployment of gas and asset token contracts
  • 1372 - Include Event Index as part for inbound tx digest
  • 1367 - fix minRelayTxFee issue and check misuse of bitcoin mainnet/testnet addresses
  • 1358 - add a new thread to zetaclient which checks zeta supply in all connected chains in every block
  • prevent deposits for paused zrc20
  • 1406 - improve log prints and speed up evm outtx inclusion
  • fix Athens-3 issue - include bitcoin outtx regardless of the cctx status

Refactoring

  • 1391 - consolidate node builds
  • update MsgUpdateContractBytecode to use code hash instead of contract address

Chores

Tests

  • Add unit tests for adding votes to a ballot

CI

Version: v10.1.2

Features

  • 1137 - external stress testing
  • 1205 - allow setting liquidity cap for ZRC20
  • 1260 - add ability to update gas limit
  • 1263 - Bitcoin block header and merkle proof
  • 1247 - add query command to get all gas stability pool balances
  • 1143 - tss funds migration capability
  • 1358 - zetaclient thread for zeta supply checks
  • 1384 - tx to update an observer

Fixes

  • 1195 - added upgrade name, and allow download. allows to test release
  • 1153 - address cosmos-gosec lint issues
  • 1128 - adding namespaces back in rpc
  • 1245 - set unique index for generate cctx
  • 1250 - remove error return in IsAuthorized
  • 1261 - Ethereum comparison checksum/non-checksum format
  • 1264 - Blame index update
  • 1243 - feed sataoshi/B to zetacore and check actual outTx size
  • 1235 - cherry pick all hotfix from v10.0.x (zero-amount, precision, etc.)
  • 1257 - register emissions grpc server
  • 1277 - read gas limit from smart contract
  • 1252 - add CLI command to query system contract
  • 1285 - add notice when using --ledger with Ethereum HD path
  • 1283 - query outtx tracker by chain using prefixed store
  • 1280 - minor fixes to stateful upgrade
  • 1304 - remove check gasObtained == outTxGasFee
  • 1308 - begin blocker for mock mainnet

Refactoring

  • 1226 - call onCrossChainCall when depositing to a contract
  • 1238 - change default mempool version in config
  • 1279 - remove duplicate funtion name IsEthereum
  • 1289 - skip gas stability pool funding when gasLimit is equal gasUsed

Chores

  • 1193 - switch back to cosmos/cosmos-sdk
  • 1222 - changed maxNestedMsgs
  • 1265 - sync from mockmain
  • 1307 - increment handler version

Tests

  • 1135 - Stateful upgrade for smoke tests

CI

  • 1218 - cross-compile release binaries and simplify PR testings
  • 1302 - add mainnet builds to goreleaser