Giter Club home page Giter Club logo

zetachin's Introduction

ZetaChain audit details

  • Total Prize Pool: $150,000 USDC
    • HM awards: $121,400 USDC
    • QA awards: $3,100 USDC
    • Judge awards: $15,000 USDC
    • Lookout awards: $10,000 USDC
    • Scout awards: $500 USDC
  • Join C4 Discord to register
  • Submit findings using the C4 form
  • Read our guidelines for more details
  • Starts November 20, 2023 20:00 UTC
  • Ends December 18, 2023 20:00 UTC

❗️Note for C4 wardens: For this contest, analysis and gas optimizations are out of scope. ZetaChain will not be awarding prize funds for analysis or gas-specific submissions.

Automated Findings / Publicly Known Issues

The 4naly3er report can be found here.

Note for C4 wardens: Anything included in the 4naly3er or in the previous audits is considered a publicly known issue and is ineligible for awards.

Overview

ZetaChain protocol is composed of two repositories:

  • node: ZetaChain source code based on Cosmos-SDK
  • protocol-contracts: Smart contracts deployed on ZetaChain or external chains to support interoperability

Warden Resources for ZetaChain and Cosmos SDK: onboarding

Prior to this competitive audit, 3 teams of Code4rena wardens competed to produce a set of resources to help accelerate wardens’ ability to compete. Wardens unfamiliar with ZetaChain and/or Cosmos SDK are recommended to review the materials created by each team:

In each team's workspace, you'll find:

  • Project 101/FAQ (“5 minutes to coding”)
  • Testing 101/FAQ (“5 minutes to testing” plus best resources)
  • A collection/documentation of classes of vulnerabilities

Teams ZetaLotus and 032 also produced:

  • Threat models
  • architecture diagrams
  • functional call flows

The consolidated threat models, and links to additional resoures, can be viewed here.

Node

ZetaChain is based on Cosmos-SDK - see here our usage of the framework

Overview of the architecture of the node can be found here

The main sections of the source code are:

  • x (modules): contains the source code of the Cosmos-SDK modules of the blockchain
  • zetaclient: contains the code for the observer client validating cross-chain transactions on ZetaChain
  • smoketests: contains utilities to run smoke tests of the protocol, and local experimentation

Protocol Contracts

The protocol contracts are separated into two sections:

  • zevm: contains contracts deployed on ZetaChain
  • evm: contains contracts deployed on external EVM chains to be supported by ZetaChain

Commands

Requirements

  • Go 1.20 (ZetaChain can only be built with this version of Go specifically)
  • Docker (for smoke tests)
  • Yarn

node

Build the zetacored (blockchain node binary), and zetacliend (ZetaClient binary)

make install

Run the unit tests

make test

Run a standalone local blockchain node

make init
make run

Run the smoke tests

make start-smoketest
make stop-smoketest

protocol-contracts

Compile the smart contracts

yarn
yarn compile

Run the unit tests

yarn test

Experimentation with a local network

Containers

The smoke tests under contrib allow testing of the different workflow of cross-chain functionalities on an E2E basis.

It also allows to experimentation of the protocol in a local environment. Running the smoke tests create several containers including:

  • zetacore0: a ZetaChain node
  • zetaclient0: a observer ZetaClient
  • eth: a local Ethereum network connected to ZetaChain
  • bitcoin: a local Bitcoin network connected to ZetaChain
  • orchestrator: smoke tests runnner

After starting the networks with:

make start-smoketest

ZetaChain

The user can connect to the zetacore0 and directly use the node CLI with the zetacored binary with a funded account:

docker exec -it zetacore0 sh

/usr/local/bin # zetacored q bank balances zeta172uf5cwptuhllf6n4qsncd9v6xh59waxnu83kq
balances:
- amount: "4199000000000000000000000"
  denom: azeta

Ethereum

The user can interact with the local Ethereum node with the exposed RPC on http://0.0.0.0:8545. The following testing account is funded:

Address: 0xE5C5367B8224807Ac2207d350E60e1b6F27a7ecC
Private key: d87baf7bf6dc560a252596678c12e41f7d1682837f05b29d411bc3f78ae2c263

Examples with the cast CLI:

cast balance 0xE5C5367B8224807Ac2207d350E60e1b6F27a7ecC --rpc-url http://0.0.0.0:8545
98897999997945970464

cast send 0x9fd96203f7b22bCF72d9DCb40ff98302376cE09c --value 42 --rpc-url http://0.0.0.0:8545 --private-key "d87baf7bf6dc560a252596678c12e41f7d1682837f05b29d411bc3f78ae2c263"

