-
Notifications
You must be signed in to change notification settings - Fork 60
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
73 changed files
with
5,224 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
|
||
|
||
# Contents | ||
- [evm](/contracts/evm) | ||
- [zevm](/contracts/zevm) |
Oops, something went wrong.