CLI for configuring LayerZero OApp contracts
npm install @layerzerolabs/devtools-cliThis package provides a network-agnostic CLI interface for configuring LayerZero OApp contracts.
---
Please note that this package is in a beta state and backwards-incompatible changes might be introduced in future releases. The functionality is not yet on par with @layerzerolabs/toolbox-hardhat. While we strive to comply to semver, we can not guarantee to avoid breaking changes in minor releases.
---
#### Installation
The CLI is distributed as an NPM package, we recommend the following ways of running it:
``bash`
npx @layerzerolabs/devtools-cli@latestor
yarn @layerzerolabs/devtools-clior
pnpm @layerzerolabs/devtools-clior
bunx @layerzerolabs/devtools-cli
#### Configuration
The configuration of the CLI consists of two parts:
- OApp configuration that describes the desired state of your OApp (typically called layerzero.config.ts)layerzero.setup.ts
- CLI setup that creates the necessary functionality for the CLI to run - SDKs, configuration functions, signing functions (typically called )
The main difference between this CLI and @layerzerolabs/toolbox-hardhat is the layerzero.setup.ts file. While in @layerzerolabs/toolbox-hardhat lot of the functionality can be inferred based on hardhat, it is not possible to infer this functionality in a generic CLI environment.
##### CLI setup
The following is an example of a setup file that loads the EVM functionality based on hardhat.
`typescript
import {
createConnectedContractFactory,
createSignerFactory,
createDefaultContext,
} from "@layerzerolabs/devtools-evm-hardhat";
import { createOAppFactory } from "@layerzerolabs/ua-devtools-evm";
import type { CLISetup } from "@layerzerolabs/devtools-cli";
/**
* Since we are not in hardhat CLI, we'll need to create the context first
*/
createDefaultContext();
/**
* This is a setup file for @layerzerolabs/devtools-cli.
*
* At the moment, @layerzerolabs/devtools-cli is in development
* and will be available
*/
const setup: CLISetup = {
createSdk: createOAppFactory(createConnectedContractFactory()),
createSigner: createSignerFactory(),
};
export default setup;
``