# 2.7.2. ChainIDE Flattener Plugin

{% embed url="<https://www.youtube.com/watch?t=280s&v=NM7kibCj73Q>" %}

如果您是智能合约新手开发者，尝试在诸如Etherscan.io之类的平台上验证代码时，遇到文件组织方面的问题，ChainIDE 的 Flattener 插件可以帮助您简化验证流程，确保您的智能合约组织得当并可验证。

要使用 ChainIDE 的 Flattener 插件，首先，导航到 ChainIDE 平台的 “PLUGIN Manager” 部分。从那里，选择 Flattener 插件并点击“安装”以将其添加到您的工作区。一旦您激活了Flattener插件，您可以使用它来创建一个扁平化的智能合约文件。要做到这一点，只需单击您想要扁平化的智能合约文件，然后从按钮中选择“Flatten Contract”。这将在“EXPLORER”面板下生成一个扁平化文件，扁平化文件将原始文件中的所有导入合并为一个单独的合同。然后，可以将扁平化文件用于在诸如etherscan.io之类的平台上进行验证，或者用于部署到区块链网络上。

以下是创建智能合约扁平化文件的步骤：

1. 激活 Flattener 插件

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2Fz2hRyOa6FqZcxtBIOa9y%2Fimage.png?alt=media&#x26;token=e48407fe-d355-42b8-a34f-0bad5ead366d" alt=""><figcaption></figcaption></figure>

2. 选择您要扁平化的合约文件

> 在选择合约文件前，你需要先编译该合约

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2F82YcTlKQECR18Dz9Mjtw%2Fimage.png?alt=media&#x26;token=250a12ca-b623-4451-85a1-ede13d6240d3" alt=""><figcaption></figcaption></figure>

3. 将扁平化的文件保存到“Explorer”面板下的目录中

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2Fqpl1M0mPLkoPeYYZ0cbr%2Fimage.png?alt=media&#x26;token=97b07179-b5d9-439a-852f-9187240dcf93" alt=""><figcaption></figcaption></figure>

4. 查看扁平化的文件并用它来验证一个智能合约

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FABnnAGWIumaGF08CRvRg%2Fimage.png?alt=media&#x26;token=84b86a7b-a113-406c-b1f3-e98571b2200a" alt=""><figcaption></figcaption></figure>

总的来说，使用 ChainIDE 的 Flattener 插件可以帮助简化智能合约的开发和验证过程，使您更容易确保您的代码得到正确组织并易于验证。

5. 要验证一个智能合约，你需要访问对应的区块链浏览器（如：etherscan）；部署完合约后，点击下图按钮自动跳转到对应合约的浏览器页面。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FrXvMaY9U5jo8RaFmyPA4%2Fimage.png?alt=media&#x26;token=0f7df506-7458-4c4c-832c-0373a9fcd7be" alt=""><figcaption></figcaption></figure>

6. 点击 Contract，再点击 contract 下的 Verify and Publish 。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2Fd6AMnUhjjTCogOgyEybt%2Fimage.png?alt=media&#x26;token=3bd51083-794f-4309-a41a-57b3772aeddb" alt=""><figcaption></figcaption></figure>

7. 一旦你点击 Verify and Publish，你将被要求提供以下内容。

* Contract Address: 你想验证的已部署智能合约的地址
* Compiler Type: 选择你想验证的是单文件还是多文件
* Compiler Version: 你之前用来编译该合约的编译器版本
* License: 你的源代码所使用的开源许可证类型

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2F7PrxNI5SOK9YClUziew3%2Fimage.png?alt=media&#x26;token=25096eb5-bb3e-4726-a531-70fe3cd48216" alt=""><figcaption></figcaption></figure>

8. 之后，你需要粘贴你在步骤3中创建的扁平化文件，并确定是否在编译过程中开启过 Optimization，点击确认，你的智能合约就会被验证。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FnteGpsbQJwD4rvXMBKm1%2Fimage.png?alt=media&#x26;token=ac3aab12-8315-4ef0-a88a-9840512a5d35" alt=""><figcaption></figcaption></figure>

9. 如果你的智能合约没有问题，它将被验证，你将能够看到类似于下面显示的图像。

<figure><img src="https://2772835953-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZ6_j0WUFnBhwIdP3LR%2Fuploads%2FPJ1kYhofuvJLCbKuDMqL%2Fimage.png?alt=media&#x26;token=5dc97d8a-6a23-4790-a369-9317a62e3ba0" alt=""><figcaption></figcaption></figure>
