![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Development tool for Phala Phat contracts.
Add to your projects using package manager (yarn@^1
/ npm
)
yarn add -D devphase
yarn add -D typescript ts-node # required peer dependencies
--json # Prints result of command in json format
--verbosity=X # Adjusts verbosity (0 - silent, 1 - default, 2 - verbose)
yarn devphase init
yarn devphase check
yarn devphase stack run [--save-log]
--save-log # Saves logs to file
yarn devphase stack setup
-n, --network # Switch network (local - by default)
./accounts.json
)yarn devphase account list [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output csv|json|yaml] [--csv | --no-truncate] [--no-header]
yarn devphase account create -a <value> [-p <value>] [-n]
-a, --alias=<value> # (required) Account alias
-n, --no-passphrase # Force no passphrase (prompted if not specified)
-p, --passphrase=<value> # Passphrase used to protect keyring
./contracts.json
)yarn devphase contract list [--columns <value> | -x] [--sort <value>] [--filter <value>] [--output csv|json|yaml] [--csv | --no-truncate] [--no-header]
yarn devphase contract create -n <value>
-n, --name=<value> # (required) Contract name
cargo
binaryyarn devphase contract compile [-c <value>] [-w] [-r]
-c, --contract=<value> # Contract name
-r, --release # Compile in release mode
-w, --watch # Watch changes
yarn devphase contract deploy [ARGS] -c <value> -o <value> [-t InkCode|SidevmCode] [-n <value>] [-l <value>] [-a <value>]
ARGS # Constructor arguments
-a, --account=<value> # [default: alice] Account used to deploy (managed account key)
-c, --contract=<value> # (required) Contract name
-l, --cluster=<value> # Target cluster Id
-n, --network=<value> # [default: local] Target network to deploy (local default)
-o, --constructor=<value> # (required) Contract constructor to call (name)
-t, --type=<option> # [default: InkCode] <options: InkCode|SidevmCode>
yarn devphase contract call [ARGS] -c <value> -i <value> -m <value> [-t InkCode|SidevmCode] [-a query|tx] [-n <value>] [-l <value>] [-a <value>]
ARGS # Call arguments
-a, --accessor=<option> # [default: query] Method type: transaction or query <options: query|tx>
-a, --account=<value> # [default: alice] Account used to call (managed account key)
-c, --contract=<value> # (required) Contract name
-i, --id=<value> # (required) Contract ID
-l, --cluster=<value> # Target cluster Id
-m, --method=<value> # (required) Contract method to call (name)
-n, --network=<value> # [default: local] Target network to deploy (local default)
-t, --type=<option> # [default: InkCode] <options: InkCode|SidevmCode>
yarn devphase contract typegen -c <value>
-c, --contract=<value> # (required) Contract name
yarn devphase contract test [-s <value>] [-n <value>]
-n, --network=<value> # [default: local] Network key
-s, --suite=<value> # Test suite name (directory)
Create devphase.config.ts
in root directory (init
command in TODO)
Here is default configuration. All values are optional (merged recuresivly)
import { ProjectConfigOptions } from 'devphase';
const config : ProjectConfigOptions = {
/*
* Project directories
*/
directories: {
artifacts: 'artifacts',
contracts: 'contracts',
logs: 'logs',
stacks: 'stacks',
tests: 'tests',
typings: 'typings'
},
/*
* Stack configuration
* {
* [componentName : string]: {
* binary: string, // path to binary
* workingDir: string, // working directory as above
* evns: {
* [name: string]: string,
* },
* args: {
* [name: string]: string,
* },
* timeout: number // start up timeout
* }
* }
*/
stack: {
blockTime: 6000, // default block time for direct stack running (may be overriden in testing mode)
version: 'latest', // version which you want to pull from official repository (tag name) or "latest" one
node: {
port: 9944, // ws port
binary: '{{directories.stacks}}/{{stack.version}}/phala-node',
workingDir: '{{directories.stacks}}/.data/node',
envs: {},
args: {
'--dev': true,
'--rpc-methods': 'Unsafe',
'--block-millisecs': '{{stack.blockTime}}',
'--ws-port': '{{stack.node.port}}'
},
timeout: 10000,
},
pruntime: {
port: 8000, // server port
binary: '{{directories.stacks}}/{{stack.version}}/pruntime',
workingDir: '{{directories.stacks}}/.data/pruntime',
envs: {},
args: {
'--allow-cors': true,
'--cores': 0,
'--port': '{{stack.pruntime.port}}'
},
timeout: 2000,
},
pherry: {
gkMnemonic: '//Alice', // gate keeper mnemonic
binary: '{{directories.stacks}}/{{stack.version}}/pherry',
workingDir: '{{directories.stacks}}/.data/pherry',
envs: {},
args: {
'--no-wait': true,
'--mnemonic': '{{stack.pherry.gkMnemonic}}',
'--inject-key': '0000000000000000000000000000000000000000000000000000000000000001',
'--substrate-ws-endpoint': 'ws://localhost:{{stack.node.port}}',
'--pruntime-endpoint': 'http://localhost:{{stack.pruntime.port}}',
'--dev-wait-block-ms': '{{stack.blockTime}}',
},
timeout: 2000,
}
},
/**
* Testing configuration
*/
testing: {
mocha: {}, // custom mocha configuration
spawnStack: true, // spawn runtime stack? or assume there is running one
stackLogOutput: false, // if specifed pipes output of all stack component to file (by default it is ignored)
blockTime: 100, // overrides block time specified in node (and pherry) component
envSetup: { // environment setup
setup: {
custom: undefined, // custom setup procedure callback; (devPhase) => Promise<void>
timeout: 60 * 1000,
},
teardown: {
custom: undefined, // custom teardown procedure callback ; (devPhase) => Promise<void>
timeout: 10 * 1000,
}
},
},
/**
* Networks configuration
* Default network is local and it can be changed using CLI argument
*/
networks: {
local: {
nodeUrl: 'ws://localhost:{{stack.node.port}}',
nodeApiOptions: {
types: {
...KhalaTypes,
...PhalaSDKTypes,
}
},
workerUrl: 'http://localhost:{{stack.pruntime.port}}',
blockTime: 6000, // network block time (may be overriden in testing mode)
}
},
/**
* Accounts fallback configuration
* It is overriden by values saved in ./accounts.json
*/
accountsConfig: {
keyrings: {
alice: '//Alice', // string (in case of mnemonic) or account keyring JSON
bob: '//Bob',
charlie: '//Charlie',
dave: '//Dave',
eve: '//Eve',
ferdie: '//Ferdie'
},
suAccount: 'alice'
}
};
export default config;
Check usage sample repo
Check sandbox environment repo for easy testing with up-to-date code
FAQs
Unknown package
We found that devphase demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.