Skip to content

Latest commit

 

History

History
124 lines (85 loc) · 3.78 KB

README.md

File metadata and controls

124 lines (85 loc) · 3.78 KB

LayerZero

Homepage | Docs | Developers

OFT Example

Quickstart | Configuration | Message Execution Options | Endpoint Addresses

Template project for getting started with LayerZero's OFT contract development.

1) Developing Contracts

carter@laptop:~/Documents/frax/frax-oft-legacy$ npx hardhat lz:deploy --tags OFTS

carter@laptop:~/Documents/frax/frax-oft-legacy$ npx hardhat lz:oapp:wire --oapp-config layerzero-fraxeth.config.ts 

carter@laptop:~/Documents/frax/frax-oft-legacy$ npx hardhat lz:ownable:transfer-ownership --oapp-config layerzero-fraxeth.config.ts 

Installing dependencies

We recommend using pnpm as a package manager (but you can of course use a package manager of your choice):

pnpm install

Compiling your contracts

This project supports both hardhat and forge compilation. By default, the compile command will execute both:

pnpm compile

If you prefer one over the other, you can use the tooling-specific commands:

pnpm compile:forge
pnpm compile:hardhat

Or adjust the package.json to for example remove forge build:

- "compile": "$npm_execpath run compile:forge && $npm_execpath run compile:hardhat",
- "compile:forge": "forge build",
- "compile:hardhat": "hardhat compile",
+ "compile": "hardhat compile"

Running tests

Similarly to the contract compilation, we support both hardhat and forge tests. By default, the test command will execute both:

pnpm test

If you prefer one over the other, you can use the tooling-specific commands:

pnpm test:forge
pnpm test:hardhat

Or adjust the package.json to for example remove hardhat tests:

- "test": "$npm_execpath test:forge && $npm_execpath test:hardhat",
- "test:forge": "forge test",
- "test:hardhat": "$npm_execpath hardhat test"
+ "test": "forge test"

2) Deploying Contracts

Set up deployer wallet/account:

  • Rename .env.example -> .env
  • Choose your preferred means of setting up your deployer wallet/account:
MNEMONIC="test test test test test test test test test test test junk"
or...
PRIVATE_KEY="0xabc...def"
  • Fund this address with the corresponding chain's native tokens you want to deploy to.

To deploy your contracts to your desired blockchains, run the following command in your project's folder:

npx hardhat lz:deploy

More information about available CLI arguments can be found using the --help flag:

npx hardhat lz:deploy --help

3) Verifying your contracts

npx @layerzerolabs/verify-contract --network [network] -k [api key]

By following these steps, you can focus more on creating innovative omnichain solutions and less on the complexities of cross-chain communication.



Join our community on Discord | Follow us on Twitter