# 2. Jovay IDE 使用流程演示

## 1. 编写合约

进入项目后，文件夹中自带的 readme.md 文件会自动预览。&#x20;

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2Fj1AuZ1VgAO83T8ichcG2%2Fimage.png?alt=media&#x26;token=4a354acd-6b4a-47f2-afe2-19e0f293aa17" 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%2FMgRJQONDvNgCGLYxJ58K%2Fimage.png?alt=media&#x26;token=d3c4f64e-f125-4f58-bf85-a9b03374fc94" 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%2FTZUdOfi3e0fVGjlhgF2Q%2Fimage.png?alt=media&#x26;token=2dd03df4-7c7a-4bba-b341-164ab7867911" alt=""><figcaption></figcaption></figure>

## 2. 编译合约

合约代码编写完成后，点击右侧菜单栏的 Compiler 按钮打开编译模块，选择 Compiler 版本和是否开启 Optimization，然后点击 Compile \*\*\*.sol 启动编译。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2F854nZT2XqI3ZmvqKL2iX%2Fimage.png?alt=media&#x26;token=b83a3a7b-1cc6-4d99-a718-ef0a6d4c8379" alt=""><figcaption></figcaption></figure>

编译成功后，下方会显示 [ABI](https://docs.soliditylang.org/en/latest/abi-spec.html) 和 BYTE CODE ，同时控制台上会输出 Compile contract success 的信息提示。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FSqtKrKS28YN7xmytaRJy%2Fimage.png?alt=media&#x26;token=6636a90b-68de-4294-a1f9-1c301a0d519a" alt="" width="326"><figcaption></figcaption></figure>

## 3. 连接 Jovay

部署合约前，需要先点击右上角的 Connect Wallet，选择连接到 JavaScript VM (使用 JavaScript 实现的 EVM，主要用于测试) 或 Metamask （可部署到 Jovay 区块链上）。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FUr8z4hC1Bno4csamwFla%2Fimage.png?alt=media&#x26;token=39d036f9-b40f-4a03-b825-02324d4a8ff0" 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%2FbyDFFPHKnRsbp8LQpBSf%2Fimage.png?alt=media&#x26;token=acefdbef-2de8-4f81-b963-588cc18e29f2" 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%2Fxer4gcG2lHHvbY4LmNCt%2Fimage.png?alt=media&#x26;token=fa695d82-7aa2-4301-8dfe-8ac2f9908f89" alt=""><figcaption></figcaption></figure>

## 4. 部署合约

点击右侧的 Deploy & Interaction 按钮，出现部署页与交互页面。选择好已编译的合约后，点击 Deploy进行部署（然后在 Metamask 中点击确认）。合约部署成功后，控制台上会输出现合约部署的结果以及相关信息。&#x20;

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FIMb71v5cktE0CFJTQUoV%2Fimage.png?alt=media&#x26;token=3c29297e-3e8d-447a-b532-81dda7b3361c" alt=""><figcaption></figcaption></figure>

除此之外，你还可以点击 Import Deployed Contract 导入已部署过的合约，来进行合约交互。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FwugPiSSKRQ3SD2IybVwJ%2Fimage.png?alt=media&#x26;token=0014a1d2-1ef4-4c00-b8cf-618d18337755" alt=""><figcaption></figcaption></figure>

## 5. 合约交互

合约部署成功后，可以对合约进行交互操作。点击已部署好的合约，选择对应的接口，点击 Submit 或 Get   进行交互。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FzbZY5d7YYLAxmKgwfL9G%2Fimage.png?alt=media&#x26;token=d317ea18-6fcb-4728-a860-84a6555c82e9" alt=""><figcaption></figcaption></figure>

## 6. 交易查询

点击 Output 中的交易 Hash，可以查看每笔交易的具体信息。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FDu8mlokRRJalflM5byD9%2Fimage.png?alt=media&#x26;token=80ea46e6-c628-4e60-8ff7-69002e07d96d" alt=""><figcaption></figcaption></figure>

## 7. 验证合约

目前 Javoy 暂不支持验证合约。

## 8. J Sandbox&#x20;

如果你喜欢使用命令行进行开发，可以打开 Jovay Sandbox，其中已自带 [Hardhat](https://hardhat.org/), [Truffle](https://trufflesuite.com/), [Brownie](https://eth-brownie.readthedocs.io/en/stable/) [Ganache](https://trufflesuite.com/ganache/), [Git](https://git-scm.com/) 和 [Node.js V16](https://nodejs.org/en)。

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

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FN7nQLd50XUYXNbMyf3wu%2Fimage.png?alt=media&#x26;token=5e7c096f-1d59-4ebc-9ba0-85d784e517fa" alt=""><figcaption></figcaption></figure>
