2.7.2. ChainIDE Flattener Plugin
ChainIDE 提供了合约扁平化插件,可以将原始文件的所有导入合并到一个合约中。
如果您是智能合约新手开发者,尝试在诸如Etherscan.io之类的平台上验证代码时,遇到文件组织方面的问题,ChainIDE 的 Flattener 插件可以帮助您简化验证流程,确保您的智能合约组织得当并可验证。
要使用 ChainIDE 的 Flattener 插件,首先,导航到 ChainIDE 平台的 “PLUGIN Manager” 部分。从那里,选择 Flattener 插件并点击“安装”以将其添加到您的工作区。一旦您激活了Flattener插件,您可以使用它来创建一个扁平化的智能合约文件。要做到这一点,只需单击您想要扁平化的智能合约文件,然后从按钮中选择“Flatten Contract”。这将在“EXPLORER”面板下生成一个扁平化文件,扁平化文件将原始文件中的所有导入合并为一个单独的合同。然后,可以将扁平化文件用于在诸如etherscan.io之类的平台上进行验证,或者用于部署到区块链网络上。
以下是创建智能合约扁平化文件的步骤:
激活 Flattener 插件
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252Fz2hRyOa6FqZcxtBIOa9y%252Fimage.png%3Falt%3Dmedia%26token%3De48407fe-d355-42b8-a34f-0bad5ead366d&width=768&dpr=4&quality=100&sign=9932a340&sv=1)
选择您要扁平化的合约文件
在选择合约文件前,你需要先编译该合约
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252F82YcTlKQECR18Dz9Mjtw%252Fimage.png%3Falt%3Dmedia%26token%3D250a12ca-b623-4451-85a1-ede13d6240d3&width=768&dpr=4&quality=100&sign=555b70a7&sv=1)
将扁平化的文件保存到“Explorer”面板下的目录中
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252Fqpl1M0mPLkoPeYYZ0cbr%252Fimage.png%3Falt%3Dmedia%26token%3D97b07179-b5d9-439a-852f-9187240dcf93&width=768&dpr=4&quality=100&sign=a0fc87e9&sv=1)
查看扁平化的文件并用它来验证一个智能合约
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252FABnnAGWIumaGF08CRvRg%252Fimage.png%3Falt%3Dmedia%26token%3D84b86a7b-a113-406c-b1f3-e98571b2200a&width=768&dpr=4&quality=100&sign=3399e2c9&sv=1)
总的来说,使用 ChainIDE 的 Flattener 插件可以帮助简化智能合约的开发和验证过程,使您更容易确保您的代码得到正确组织并易于验证。
要验证一个智能合约,你需要访问对应的区块链浏览器(如:etherscan);部署完合约后,点击下图按钮自动跳转到对应合约的浏览器页面。
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252FrXvMaY9U5jo8RaFmyPA4%252Fimage.png%3Falt%3Dmedia%26token%3D0f7df506-7458-4c4c-832c-0373a9fcd7be&width=768&dpr=4&quality=100&sign=b40fafa0&sv=1)
点击 Contract,再点击 contract 下的 Verify and Publish 。
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252Fd6AMnUhjjTCogOgyEybt%252Fimage.png%3Falt%3Dmedia%26token%3D3bd51083-794f-4309-a41a-57b3772aeddb&width=768&dpr=4&quality=100&sign=548bea4a&sv=1)
一旦你点击 Verify and Publish,你将被要求提供以下内容。
Contract Address: 你想验证的已部署智能合约的地址
Compiler Type: 选择你想验证的是单文件还是多文件
Compiler Version: 你之前用来编译该合约的编译器版本
License: 你的源代码所使用的开源许可证类型
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252F7PrxNI5SOK9YClUziew3%252Fimage.png%3Falt%3Dmedia%26token%3D25096eb5-bb3e-4726-a531-70fe3cd48216&width=768&dpr=4&quality=100&sign=b22429c7&sv=1)
之后,你需要粘贴你在步骤3中创建的扁平化文件,并确定是否在编译过程中开启过 Optimization,点击确认,你的智能合约就会被验证。
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252FnteGpsbQJwD4rvXMBKm1%252Fimage.png%3Falt%3Dmedia%26token%3Dac3aab12-8315-4ef0-a88a-9840512a5d35&width=768&dpr=4&quality=100&sign=9435ed33&sv=1)
如果你的智能合约没有问题,它将被验证,你将能够看到类似于下面显示的图像。
![](https://chainide.gitbook.io/~gitbook/image?url=https%3A%2F%2F2772835953-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F-MZ6_j0WUFnBhwIdP3LR%252Fuploads%252FPJ1kYhofuvJLCbKuDMqL%252Fimage.png%3Falt%3Dmedia%26token%3D5dc97d8a-6a23-4790-a369-9317a62e3ba0&width=768&dpr=4&quality=100&sign=7ceb5929&sv=1)
Last updated