-
Notifications
You must be signed in to change notification settings - Fork 447
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3637 from dfinity/add-icp-ninja
add: ICP Ninja dev doc
- Loading branch information
Showing
3 changed files
with
48 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
--- | ||
keywords: [beginner, ide, tutorial, icp ninja, icp ide] | ||
--- | ||
|
||
import { MarkdownChipRow } from "/src/components/Chip/MarkdownChipRow"; | ||
import '/src/components/CenterImages/center.scss'; | ||
|
||
# ICP Ninja | ||
|
||
<MarkdownChipRow labels={["Beginner", "IDE", "Tutorial"]} /> | ||
|
||
## Overview | ||
|
||
[ICP Ninja](https://icp.ninja/) is a web-based code editor and deployment environment for ICP canister smart contracts. Users can choose from a gallery of example projects, then edit and deploy the project directly to ICP without downloading `dfx` or obtaining cycles. Projects will be live for 20 minutes unless redeployed. The deployment timer resets on each deployment. | ||
|
||
Currently, ICP Ninja supports writing and deploying Motoko backend canisters and React frontend canisters. | ||
|
||
## Limitations | ||
|
||
ICP Ninja is currently undergoing active development and currently implements a few limitations that should be noted. These limitations will be removed and changed as the platform develops. | ||
|
||
- **Chain Fusion**: ICP Ninja currently does not support ICP's Chain Fusion features, such as signing and submitting transactions on other chains or making calls to the EVM RPC canister. | ||
|
||
- **System calls**: ICP Ninja projects cannot make calls that require cycles, including inter-canister calls or system API calls such as `ic0.call_cycles_add`, `ic0.call_cycles_add128`, `ic0.cycles_burn128`, `sign_with_ecdsa`, `sign_with_schnorr`, and `http_request`. | ||
|
||
- **Supported packages**: Only certain npm packages are supported by ICP Ninja projects. The `package.json` file in each project contains the supported list. This list cannot be edited. | ||
|
||
- **Project structure**: Projects created and deployed on ICP Ninja must follow a specific project structure. They can only contain two canisters, a backend and a frontend. The backend canister can only use a single source code file, and the frontend source code folder may only contain one subfolder, `frontend/src`. | ||
|
||
## Developing ICP Ninja projects with dfx | ||
|
||
To continue developing an ICP Ninja project or to add features to the project that exceed the IDE's current limitations, you can download the project's files and use `dfx`. From the ICP Ninja IDE, select 'Download files' to download a `.zip` folder containing the project's code files. | ||
|
||
Then, read the `BUILD.md` file included in the downloaded files. It contains further instructions for downloading and using `dfx` with your ICP Ninja project. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters