{
  "version": "0.1.16",
  "commands": {
    "phala:check": {
      "id": "phala:check",
      "description": "Check project configuration",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %>"
      ],
      "flags": {},
      "args": {}
    },
    "phala:init": {
      "id": "phala:init",
      "description": "Generate a new Phat Contract environment",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> [projectName]"
      ],
      "flags": {
        "verbose": {
          "name": "verbose",
          "type": "boolean",
          "char": "v",
          "allowNo": false
        }
      },
      "args": {
        "projectName": {
          "name": "projectName",
          "description": "directory name of new project",
          "required": true
        }
      }
    },
    "phala:account:create": {
      "id": "phala:account:create",
      "description": "Create a dev account",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> -a [ALIAS] -p [PASS_PHRASE] -n [bool]"
      ],
      "flags": {
        "alias": {
          "name": "alias",
          "type": "option",
          "char": "a",
          "summary": "Account alias",
          "required": true,
          "multiple": false
        },
        "passphrase": {
          "name": "passphrase",
          "type": "option",
          "char": "p",
          "summary": "Passphrase used to protect keyring",
          "multiple": false
        },
        "no-passphrase": {
          "name": "no-passphrase",
          "type": "boolean",
          "char": "n",
          "summary": "Force no passphrase (prompted if not specified)",
          "allowNo": false
        }
      },
      "args": {}
    },
    "phala:account:list": {
      "id": "phala:account:list",
      "description": "List dev accounts stored in config",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "flags": {
        "columns": {
          "name": "columns",
          "type": "option",
          "description": "only show provided columns (comma-separated)",
          "multiple": false,
          "exclusive": [
            "extended"
          ]
        },
        "sort": {
          "name": "sort",
          "type": "option",
          "description": "property to sort by (prepend '-' for descending)",
          "multiple": false
        },
        "filter": {
          "name": "filter",
          "type": "option",
          "description": "filter property by partial string matching, ex: name=foo",
          "multiple": false
        },
        "csv": {
          "name": "csv",
          "type": "boolean",
          "description": "output is csv format [alias: --output=csv]",
          "allowNo": false,
          "exclusive": [
            "no-truncate"
          ]
        },
        "output": {
          "name": "output",
          "type": "option",
          "description": "output in a more machine friendly format",
          "multiple": false,
          "options": [
            "csv",
            "json",
            "yaml"
          ],
          "exclusive": [
            "no-truncate",
            "csv"
          ]
        },
        "extended": {
          "name": "extended",
          "type": "boolean",
          "char": "x",
          "description": "show extra columns",
          "allowNo": false,
          "exclusive": [
            "columns"
          ]
        },
        "no-truncate": {
          "name": "no-truncate",
          "type": "boolean",
          "description": "do not truncate output to fit screen",
          "allowNo": false,
          "exclusive": [
            "csv"
          ]
        },
        "no-header": {
          "name": "no-header",
          "type": "boolean",
          "description": "hide table header from output",
          "allowNo": false,
          "exclusive": [
            "csv"
          ]
        }
      },
      "args": {}
    },
    "phala:contract:call": {
      "id": "phala:contract:call",
      "description": "Call a Phat Contract",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> -c [CONTRACT_NAME] -t [CONTRACT_TYPE] -i [CONTRACT_ID] -r [REQUEST_TYPE] -m [METHOD] -n [NETWORK] -l [CLUSTER_ID] -a [ACCOUNT] -p [..ARGS]"
      ],
      "flags": {
        "contract": {
          "name": "contract",
          "type": "option",
          "char": "c",
          "summary": "Contract name",
          "required": true,
          "multiple": false
        },
        "type": {
          "name": "type",
          "type": "option",
          "char": "t",
          "summary": "",
          "multiple": false,
          "options": [
            "InkCode",
            "SidevmCode",
            "IndeterministicInkCode"
          ],
          "default": "InkCode"
        },
        "id": {
          "name": "id",
          "type": "option",
          "char": "i",
          "summary": "Contract ID",
          "required": true,
          "multiple": false
        },
        "request": {
          "name": "request",
          "type": "option",
          "char": "r",
          "summary": "Request type: transaction or query",
          "multiple": false,
          "options": [
            "query",
            "tx"
          ],
          "default": "query"
        },
        "method": {
          "name": "method",
          "type": "option",
          "char": "m",
          "summary": "Contract method to call (name)",
          "required": true,
          "multiple": false
        },
        "network": {
          "name": "network",
          "type": "option",
          "char": "n",
          "summary": "Target network to deploy (local default)",
          "multiple": false,
          "default": "local"
        },
        "cluster": {
          "name": "cluster",
          "type": "option",
          "char": "l",
          "summary": "Target cluster Id",
          "multiple": false
        },
        "account": {
          "name": "account",
          "type": "option",
          "char": "a",
          "summary": "Account used to call (managed account key)",
          "multiple": false,
          "default": "alice"
        },
        "params": {
          "name": "params",
          "type": "option",
          "char": "p",
          "description": "Arguments supplied to the message",
          "required": false,
          "multiple": true,
          "default": []
        }
      },
      "args": {}
    },
    "phala:contract:compile": {
      "id": "phala:contract:compile",
      "description": "Compile Contract",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> -c [contractName] -w [bool] -r [bool]"
      ],
      "flags": {
        "contract": {
          "name": "contract",
          "type": "option",
          "char": "c",
          "summary": "Contract name",
          "multiple": false
        },
        "watch": {
          "name": "watch",
          "type": "boolean",
          "char": "w",
          "summary": "Watch changes",
          "allowNo": false
        },
        "release": {
          "name": "release",
          "type": "boolean",
          "char": "r",
          "summary": "Compile in release mode",
          "allowNo": false
        }
      },
      "args": {}
    },
    "phala:contract:deploy": {
      "id": "phala:contract:deploy",
      "description": "Deploy contract",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> -c [CONTRACT_NAME] -t [CONTRACT_TYPE] -o [CONSTRUCTOR] -n [NETWORK] -l [CLUSTER_ID] -a [ACCOUNT] -p [..Args]"
      ],
      "flags": {
        "contract": {
          "name": "contract",
          "type": "option",
          "char": "c",
          "summary": "Contract name",
          "required": true,
          "multiple": false
        },
        "type": {
          "name": "type",
          "type": "option",
          "char": "t",
          "summary": "",
          "multiple": false,
          "options": [
            "InkCode",
            "SidevmCode",
            "IndeterministicInkCode"
          ],
          "default": "InkCode"
        },
        "constructor": {
          "name": "constructor",
          "type": "option",
          "char": "o",
          "summary": "Contract constructor to call (name)",
          "required": true,
          "multiple": false
        },
        "network": {
          "name": "network",
          "type": "option",
          "char": "n",
          "summary": "Target network to deploy (local default)",
          "multiple": false,
          "default": "local"
        },
        "cluster": {
          "name": "cluster",
          "type": "option",
          "char": "l",
          "summary": "Target cluster Id",
          "multiple": false
        },
        "account": {
          "name": "account",
          "type": "option",
          "char": "a",
          "summary": "Account used to deploy (managed account key)",
          "multiple": false,
          "default": "alice"
        },
        "params": {
          "name": "params",
          "type": "option",
          "char": "p",
          "description": "Arguments supplied to the message",
          "required": false,
          "multiple": true,
          "default": []
        }
      },
      "args": {}
    },
    "phala:contract:list": {
      "id": "phala:contract:list",
      "description": "Display deployed contracts list",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %>"
      ],
      "flags": {
        "columns": {
          "name": "columns",
          "type": "option",
          "description": "only show provided columns (comma-separated)",
          "multiple": false,
          "exclusive": [
            "extended"
          ]
        },
        "sort": {
          "name": "sort",
          "type": "option",
          "description": "property to sort by (prepend '-' for descending)",
          "multiple": false
        },
        "filter": {
          "name": "filter",
          "type": "option",
          "description": "filter property by partial string matching, ex: name=foo",
          "multiple": false
        },
        "csv": {
          "name": "csv",
          "type": "boolean",
          "description": "output is csv format [alias: --output=csv]",
          "allowNo": false,
          "exclusive": [
            "no-truncate"
          ]
        },
        "output": {
          "name": "output",
          "type": "option",
          "description": "output in a more machine friendly format",
          "multiple": false,
          "options": [
            "csv",
            "json",
            "yaml"
          ],
          "exclusive": [
            "no-truncate",
            "csv"
          ]
        },
        "extended": {
          "name": "extended",
          "type": "boolean",
          "char": "x",
          "description": "show extra columns",
          "allowNo": false,
          "exclusive": [
            "columns"
          ]
        },
        "no-truncate": {
          "name": "no-truncate",
          "type": "boolean",
          "description": "do not truncate output to fit screen",
          "allowNo": false,
          "exclusive": [
            "csv"
          ]
        },
        "no-header": {
          "name": "no-header",
          "type": "boolean",
          "description": "hide table header from output",
          "allowNo": false,
          "exclusive": [
            "csv"
          ]
        }
      },
      "args": {}
    },
    "phala:contract:new": {
      "id": "phala:contract:new",
      "description": "Creates new contract from template",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %>"
      ],
      "flags": {},
      "args": {
        "contractName": {
          "name": "contractName",
          "description": "Name of the new contract",
          "required": true
        }
      }
    },
    "phala:contract:test": {
      "id": "phala:contract:test",
      "description": "[Unstable] Run tests for specified contract(s)",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> -t [TEST_SUITE_NAME] -n [NETWORK] -e [EXTERNAL_STACK] -m [STACK_SETUP_MODE]"
      ],
      "flags": {
        "suite": {
          "name": "suite",
          "type": "option",
          "char": "t",
          "summary": "Test suite name (directory in tests)",
          "multiple": false
        },
        "network": {
          "name": "network",
          "type": "option",
          "char": "n",
          "summary": "Network key",
          "multiple": false,
          "default": "local"
        },
        "externalStack": {
          "name": "externalStack",
          "type": "boolean",
          "char": "e",
          "summary": "Don't spawn local stack (use external)",
          "allowNo": false
        },
        "stackSetupMode": {
          "name": "stackSetupMode",
          "type": "option",
          "char": "m",
          "summary": "Stack setup mode",
          "multiple": false,
          "options": [
            "None",
            "Minimal",
            "WithDrivers",
            "WithLogger",
            "0",
            "1",
            "2",
            "3"
          ],
          "default": "1"
        }
      },
      "args": {}
    },
    "phala:contract:typegen": {
      "id": "phala:contract:typegen",
      "description": "Generate type bindings for compiled contract",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> [contractName]"
      ],
      "flags": {},
      "args": {
        "contractName": {
          "name": "contractName",
          "description": "Contract name",
          "required": true
        }
      }
    },
    "phala:contract:validate": {
      "id": "phala:contract:validate",
      "description": "Validate compiled Phat Contract",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> - c [CONTRACT_NAME]"
      ],
      "flags": {
        "contract": {
          "name": "contract",
          "type": "option",
          "char": "c",
          "summary": "Contract name",
          "multiple": false
        }
      },
      "args": {}
    },
    "phala:node:setup": {
      "id": "phala:node:setup",
      "description": "Setup local testnet stack",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %> -n [NETWORK_KEY] -m [SETUP_MODE]"
      ],
      "flags": {
        "network": {
          "name": "network",
          "type": "option",
          "char": "n",
          "summary": "Network key",
          "multiple": false,
          "default": "local"
        },
        "setupMode": {
          "name": "setupMode",
          "type": "option",
          "char": "m",
          "summary": "Stack setup mode",
          "multiple": false,
          "options": [
            "None",
            "Minimal",
            "WithDrivers",
            "WithLogger",
            "0",
            "1",
            "2",
            "3"
          ],
          "default": "3"
        }
      },
      "args": {}
    },
    "phala:node:start": {
      "id": "phala:node:start",
      "description": "Starting local testnet stack (phala-node + pruntime + pherry)",
      "strict": true,
      "pluginName": "@phala/swanky-plugin-phala",
      "pluginAlias": "@phala/swanky-plugin-phala",
      "pluginType": "core",
      "aliases": [],
      "examples": [
        "<%= config.bin %> <%= command.id %>"
      ],
      "flags": {
        "save-logs": {
          "name": "save-logs",
          "type": "boolean",
          "summary": "Save logs to file",
          "allowNo": false
        }
      },
      "args": {}
    }
  }
}