UNPKG

@iexec/iapp

Version:

A CLI to guide you through the process of building an iExec iApp

195 lines (136 loc) 5.33 kB
# iExec iApp Generator CLI This CLI provides an interface to guide you through different steps: - Create a simple app with the necessary structure to run on a decentralized worker - Test it locally (with Docker) - Deploy your iApp as a TEE app on the iExec protocol ## Prerequisites - Node.js v20 or higher - A directory where you want to init your iApp. If not, create a new folder. (`iapp init` will also propose you to do so) - Docker > ℹ️ For MacOS users > > This tool use `docker buildx` to build images for `linux/amd64` platform > compatible with iExec's decentralized workers. > > Make sure your docker builder supports AMD64 architecture: > > ```sh > docker buildx inspect --bootstrap | grep -i platforms > ``` > > The output should include `linux/amd64` in the list of supported platforms. If > not update te the latest Docker Desktop version which includes these > requirements. ## Install ```sh npm i -g @iexec/iapp ``` > ℹ️ when you install this package for the fist time, run `iapp completion` to > generate a completion script for the `iapp` command ## Commands ### `--help` Command: ```sh iapp --help ``` Description: Display help information about the `iapp` CLI and its available commands and options. This option provides a quick reference guide for users to understand how to use each command effectively. ### `init` Command: ```sh iapp init ``` Description: Initialize the framework with the necessary structure to build your iexec decentralized application. --- ### `test` Command: ```sh iapp test [--args <input>] [--inputFile <url...>] [--requesterSecret <key=value...>] ``` Description: Test your iApp locally Options: - use `--args <args>` to provide input [arguments](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#args) to your iApp during testing (use quotes to provide multiple args). - use `--inputFile <url...>` to provide one or more [input files](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#input-files) to your iApp during testing. - use `--requesterSecret <key=value...>` to provide one or more [requester secrets](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#requester-secrets) to your iApp during testing. - use `--protectedData [mock-name]` if your iApp processes [protected data](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#protected-data), include the `--protectedData` option followed by the name of a protected data mock. > ℹ️ when you run `iapp test` for the first time and your app is using an > [app secret](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#app-developer-secret), > you will be asked wether or not you want to attach an app secret to your app. --- ### `deploy` Command: ```sh iapp deploy [--chain <input>] ``` Description: Deploy your iApp on the iExec protocol in debug mode. Options: - use `--chain` Specify the blockchain on which the iApp will be deployed (overrides defaultChain configuration which is `bellecour`). Possible values are `bellecour|arbitrum-sepolia-testnet|arbitrum-mainnet` > [!IMPORTANT] To use a chain other than `bellecour`, you must pass (or set in > your system) `EXPERIMENTAL_NETWORKS=true` before the `iApp` command. --- ### `run` Command: ```sh iapp run <iApp-address> [--args <input>] [--protectedData <protectedData-address>] [--inputFile <url...>] [--chain <input>] ``` Description: Run your deployed iApp. Provide the address of your iApp (`<iApp-address>`). Options: - use `--args <args>` to provide input [arguments](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#args) to your iApp during run (use quotes to provide multiple args). - use `--inputFile <url...>` to provide one or more [input files](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#input-files) to your iApp during run. - use `--requesterSecret <key=value...>` to provide one or more [requester secrets](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#requester-secrets) to your iApp during run. - use `--protectedData <address>` if your iApp processes [protected data](https://protocol.docs.iex.ec/for-developers/technical-references/application-io#protected-data), include the `--protectedData` option followed by the address of the protected data. - use `--chain` Specify the blockchain on which the iApp will be deployed (overrides defaultChain configuration which is `bellecour`). Possible values are `bellecour|arbitrum-sepolia-testnet|arbitrum-mainnet` > [!IMPORTANT] To use a chain other than `bellecour`, you must pass (or set in > your system) `EXPERIMENTAL_NETWORKS=true` before the `iApp` command. --- ### `debug` Command: ```sh iapp debug <taskId> ``` Description: Retrieve detailed execution logs from worker nodes for a specific task. --- ### `mock` Command: ```sh iapp mock <inputType> ``` Description: Create a mocked input for test. --- ### `wallet` Command: ```sh iapp wallet <action> ``` Description: Manage wallet. Options for `<action>` : - `import` import a new wallet by providing a private key. - `select` select a wallet from your personnal keystore.