l00k / devphase

Development tool for Phala Phat contracts.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

devPHAse

Development tool for Phala Phat contracts.

Tests for both latest devPHAse and Phala Blockchain release:
CircleCI

Features

Tool is heavily inspired by Hardhat (EVM devs should be familiar with it).
I tried to provide as much similar features as possible.

  • Up to date Phala binaries
    By default on each start devPHAse will pull latest Phala binaries (the latest release from official Phala's repo).

  • E2E testing
    Using internally Phala stack (prepared on start) you can test e2e your contracts with minimal cost.

  • Scripting
    Using all devPHAse API you can prepare scripts for common actions like: contract deployment, management, monitoring etc.

  • Type generation
    devPHAse generates type bindings for all structures used in contract, so autosuggestions should be provided by your IDE.

Requirements

Requirements list for contract (building) commands

  • Cargo
    cargo 1.69.0 (6e9a83356 2023-04-12) *
  • Cargo Contract
    cargo-contract-contract 3.0.1-unknown-x86_64-unknown-linux-gnu *
  • Target wasm32-unknown-unknown
  • Component rust-src

* - previous versions may also work, but it was not tested

Install

Depending on how you manage your projects you can:

  1. Add devPHAse to your project dependencies (yarn@^1 / npm)
    Sadly yarn@^3 is not supported (check #4)
yarn add -D @devphase/cli
yarn add -D typescript ts-node # required peer dependencies

yarn devphase [command]
  1. Install it globally and use npx to call it.
    Note: this may be default in Phala's example repos
npm install -g @devphase/cli
npm install -g typescript ts-node # required peer dependencies

npx @devphase/cli [command]

Usage

Detailed usage described here
USAGE
Must read :)

Sandbox & Examples

In directory workspaces/xsandbox there is a template of devphase project.
You can try building and testing contracts.
workspaces/xsandbox

Check also workspaces/xexamples for more examples.
workspaces/xexamples

Commands

I strongly recommned using scripts instead of CLI commands.
CLI commands index

Configuration

Here is default configuration.
All values are optional (merged recuresivly)

About

Development tool for Phala Phat contracts.

License:MIT License


Languages

Language:TypeScript 97.5%Language:Rust 2.1%Language:JavaScript 0.4%Language:Shell 0.0%