-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Swap: add Solana interact task #192
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 |
---|---|---|
@@ -1,183 +1,15 @@ | ||
# Template for a ZetaChain Hardhat Project | ||
|
||
This is a simple Hardhat template that provides a starting point for developing | ||
smart contract applications on the ZetaChain blockchain. | ||
|
||
## Prerequisites | ||
|
||
Before getting started, ensure that you have | ||
[Node.js](https://nodejs.org/en/download) and [Yarn](https://yarnpkg.com/) | ||
installed on your system. | ||
# ZetaChain Contracts Template | ||
|
||
## Getting Started | ||
|
||
To get started, install the necessary dependencies: | ||
Install dependencies: | ||
|
||
``` | ||
yarn | ||
``` | ||
|
||
## Hardhat Tasks | ||
|
||
This template includes Hardhat tasks that can be used make it easier to build | ||
with ZetaChain. | ||
|
||
### Generating a Random Wallet | ||
|
||
To generate a random wallet: | ||
|
||
``` | ||
npx hardhat account --save | ||
``` | ||
|
||
This command generates a random wallet, prints information about the wallet to | ||
the terminal, and saves the private key to a `.env` file to make it accessible | ||
to Hardhat. If you don't want to save the wallet (for example, if you just need | ||
an address to send tokens to for testing purposes), you can run the command | ||
without the `--save` flag. | ||
|
||
### Querying for Token Balances | ||
|
||
To query for token balances: | ||
|
||
``` | ||
npx hardhat balances | ||
``` | ||
|
||
This command queries token balances for the account address derived from the | ||
private key specified in the `.env`. | ||
|
||
If you want to query for token balances for a different account, you can use the | ||
`--address` flag: | ||
|
||
``` | ||
npx hardhat balances --address ADDRESS | ||
``` | ||
|
||
### Requesting Tokens from the Faucet | ||
|
||
To request ZETA tokens from the faucet: | ||
|
||
``` | ||
npx hardhat faucet | ||
``` | ||
|
||
This command requests tokens from the faucet for the account address derived | ||
from the private key specified in the `.env`. Tokens sent to the address on | ||
ZetaChain. To specify a different chain use a flag: | ||
|
||
``` | ||
npx hardhat faucet --chain goerli_testnet | ||
``` | ||
|
||
You can also specify a different address to send the tokens to: | ||
|
||
``` | ||
npx hardhat faucet --address ADDRESS | ||
``` | ||
|
||
Alternatively, you can install a standalone faucet CLI: | ||
|
||
``` | ||
yarn global add @zetachain/faucet-cli@athens3 | ||
``` | ||
|
||
You can then use it with the following command: | ||
|
||
``` | ||
zetafaucet -h | ||
``` | ||
|
||
### Creating an Omnichain Contract | ||
|
||
To create a new omnichain contract: | ||
|
||
``` | ||
npx hardhat omnichain MyContract | ||
``` | ||
|
||
This command creates a new omnichain contract in `contracts/MyContract.sol`, a | ||
task to deploy the contract in `tasks/deploy.ts`, and a task to interact with | ||
the contract in `tasks/interact.ts`. | ||
|
||
When an omnichain contract is called, it can receive data in the `data` field of | ||
a transaction. This data is passed to the `message` parameter of the contract's | ||
`onCrossChainCall` function. To specify the fields of the `message` parameter, | ||
use positional arguments: | ||
|
||
``` | ||
npx hardhat omnichain MyContract recepient:address description quantity:uint256 | ||
``` | ||
|
||
A field may have a type specified after the field name, separated by a colon. If | ||
no type is specified, the type defaults to `bytes32`. | ||
|
||
Learn more about omnichain contracts by following the | ||
[tutorials](https://www.zetachain.com/docs/developers/omnichain/tutorials/hello/). | ||
|
||
### Tracking a Cross-Chain Transaction | ||
|
||
After broadcasting a cross-chain transaction on a connected chain either to a | ||
cross-chain messaging contract or to trigger an omnichain contract, you can | ||
track its status: | ||
|
||
``` | ||
npx hardhat cctx --tx TX_HASH | ||
``` | ||
|
||
### Verifying a Contract | ||
|
||
To verify a contract deployed on ZetaChain: | ||
|
||
``` | ||
npx hardhat verify:zeta --contract ADDRESS | ||
``` | ||
|
||
Select the contract to verify: | ||
|
||
``` | ||
? Select a contract to verify: (Use arrow keys) | ||
@zetachain/zevm-protocol-contracts/contracts/interfaces/IZRC20.sol:IZRC20 | ||
@zetachain/zevm-protocol-contracts/contracts/interfaces/zContract.sol:zContract | ||
❯ contracts/Withdraw.sol:Withdraw | ||
``` | ||
|
||
After the confirmation the contract will be verified. | ||
|
||
### Sending Tokens | ||
|
||
Sending ZETA from ZetaChain to Goerli: | ||
|
||
``` | ||
npx hardhat send-zeta --amount 1 --network zeta_testnet --destination goerli_testnet | ||
``` | ||
|
||
Sending ZETA from Goerli to ZetaChain: | ||
|
||
``` | ||
npx hardhat send-zeta --amount 1 --network goerli_testnet --destination zeta_testnet | ||
``` | ||
|
||
Depositing gETH to ZetaChain as ZRC-20: | ||
|
||
``` | ||
npx hardhat send-zrc20 --amount 1 --network goerli_testnet --destination zeta_testnet | ||
``` | ||
|
||
Withdrawing ZRC-20 from ZetaChain go Goerli as gETH: | ||
|
||
``` | ||
npx hardhat send-zrc20 --amount 1 --network zeta_testnet --destination goerli_testnet | ||
``` | ||
|
||
Depositing tBTC from the Bitcoin testnet to ZetaChain: | ||
|
||
``` | ||
npx hardhat send-btc --amount 1 --recipient TSS_ADDRESS --memo RECIPIENT_ADDRESS_WITHOUT_0x | ||
``` | ||
|
||
## Next Steps | ||
|
||
To learn more about building decentralized apps on ZetaChain, follow the | ||
tutorials available in | ||
[the documentation](https://www.zetachain.com/docs/developers/overview/). | ||
Ready to dive in? Follow our [**🚀 smart contract | ||
tutorials**](https://www.zetachain.com/docs/developers/tutorials/intro/) to | ||
start building universal app contracts. |
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
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 |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity 0.5.16; | ||
|
||
import "@zetachain/toolkit/contracts/shared/TestUniswapCore.sol"; | ||
import "@zetachain/toolkit/contracts/shared/TestUniswapCore.sol"; |
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 |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// SPDX-License-Identifier: MIT | ||
pragma solidity 0.8.7; | ||
|
||
import "@zetachain/toolkit/contracts/shared/TestUniswapRouter.sol"; | ||
import "@zetachain/toolkit/contracts/shared/TestUniswapRouter.sol"; |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add comments explaining the new
params
structure.The changes improve the clarity and consistency of the function but could benefit from additional comments explaining the new
params
structure.Add comments to explain the new
params
structure.Apply this diff to enhance the function:
Committable suggestion