Custom programmatic interactions

The smoketest package contains an API to interact programmatically with the different network:

type SmokeTest struct {
	zetaTxServer    ZetaTxServer
	cctxClient      crosschaintypes.QueryClient
	fungibleClient  fungibletypes.QueryClient
	authClient      authtypes.QueryClient
	bankClient      banktypes.QueryClient
	observerClient  observertypes.QueryClient
	goerliAuth      *bind.TransactOpts
	zevmAuth        *bind.TransactOpts
}

The user can use this API for custom testing on the networks and insert custom tests in smoketest/main.go (and commenting out unnecessary tests), the tests will automatically run upon starting the smoke tests. Current existing smoke tests are a good source to learn how to implement custom tests.

Areas of Concerns

Links

Scope

Contracts

File SLOC
contracts/zevm/ZRC20.sol 159
contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol 143
contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol 132
contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol 131
contracts/evm/ERC20Custody.sol 120
contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol 120
contracts/evm/tools/ImmutableCreate2Factory.sol 93
contracts/evm/ZetaConnector.base.sol 92
contracts/zevm/SystemContract.sol 89
contracts/zevm/ZetaConnectorZEVM.sol 73
contracts/evm/ZetaConnector.non-eth.sol 71
contracts/evm/ZetaConnector.eth.sol 65
contracts/zevm/WZETA.sol 47
contracts/evm/Zeta.non-eth.sol 43
contracts/evm/tools/ZetaInteractor.sol 36
contracts/evm/interfaces/ZetaInterfaces.sol 36
contracts/evm/tools/interfaces/TridentIPoolRouter.sol 35
contracts/zevm/Interfaces.sol 9
contracts/evm/interfaces/ZetaErrors.sol 9
contracts/evm/interfaces/ConnectorErrors.sol 9
contracts/zevm/interfaces/zContract.sol 8
contracts/zevm/interfaces/IWZETA.sol 7
contracts/evm/Zeta.eth.sol 7
contracts/evm/interfaces/ZetaInteractorErrors.sol 7
contracts/zevm/interfaces/IUniswapV2Router02.sol 4
contracts/zevm/Uniswap.sol 4
contracts/evm/interfaces/ZetaNonEthInterface.sol 4
contracts/zevm/interfaces/IZRC20.sol 3
contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol 3
contracts/zevm/UniswapPeriphery.sol 3
contracts/zevm/interfaces/IUniswapV2Router01.sol 3

Node

