# 2. Mina IDE 使用流程演示

## 1. 编写合约 <a href="#id-1.-bian-xie-he-yue" id="id-1.-bian-xie-he-yue"></a>

进入项目后，可以点击文件夹中 readme.md 右上角 preview 进行预览。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2F5YWb5MSiHuY3SYEINxO8%2Fimage.png?alt=media&#x26;token=a469169e-b6a8-43d2-a020-3244443764ba" alt=""><figcaption></figcaption></figure>

在 Explorer 栏中，你可以新建文件（夹），刷新目录，下载文件。也可以直接点击模板中自带的文件。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2Fg0Xe8OnsrovlBiNGQi84%2Fimage.png?alt=media&#x26;token=e4722747-17fd-499f-9659-c3cc34fa8345" alt=""><figcaption></figcaption></figure>

点击一个合约文件，即可对代码进行编辑操作。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2F7FfJ26pvy9KLHpirM0Lx%2Fimage.png?alt=media&#x26;token=a5008c20-e4af-4d43-a5b1-637f4cf12c4a" alt=""><figcaption></figcaption></figure>

### 2. 编译合约 <a href="#id-2.-ce-shi-he-yue" id="id-2.-ce-shi-he-yue"></a>

在右侧菜单栏的 Compiler 中，选择 Module Package Path 后，点击 Compile 即可开始编译合约。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2Fdn7NtrkN6Cw5DzEuJcqn%2Fimage.png?alt=media&#x26;token=e8451b5b-fe90-4e4e-b890-ebf7552a15b4" alt=""><figcaption></figcaption></figure>

编译成功后，会在当前目录下生成 build 文件夹。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2F71iSPv9m6QzzXqP7rZha%2Fimage.png?alt=media&#x26;token=2833de26-fd2a-4415-99b4-384735a23872" alt=""><figcaption></figcaption></figure>

### 3. 部署合约 <a href="#id-5.-bu-shu-he-yue" id="id-5.-bu-shu-he-yue"></a>

点击右侧的 Deploy & Interaction 按钮，出现部署页与交互页面。选择好 Module Package Path 后，先点击 Config 进行部署账户配置

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FSV5JtDVhVSeIXfXOcEDr%2Fimage.png?alt=media&#x26;token=26f619a0-58b3-4da0-a639-77a09ce49118" alt=""><figcaption></figcaption></figure>

例如 (对于 Testnet)：

* Deploy alias name: `devnet`

  This tutorial uses `devnet`, but the deploy alias name can be anything and does not have to match the network name.
* Target network kind: `Testnet`
* Mina GraphQL API URL: `https://api.minascan.io/node/devnet/v1/graphql`
* Transaction fee to use when deploying (in MINA): `0.1`
* Use a different account (select to see options): `Create a new fee payer key pair`

例如 （对于 Mainnet）：

* Deploy alias name: `mainnet`

  This tutorial uses `devnet`, but the deploy alias name can be anything and does not have to match the network name.
* Target network kind: `Mainnet`
* Mina GraphQL API URL: `https://api.minascan.io/node/mainnet/v1/graphql`
* Transaction fee to use when deploying (in MINA): `0.1`
* Use a different account (select to see options): `Create a new fee payer key pair`

Config 完成后，点击 Sandbox 中的 faucet 链接获取测试代币。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FMJMCfxgPrvJnq0Dnvb1v%2Fimage.png?alt=media&#x26;token=b9e8016b-f059-46ff-aa8e-18eb2d75a8f6" alt=""><figcaption></figcaption></figure>

成功获取测试币后，点击 Deploy，选择合适的 Deploy Alias 进行部署。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2Fn982GHy3QFL7urpzTdxA%2Fimage.png?alt=media&#x26;token=cd9a411d-6155-4b55-9836-cac638859ed8" alt=""><figcaption></figcaption></figure>

等待一会儿，sandbox 会显示部署链接，点击该链接以确定部署交易已上链。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FbbaWy9YTCeTX4XduLYG0%2Fimage.png?alt=media&#x26;token=ab23d50b-7591-4299-bfc2-073e9a85b931" alt=""><figcaption></figcaption></figure>

### 4. 合约交互 <a href="#id-6.-he-yue-jiao-hu" id="id-6.-he-yue-jiao-hu"></a>

合约部署成功后，可以对合约进行交互操作。点击已部署好的合约，选择对应的参数，点击 Interact 进行交互。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2Fybfj3A6KjWKT6xZuTDGm%2Fimage.png?alt=media&#x26;token=82136e54-be11-4545-bd85-a8ef22b9a246" alt=""><figcaption></figcaption></figure>

### 5. Mina Sandbox <a href="#id-8.-sui-sandbox" id="id-8.-sui-sandbox"></a>

如果你喜欢使用命令行进行开发，可以打开 Mina Sandbox，其中已自带 [zkApp CLI](https://www.npmjs.com/package/zkapp-cli), [Git](https://git-scm.com/) 和 [Node.js V20](https://nodejs.org/en)。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FViiKDbGKuml66y6wFQtx%2Fimage.png?alt=media&#x26;token=f7d796b4-a692-4e2b-abf5-cfea66fa7c15" alt=""><figcaption></figcaption></figure>

如果你在 Sandbox 中启动了一个端口，并且想要访问该端口，请参考 [ChainIDE-端口转发](https://chainide.gitbook.io/chainide-chinese/5.-port-forwarding)。
