- 2032 - improve some general structure of the ZetaClient codebase
- 2100 - cosmos v0.47 upgrade
- 2145 - add
ibc
andibc-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
andMsgRemoveAuthorization
that can be used to update the authorization list - 2313 - add
CheckAuthorization
function to replace theIsAuthorized
function. The new function uses the authorization list to verify the signer's authorization - 2312 - add queries
ShowAuthorization
andListAuthorizations
- 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
- 2416g - add Solana chain information
- 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 uncessary 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 toMsgVoteBlame
- 2269 - refactor MsgUpdateCrosschainFlags into MsgEnableCCTX, MsgDisableCCTX and MsgUpdateGasPriceIncreaseFlags
- 2306 - refactor zetaclient outbound transaction signing logic
- 2296 - move
testdata
package totestutil
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
inauthority
to allow dynamically support new chains - 2395 - converge AppContext with ZetaCoreContext in zetaclient
- 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
failurebtc 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
- 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
- 2388 - added GitHub attestations of binaries produced in the release workflow.
- 2285 - added nightly EVM performance testing pipeline, modified localnet testing docker image to utilitze 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.
- 2321 - improve documentation for ZetaClient functions and packages
- 2249 - fix inbound and outbound validation for BSC chain
- 2265 - fix rate limiter query for revert cctxs
-
Admin policies have been moved from
observer
to a new moduleauthority
- Updating admin policies now requires to send a governance proposal executing the
UpdatePolicies
message in theauthority
module - The
Policies
query of theauthority
module must be used to get the current admin policies PolicyType_group1
has been renamed intoPolicyType_groupEmergency
andPolicyType_group2
has been renamed intoPolicyType_groupAdmin
- Updating admin policies now requires to send a governance proposal executing the
-
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 theobserver
module- The message to vote on new block headers is still in the
observer
module but has been renamed toMsgVoteBlockHeader
instead ofMsgAddBlockHeader
- The
GetAllBlockHeaders
query has been moved to thelightclient
module and renamed toBlockHeaderAll
- The
GetBlockHeaderByHash
query has been moved to thelightclient
module and renamed toBlockHeader
- The
GetBlockHeaderStateByChain
query has been moved to thelightclient
module and renamed toChainState
- The
Prove
query has been moved to thelightclient
module - The
BlockHeaderVerificationFlags
has been deprecated inCrosschainFlags
,VerificationFlags
should be used instead
- The message to vote on new block headers is still in the
- The list of block headers are now stored in the
-
MsgGasPriceVoter
message in thecrosschain
module has been renamed toMsgVoteGasPrice
- The structure of the message remains the same
-
MsgCreateTSSVoter
message in thecrosschain
module has been moved to theobserver
module and renamed toMsgVoteTSS
- The structure of the message remains the same
- 1511 - move ballot voting logic from
crosschain
toobserver
- 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 toVoteGasPrice
- 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
- 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
- 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
- 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
- 1814 - fix code coverage ignore for protobuf generated files
- 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
- 1912 - add reset chain nonces msg
- 1817 - Add migration script to fix pending and chain nonces on testnet
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
- 1698 - bitcoin dynamic depositor fee
- 1731 added doc for hotkey and tss key-share password prompts
- [1728] (zeta-chain#1728) - allow aborted transactions to be refunded by minting tokens to zEvm
- 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
- 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
- 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 fungibile module
- 1782 - improve coverage for fungibile module system contract
- 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
- 1425 add
whitelist-erc20
command
- 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
- 1694 - remove standalone network, use require testing package for the entire node folder
- 1577 - add chain header tests in E2E tests and fix admin tests
- 1658 - modify emission distribution to use fixed block rewards
- 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 inKeygenStatus_PendingKeygen
- 1576 - Fix zetaclient crash due to out of bound integer conversion and log prints
- 1575 - Skip unsupported chain parameters by IsSupported flag
- 1580 - Fix release pipelines cleanup step
- 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
- 1628 optimize return and simplify code
- 1640 reorganize zetaclient into subpackages
- 1619 - Add evm fee calculation to tss migration of evm chains
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 chainChainNonces
: 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 chainChainNoncesAll
: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 setAllObserverMappers
:/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 intoGetChainParams
./zeta-chain/observer/get_core_params
moved to/zeta-chain/observer/get_chain_params
GetCoreParamsByChain
: Renamed intoGetChainParamsForChain
./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 proviidng 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
- 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
- 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 uncessary 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
andget tss address historical
cli query
- 1552 - requires group2 to enable header verification
- 1211 - use
grpc
andmsg
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
- 1446 - renamed file
zetaclientd/aux.go
tozetaclientd/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 themake install
commmand - 1564 - bump ti-actions/changed-files
- 1538 - improve stateful e2e testing
- Removed private runners and unused GitHub Action
- 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
- 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
- 1391 - consolidate node builds
- update
MsgUpdateContractBytecode
to use code hash instead of contract address
- Add unit tests for adding votes to a ballot
- 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
- 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 comparaison 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
- 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
- 1193 - switch back to
cosmos/cosmos-sdk
- 1222 - changed maxNestedMsgs
- 1265 - sync from mockmain
- 1307 - increment handler version
- 1135 - Stateful upgrade for smoke tests