File SLOC
zetaclient/bitcoin_client.go 1082
zetaclient/evm_client.go 1070
app/app.go 612
x/fungible/keeper/system_contract.go 611
x/fungible/keeper/evm.go 609
rpc/websockets.go 592
zetaclient/evm_signer.go 555
server/start.go 533
zetaclient/tss_signer.go 522
rpc/namespaces/ethereum/eth/filters/api.go 482
cmd/zetacored/observer_accounts.go 413
rpc/backend/blocks.go 391
zetaclient/query.go 368
rpc/backend/tx_info.go 362
zetaclient/btc_signer.go 312
rpc/backend/call_tx.go 311
rpc/namespaces/ethereum/eth/api.go 287
x/crosschain/keeper/grpc_zevm.go 287
zetaclient/zetacore_observer.go 284
x/crosschain/keeper/gas_payment.go 268
rpc/types/events.go 267
x/crosschain/keeper/evm_hooks.go 264
cmd/zetacored/root.go 261
zetaclient/config/types.go 255
zetaclient/tx.go 254
rpc/backend/node_info.go 244
rpc/types/utils.go 243
cmd/zetaclientd/start.go 242
zetaclient/inbound_tracker.go 239
rpc/namespaces/ethereum/eth/filters/filter_system.go 238
server/config/config.go 236
x/crosschain/keeper/keeper_cross_chain_tx.go 236
rpc/backend/utils.go 228
x/crosschain/client/cli/cli_cctx.go 222
zetaclient/zeta_supply_checker.go 217
rpc/backend/chain_info.go 204
scripts/gen-spec.go 203
zetaclient/zetacore_bridge.go 197
rpc/namespaces/ethereum/eth/filters/filters.go 196
cmd/zetaclientd/p2p_diagnostics.go 193
zetaclient/telemetry.go 191
common/pubkey.go 177
zetaclient/utils.go 176
x/crosschain/keeper/keeper_cross_chain_tx_vote_outbound_tx.go 172
x/crosschain/keeper/msg_server_add_to_outtx_tracker.go 171
common/chain.go 170
zetaclient/keys.go 165
x/crosschain/keeper/keeper_gas_price.go 165
rpc/apis.go 165
cmd/zetaclientd/keygen_tss.go 164
rpc/backend/account_info.go 164
x/crosschain/keeper/keeper_cross_chain_tx_vote_inbound_tx.go 162
x/emissions/types/params.go 150
x/observer/types/params.go 149
rpc/types/block.go 148
cmd/zetacored/genaccounts.go 147
rpc/backend/tracing.go 147
cmd/zetacore_utils/main.go 146
x/crosschain/keeper/msg_server_whitelist_erc20.go 143
x/observer/keeper/hooks.go 141
x/fungible/module.go 139
zetaclient/broadcast.go 139
x/crosschain/client/cli/cli_tss.go 137
x/crosschain/module.go 136
app/export.go 135
x/crosschain/client/cli/cli_out_tx_tracker.go 134
x/observer/keeper/observer_mapper.go 132
rpc/backend/backend.go 132
common/headers.go 130
x/crosschain/keeper/msg_migrate_tss_funds.go 130
x/fungible/keeper/begin_blocker_deploy_system_contracts_privnet.go 129
x/observer/keeper/keeper_utils.go 129
x/crosschain/types/expected_keepers.go 128
zetaclient/types/sql_evm.go 128
zetaclient/hsm/hsm_signer.go 127
x/crosschain/keeper/keeper_out_tx_tracker.go 126
x/observer/module.go 125
common/ethereum/proof.go 124
app/ante/handler_options.go 123
rpc/namespaces/ethereum/personal/api.go 118
x/emissions/module.go 115
rpc/ethereum/pubsub/pubsub.go 114
zetaclient/interfaces.go 110
rpc/backend/sign_tx.go 110
x/emissions/abci.go 110
x/crosschain/keeper/keeper_chain_nonces.go 109
x/fungible/keeper/gas_coin_and_pool.go 108
x/crosschain/keeper/keeper_tss.go 107
x/observer/genesis.go 106
server/util.go 105
x/crosschain/keeper/msg_tss_voter.go 104
x/crosschain/client/cli/cli_chain_nonce.go 103
server/indexer_cmd.go 103
x/crosschain/keeper/evm_deposit.go 103
x/crosschain/keeper/cctx_utils.go 100
app/ante/ante.go 99
cmd/zetaclientd/aux.go 98
x/crosschain/client/cli/cli_in_tx_tracker.go 96
zetaclient/types/sql_btc.go 95
x/observer/types/message_update_core_params.go 95
x/observer/keeper/msg_server_add_block_header.go 94
x/crosschain/keeper/verify_proof.go 93
server/json_rpc.go 92
x/crosschain/keeper/keeper_pending_nonces.go 91
x/observer/client/cli/query_blame.go 90
x/crosschain/client/cli/cli_gas_price.go 89
x/observer/keeper/blame.go 89
x/crosschain/keeper/abci.go 89
x/observer/keeper/ballot.go 89
server/indexer_service.go 88
x/observer/types/ballot.go 88
x/fungible/keeper/foreign_coins.go 87
x/crosschain/genesis.go 86
rpc/namespaces/ethereum/eth/filters/utils.go 85
cmd/zetaclientd/init.go 85
x/observer/keeper/msg_server_update_observer.go 83
x/crosschain/types/message_vote_on_observed_inbound_tx.go 83
common/proof.go 82
x/observer/client/cli/tx_add_blame_vote.go 82
zetaclient/signer.go 82
x/crosschain/keeper/grpc_query_get_tss_address.go 79
cmd/zetaclientd/hsm.go 79
x/crosschain/keeper/keeper_last_block_height.go 78
zetaclient/metrics/metrics.go 78
x/crosschain/keeper/events.go 77
x/crosschain/client/cli/query_in_tx_hash_to_cctx.go 77
x/fungible/keeper/msg_server_update_system_contract.go 75
x/fungible/keeper/gas_price.go 75
app/ante/authz.go 74
rpc/types/types.go 74
x/fungible/client/cli/query_gas_stability_pool.go 73
contrib/localnet/README.md 72
x/crosschain/types/message_vote_on_observed_outbound_tx.go 72
x/observer/keeper/block_header.go 71
x/observer/keeper/keeper_node_account.go 71
server/flags/flags.go 70
zetaclient/config/config.go 69
x/crosschain/keeper/in_tx_tracker.go 69
x/fungible/keeper/grpc_gas_stability_pool.go 68
x/fungible/keeper/deposits.go 67
common/cosmos/cosmos.go 67
x/observer/types/core_params_mainnet.go 66
standalone-network/evm-init 65
server/config/toml.go 65
x/observer/types/messages_add_block_header.go 64
x/fungible/keeper/msg_server_update_zrc20_withdraw_fee.go 64
x/crosschain/keeper/keeper.go 64
x/crosschain/keeper/grpc_query_in_tx_hash_to_cctx.go 64
app/config.go 63
x/fungible/keeper/msg_server_update_contract_bytecode.go 62
x/crosschain/types/keys.go 62
x/crosschain/migrations/v2/migrate.go 62
common/default_chains_mainnet.go 62
x/fungible/types/expected_keepers.go 62
x/emissions/keeper/keeper.go 61
x/fungible/keeper/keeper.go 61
x/fungible/keeper/gas_stability_pool.go 60
x/fungible/client/cli/tx_deploy_fungible_coin_zrc_4.go 60
zetaclient/klaytn_client.go 59
x/observer/client/cli/query_core_params.go 58
x/crosschain/types/genesis.go 58
common/bitcoin/bitcoin_spv.go 58
cmd/zetacored/collect_observer_info.go 58
x/observer/keeper/grpc_query_prove.go 58
cmd/zetacored/get_pubkey.go 55
x/observer/types/messages_crosschain_flags.go 55
x/observer/keeper/keeper.go 55
x/crosschain/types/message_whitelist_erc20.go 55
x/fungible/client/cli/query_foreign_coins.go 55
x/observer/client/cli/tx_update_observer.go 55
zetaclient/out_tx_processor_manager.go 54
x/observer/client/cli/query_observers.go 54
x/crosschain/client/cli/cli_last_block_height.go 54
x/observer/types/message_update_observer.go 54
x/crosschain/types/message_add_to_out_tx_tracker.go 54
x/observer/client/cli/cli_node_account.go 54
cmd/zetaclientd/main.go 54
x/fungible/keeper/msg_server_update_zrc20_paused_status.go 53
x/observer/types/message_add_observer.go 53
x/crosschain/types/message_add_to_in_tx_tracker.go 52
x/emissions/keeper/withdrawable_emissions.go 52
x/fungible/keeper/msg_server_deploy_fungible_coin_zrc20.go 52
common/bitcoin/proof.go 52
x/crosschain/types/message_set_node_keys.go 52
x/observer/types/core_params_privnet.go 52
x/emissions/keeper/block_rewards_components.go 51
x/fungible/types/message_update_zrc20_paused_status.go 51
x/fungible/types/message_deploy_fungible_coin_zrc20.go 50
x/crosschain/types/status.go 50
x/observer/client/cli/tx_update_core_params.go 49
x/observer/types/message_add_blame_vote.go 49
cmd/zetacored/addr_converter.go 48
x/fungible/types/message_update_zrc20_withdraw_fee.go 48
common/default_chains_privnet.go 48
x/fungible/types/message_update_contract_bytecode.go 47
zetaclient/config/config_mainnet.go 47
x/crosschain/keeper/in_tx_hash_to_cctx.go 47
zetaclient/config/config_privnet.go 46
x/observer/keeper/crosschain_flags.go 46
x/crosschain/types/message_migrate_tss_funds.go 46
x/observer/keeper/params.go 46
x/observer/keeper/msg_server_add_observer.go 46
rpc/namespaces/ethereum/eth/filters/subscription.go 45
x/crosschain/keeper/msg_server_add_to_intx_tracker.go 45
x/fungible/keeper/grpc_query_foreign_coins.go 45
x/fungible/types/message_update_zrc20_liquidity_cap.go 44
x/observer/types/genesis.go 44
cmd/zetacored/main.go 43
x/fungible/keeper/evm_hooks.go 43
x/crosschain/types/message_gas_price_voter.go 43
x/crosschain/types/cctx_utils.go 43
x/observer/types/parsers.go 43
x/crosschain/types/message_tss_voter.go 43
x/crosschain/keeper/zeta_conversion_rate.go 43
x/crosschain/types/message_update_tss_address.go 42
x/observer/keeper/grpc_query_params.go 42
cmd/zetacored/parsers.go 42
x/crosschain/types/codec.go 42
x/fungible/types/message_update_system_contract.go 41
rpc/namespaces/ethereum/net/api.go 41
x/crosschain/types/message_remove_from_out_tx_tracker.go 41
x/crosschain/types/message_nonce_voter.go 41
x/observer/keeper/msg_server_update_crosschain_flags.go 41
zetaclient/chainmetrics.go 41
cmd/zetaclientd/start_utils.go 41
x/observer/module_simulation.go 40
x/observer/client/cli/tx_add_observer.go 40
app/ante/vesting.go 40
x/observer/keeper/events.go 40
x/observer/types/observer_mapper.go 39
rpc/types/query_client.go 39
x/crosschain/client/cli/query.go 39
x/observer/keeper/msg_server_add_blame_vote.go 38
x/observer/types/keys.go 38
rpc/namespaces/ethereum/txpool/api.go 37
x/fungible/types/message_remove_foreign_coin.go 37
x/observer/client/cli/tx_permission_flags.go 37
x/observer/types/message_update_keygen.go 37
x/observer/client/cli/tx_update_keygen.go 36
x/crosschain/types/errors.go 36
x/fungible/client/cli/tx_update_zrc20_liquidity_cap.go 36
.github/actions/deploy-binaries/functions 36
x/crosschain/client/cli/query_get_tss_address.go 35
x/observer/keeper/keeper_keygen.go 35
x/emissions/types/keys.go 34
common/utils.go 34
x/observer/client/cli/query.go 34
common/address.go 33
x/observer/abci.go 33
app/ante/interfaces.go 33
x/fungible/types/codec.go 32
x/emissions/types/expected_keepers.go 32
x/observer/client/cli/query_ballot.go 32
x/fungible/client/cli/tx_remove_foreign_coin.go 32
x/emissions/client/cli/query_show_available_emissions.go 32
x/fungible/types/errors.go 32
zetaclient/authz_signer.go 32
x/observer/types/codec.go 32
x/observer/types/errors.go 31
rpc/namespaces/ethereum/miner/api.go 31
x/observer/keeper/msg_server_update_keygen.go 30
x/crosschain/types/params.go 30
x/fungible/module_simulation.go 29
.github/actions/cosmovisor-upgrade/functions 29
x/emissions/client/cli/query_get_emmisons_factors.go 29
x/observer/types/expected_keepers.go 29
x/crosschain/module_simulation.go 29
common/chain_network.go 29
rpc/namespaces/ethereum/miner/unsupported.go 29
x/fungible/types/zrc20.go 29
x/emissions/client/cli/query_list_balances.go 29
x/crosschain/client/cli/cli_zeta_height.go 29
x/observer/client/cli/query_show_observer_count.go 29
x/observer/keeper/msg_server_update_core_params.go 29
x/crosschain/client/cli/tx.go 29
cmd/zetacored/flags.go 28
app/setup_handlers.go 28
x/observer/migrations/v4/migrate.go 28
cmd/zetacored/config/config.go 28
x/fungible/types/params.go 28
x/observer/migrations/v3/migrate.go 28
x/observer/client/cli/cli_supported_chains.go 27
x/emissions/types/events.go 27
x/observer/client/cli/cli_keygen.go 27
x/observer/client/cli/query_permission_flags.go 27
x/crosschain/migrations/v3/migrate.go 27
x/fungible/client/cli/query.go 26
rpc/backend/filters.go 26
x/observer/client/cli/tx.go 26
x/emissions/client/cli/query_params.go 26
x/observer/client/cli/query_params.go 26
x/crosschain/client/cli/cli_params.go 26
rpc/types/addrlock.go 26
x/fungible/client/cli/query_params.go 26
x/fungible/genesis.go 25
x/fungible/client/cli/query_system_contract.go 25
x/fungible/types/keys.go 25
x/observer/keeper/migrator.go 24
x/crosschain/keeper/grpc_query_in_tx_tracker.go 23
common/authz_tx_types.go 23
x/fungible/keeper/msg_server_udpate_zrc20_liquidity_cap.go 22
x/observer/keeper/keeper_block_header.go 22
x/fungible/client/cli/tx.go 22
x/fungible/types/genesis.go 22
x/crosschain/keeper/keeper_last_zeta_height.go 22
x/observer/migrations/v2/migrate.go 21
.github/actions/cosmovisor-upgrade/readme.md 21
x/emissions/client/cli/query.go 21
x/fungible/keeper/msg_server_remove_foreign_coin.go 21
x/observer/keeper/grpc_query_show_observer_count.go 21
x/crosschain/keeper/keeper_params.go 21
x/crosschain/keeper/migrator.go 20
x/observer/types/crosschain_flags.go 20
x/fungible/keeper/grpc_query_system_contract.go 19
x/observer/keeper/grpc_query_crosschain_flags.go 19
x/emissions/keeper/grpc_query_show_available_emissions.go 19
x/emissions/genesis.go 18
cmd/zetaclientd/root.go 18
zetaclient/block_height.go 18
rpc/namespaces/ethereum/web3/api.go 18
app/params/proto.go 18
.github/pull_request_template.md 17
x/emissions/client/cli/tx.go 17
cmd/config_privnet.go 16
x/emissions/keeper/grpc_query_list_balances.go 15
x/emissions/keeper/grpc_query_get_emmisons_factors.go 15
x/emissions/types/codec.go 15
common/coin.go 15
cmd/zetaclientd/version.go 15
x/emissions/keeper/grpc_query_params.go 15
x/fungible/keeper/grpc_query_params.go 15
.github/actions/upload-to-s3/readme.md 14
x/fungible/keeper/zeta.go 14
x/crosschain/keeper/foreign_coins.go 13
x/fungible/types/key_foreign_coins.go 13
x/emissions/keeper/msg_server.go 13
x/crosschain/types/key_in_tx_hash_to_cctx.go 13
x/fungible/types/gas_stablity_pool.go 13
app/prefix.go 13
x/fungible/keeper/begin_blocker_deploy_system_contracts.go 13
cmd/config_mainnet.go 12
x/observer/types/utils.go 12
app/params/encoding.go 12
x/fungible/types/evm.go 12
x/observer/simulation/simap.go 12
x/observer/keeper/keeper_supported_chain.go 11
x/emissions/keeper/params.go 11
x/observer/keeper/msg_server.go 11
x/fungible/keeper/msg_server.go 11
x/crosschain/keeper/msg_server.go 11
x/crosschain/types/client_ctx.go 11
cmd/zetacored/config/prefix_mainnet.go 11
x/fungible/keeper/params.go 11
zetaclient/types/account_resp.go 10
.github/actions/build-binaries/readme.md 10
x/emissions/types/genesis.go 10
app/encoding.go 9
x/emissions/types/errors.go 9
app/genesis.go 9
zetaclient/errors.go 8
common/version.go 7
zetaclient/types/ethish.go 7
zetaclient/supported_chains.go 7
zetaclient/misc.go 7
x/crosschain/migrations/v2/legacytypes.go 6
x/fungible/keeper/grpc_query.go 5
x/observer/keeper/grpc_query.go 5
common/commands.go 5
x/emissions/keeper/grpc_query.go 5
x/crosschain/keeper/grpc_query.go 5
zetaclient/types/telemetry_types.go 4
zetaclient/types/defs.go 4
x/emissions/types/types.go 1
x/observer/types/message_set_supported_chains.go 1

