Skip to content

Commit

Permalink
docs: update protocol contract docs (#345)
Browse files Browse the repository at this point in the history
Co-authored-by: fadeev <[email protected]>
  • Loading branch information
github-actions[bot] and fadeev authored Jun 4, 2024
1 parent 084972d commit b7dd84f
Show file tree
Hide file tree
Showing 72 changed files with 5,223 additions and 0 deletions.
90 changes: 90 additions & 0 deletions src/pages/developers/architecture/contracts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# ZetaChain Protocol Contracts

This repository contains ZetaChain protocol contracts: Solidity source code,
generated Go bindings, deployed contract addresses and helper utilities.

## Importing Protocol Contracts

As a dApp developer, you can install the protocol contracts package into your
project:

```
yarn add --dev @zetachain/protocol-contracts
```

Getting the TSS address on BSC testnet:

```ts
import { getAddress } from "@zetachain/protocol-contracts";

getAddress("tss", "zeta_testnet");
```

Getting a ZRC-20 BSC USDT on ZetaChain Mainnet Beta:

```ts
import { getAddress } from "@zetachain/protocol-contracts";

getAddress("zrc20", "zeta_mainnet", "USDT.BSC");
```

The third argument (symbol) is only used when querying ZRC-20 addresses to
specify which token address is needed.

To view a table of all contracts visit the [Contract Addresses](https://www.zetachain.com/docs/reference/contracts/) page in the docs.

Importing
[`ZetaInterfaces`](https://www.zetachain.com/docs/developers/cross-chain-messaging/connector/)
and `ZetaInteractor` for cross-chain messaging:

```solidity
import "@zetachain/protocol-contracts/contracts/evm/interfaces/ZetaInterfaces.sol";
import "@zetachain/protocol-contracts/contracts/evm/tools/ZetaInteractor.sol";
```

Importing [ZRC20](https://www.zetachain.com/docs/developers/tokens/zrc20/)
and the [system
contract](https://www.zetachain.com/docs/developers/omnichain/system-contract/)
for omni-chain smart contracts:

```solidity
import "@zetachain/protocol-contracts/contracts/zevm/interfaces/IZRC20.sol";
import "@zetachain/protocol-contracts/contracts/zevm/interfaces/zContract.sol";
import "@zetachain/protocol-contracts/contracts/zevm/SystemContract.sol";
```

## Prerequisites for Development

Before you can contribute to this project, you must have the following installed:

- [Node.js](https://nodejs.org/)
- [Yarn](https://yarnpkg.com/)
- [jq](https://stedolan.github.io/jq/)
- [abigen](https://geth.ethereum.org/docs/tools/abigen)

## Compiling Contracts

To compile the contracts, run the following command:

```
yarn compile
```

This will compile the Solidity contracts and output the resulting JSON artifacts
to the `artifacts` directory.

## Generating Go Bindings and Contract Addresses

To generate Go bindings for the Solidity contracts and fetch, run the following command:

```
yarn generate
```

This will use `abigen` to generate Go bindings for the contracts and output the
resulting Go files to the `pkg` directory.

## Contributing

If you would like to contribute to this project, please fork the repository and
submit a pull request. All contributions are welcome!
72 changes: 72 additions & 0 deletions src/pages/developers/architecture/contracts/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Summary
- [Home](README.md)
# contracts
- [❱ evm](contracts/evm/README.md)
- [❱ interfaces](contracts/evm/interfaces/README.md)
- [ConnectorErrors](contracts/evm/interfaces/ConnectorErrors.sol/interface.ConnectorErrors.md)
- [ZetaErrors](contracts/evm/interfaces/ZetaErrors.sol/interface.ZetaErrors.md)
- [ZetaInteractorErrors](contracts/evm/interfaces/ZetaInteractorErrors.sol/interface.ZetaInteractorErrors.md)
- [ZetaInterfaces](contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaInterfaces.md)
- [ZetaConnector](contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaConnector.md)
- [ZetaReceiver](contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaReceiver.md)
- [ZetaTokenConsumer](contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaTokenConsumer.md)
- [ZetaCommonErrors](contracts/evm/interfaces/ZetaInterfaces.sol/interface.ZetaCommonErrors.md)
- [ZetaNonEthInterface](contracts/evm/interfaces/ZetaNonEthInterface.sol/interface.ZetaNonEthInterface.md)
- [❱ testing](contracts/evm/testing/README.md)
- [Victim](contracts/evm/testing/AttackerContract.sol/interface.Victim.md)
- [AttackerContract](contracts/evm/testing/AttackerContract.sol/contract.AttackerContract.md)
- [ERC20Mock](contracts/evm/testing/ERC20Mock.sol/contract.ERC20Mock.md)
- [INonfungiblePositionManager](contracts/evm/testing/TestUniswapV3Contracts.sol/interface.INonfungiblePositionManager.md)
- [IPoolInitializer](contracts/evm/testing/TestUniswapV3Contracts.sol/interface.IPoolInitializer.md)
- [ZetaInteractorMock](contracts/evm/testing/ZetaInteractorMock.sol/contract.ZetaInteractorMock.md)
- [ZetaReceiverMock](contracts/evm/testing/ZetaReceiverMock.sol/contract.ZetaReceiverMock.md)
- [❱ tools](contracts/evm/tools/README.md)
- [❱ interfaces](contracts/evm/tools/interfaces/README.md)
- [ConcentratedLiquidityPoolFactory](contracts/evm/tools/interfaces/TridentConcentratedLiquidityPoolFactory.sol/interface.ConcentratedLiquidityPoolFactory.md)
- [IPoolRouter](contracts/evm/tools/interfaces/TridentIPoolRouter.sol/interface.IPoolRouter.md)
- [Ownable](contracts/evm/tools/ImmutableCreate2Factory.sol/interface.Ownable.md)
- [ImmutableCreate2Factory](contracts/evm/tools/ImmutableCreate2Factory.sol/contract.ImmutableCreate2Factory.md)
- [ZetaInteractor](contracts/evm/tools/ZetaInteractor.sol/abstract.ZetaInteractor.md)
- [ZetaTokenConsumerUniV3Errors](contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md)
- [WETH9](contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.WETH9.md)
- [ISwapRouterPancake](contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/interface.ISwapRouterPancake.md)
- [ZetaTokenConsumerPancakeV3](contracts/evm/tools/ZetaTokenConsumerPancakeV3.strategy.sol/contract.ZetaTokenConsumerPancakeV3.md)
- [ZetaTokenConsumerTridentErrors](contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.ZetaTokenConsumerTridentErrors.md)
- [WETH9](contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/interface.WETH9.md)
- [ZetaTokenConsumerTrident](contracts/evm/tools/ZetaTokenConsumerTrident.strategy.sol/contract.ZetaTokenConsumerTrident.md)
- [ZetaTokenConsumerUniV2Errors](contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/interface.ZetaTokenConsumerUniV2Errors.md)
- [ZetaTokenConsumerUniV2](contracts/evm/tools/ZetaTokenConsumerUniV2.strategy.sol/contract.ZetaTokenConsumerUniV2.md)
- [ZetaTokenConsumerUniV3Errors](contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.ZetaTokenConsumerUniV3Errors.md)
- [WETH9](contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/interface.WETH9.md)
- [ZetaTokenConsumerUniV3](contracts/evm/tools/ZetaTokenConsumerUniV3.strategy.sol/contract.ZetaTokenConsumerUniV3.md)
- [ERC20Custody](contracts/evm/ERC20Custody.sol/contract.ERC20Custody.md)
- [ZetaEth](contracts/evm/Zeta.eth.sol/contract.ZetaEth.md)
- [ZetaNonEth](contracts/evm/Zeta.non-eth.sol/contract.ZetaNonEth.md)
- [ZetaConnectorBase](contracts/evm/ZetaConnector.base.sol/contract.ZetaConnectorBase.md)
- [ZetaConnectorEth](contracts/evm/ZetaConnector.eth.sol/contract.ZetaConnectorEth.md)
- [ZetaConnectorNonEth](contracts/evm/ZetaConnector.non-eth.sol/contract.ZetaConnectorNonEth.md)
- [❱ zevm](contracts/zevm/README.md)
- [❱ interfaces](contracts/zevm/interfaces/README.md)
- [IUniswapV2Router01](contracts/zevm/interfaces/IUniswapV2Router01.sol/interface.IUniswapV2Router01.md)
- [IUniswapV2Router02](contracts/zevm/interfaces/IUniswapV2Router02.sol/interface.IUniswapV2Router02.md)
- [IWETH9](contracts/zevm/interfaces/IWZETA.sol/interface.IWETH9.md)
- [IZRC20](contracts/zevm/interfaces/IZRC20.sol/interface.IZRC20.md)
- [zContext](contracts/zevm/interfaces/zContract.sol/struct.zContext.md)
- [zContract](contracts/zevm/interfaces/zContract.sol/interface.zContract.md)
- [❱ testing](contracts/zevm/testing/README.md)
- [SystemContractErrors](contracts/zevm/testing/SystemContractMock.sol/interface.SystemContractErrors.md)
- [SystemContractMock](contracts/zevm/testing/SystemContractMock.sol/contract.SystemContractMock.md)
- [ISystem](contracts/zevm/Interfaces.sol/interface.ISystem.md)
- [IZRC20](contracts/zevm/Interfaces.sol/interface.IZRC20.md)
- [IZRC20Metadata](contracts/zevm/Interfaces.sol/interface.IZRC20Metadata.md)
- [CoinType](contracts/zevm/Interfaces.sol/enum.CoinType.md)
- [SystemContractErrors](contracts/zevm/SystemContract.sol/interface.SystemContractErrors.md)
- [SystemContract](contracts/zevm/SystemContract.sol/contract.SystemContract.md)
- [UniswapImports](contracts/zevm/Uniswap.sol/contract.UniswapImports.md)
- [UniswapImports](contracts/zevm/UniswapPeriphery.sol/contract.UniswapImports.md)
- [WETH9](contracts/zevm/WZETA.sol/contract.WETH9.md)
- [ZRC20Errors](contracts/zevm/ZRC20.sol/interface.ZRC20Errors.md)
- [ZRC20](contracts/zevm/ZRC20.sol/contract.ZRC20.md)
- [ZetaInterfaces](contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaInterfaces.md)
- [ZetaReceiver](contracts/zevm/ZetaConnectorZEVM.sol/interface.ZetaReceiver.md)
- [ZetaConnectorZEVM](contracts/zevm/ZetaConnectorZEVM.sol/contract.ZetaConnectorZEVM.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@


# Contents
- [evm](/contracts/evm)
- [zevm](/contracts/zevm)
Loading

0 comments on commit b7dd84f

Please sign in to comment.