Out of scope

Please note that ALL the files are in scope, but the files listed in the previous section are where you should actually looks for bugs.

Scoping Details

- If you have a public code repo, please share it here: https://github.com/zeta-chain/node and https://github.com/zeta-chain/protocol-contracts/tree/main/contracts  
- How many contracts are in scope?: 13   
- Total SLoC for these contracts?: 0  
- How many external imports are there?:  
- How many separate interfaces and struct definitions are there for the contracts within scope?:  
- Does most of your code generally use composition or inheritance?: Inheritance  
- How many external calls?: 0   
- What is the overall line coverage percentage provided by your tests?:
- Is this an upgrade of an existing system?: False
- Check all that apply (e.g. timelock, NFT, AMM, ERC20, rollups, etc.): ERC-20 Token, Multi-Chain
- Is there a need to understand a separate part of the codebase / get context in order to audit this part of the protocol?: Yes   
- Please describe required context: You need to understand how the protocol works to understand how the cross chain elements come into play.   
- Does it use an oracle?: No 
- Describe any novel or unique curve logic or mathematical models your code uses: Protocol using shared TSS key to manage assets using decentralized validators 
- Is this either a fork of or an alternate implementation of another project?: True, Some concepts borrowed from ThorChain and Evmos   
- Does it use a side-chain?: False
- Describe any specific areas you would like addressed: Try to break cross-chain elements, ZRC20, accounting between external chain state and Zetachain state

zetachin's People

Contributors

itsmetechjay avatar bytes032 avatar cloudellie avatar lumtis avatar kartoonjoy avatar 0xean avatar knownfactc4 avatar

Watchers

Enlighment1997 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.