PlatON
PlatON Studio是一个帮助开发者快速开发PlatON智能合约的集成化开发环境,同时支持Alaya先行网络和PlatON主网络上的合约开发、部署和调试。PlatON Studio现已提供运行于macOS、Windows和Linux的桌面版。本教程旨在为广大社区开发者提供便捷快速的上手教程。
感谢提供本教程的PlatON社区开发者@eXterkTi
| 创建智能合约项目
点击顶部的【Project】标签,切换至合约项目界面。点击页面右上角的【New】按钮打开创建项目弹窗,输入项目名称并选择合适的模版,PlatON Studio目前提供了多个模版:
- Hello World (Solidity):基于Solidity的一个简单的智能合约;
- Crowd Funding (Solidity):基于Solidity的众筹智能合约;
- Hello World (WASM):基于C++的一个简单的智能合约;
- Standard Token (ERC-20): ERC-20 Token合约;
这里我们使用Hello World (Solidity) 模版,创建一个名为my-project的项目,并使用这个项目完成后续操作。
项目编辑器
项目创建完成后,主页面将切换至项目编辑器。项目编辑器由几个部分组成,包括了左侧的文件浏览器,文件浏览器上方的工具栏,右侧上半部分的代码编辑器以及右侧下半部分的日志查看器等多个开发常用模块。
点击工具栏中右侧的Project Settings(齿轮形状)图标,打开项目设置页。在这里可以查看和修改项目的基本配置,编译器配置以及Linter配置等信息。
PlatON Studio的项目编辑器内置了Linter,可以在代码编辑过程中自动检查代码并提示项目代码中的警告和错误。项目编辑器会在有警告的代码行前标注黄色的惊叹号,在错误的代码行前标注红色的叉作为提示。
编译智能合约
点击工具栏的【Build】按钮(锤子形状),PlatON Studio将进行项目的编译,你可以通过下方的日志查看器来查看编译结果。编译后将在项目目录下的build/contracts文件夹中查看到编译完成的 *.json文件,这些编译输出文件的数据格式可参阅Solc文档。
另外也可以通过右键点击一个【*.sol】文件,在菜单中选择Compile,单独编译选中的合约文件。
部署智能合约
点击工具栏的【Deploy】按钮(船形状),合约部署弹窗将被打开,在这里可以输入部署合约所需要的各项参数:
- Compiled Contract:等待部署的合约编译输出文件,为JSON格式。一个项目内可能存在多个合约,可以通过下拉菜单中选择需要部署合约的编译输出文件;
- Constructor Parameters:合约构造函数需要的参数,PlatON Studio将自动根据数据格式生成参数表单,在此填入创建合约所需要的各项参数;
- Signer:为合约部署交易进行签名的密钥地址,需要为密钥管理器中已有的密钥,通过下拉菜单选择keypair-1密钥对;
- Gas Limit、Gas Price:合约部署的交易费用信息,部署前PlatON Studio会进行估算,也可使用自行填写的值进行覆盖。
另外,也可以在文件浏览器中,右键点击一个JSON格式的编译输出文件,在菜单中选择Deploy,对该合约进行部署。
在合约部署弹窗中选择HelloWorld.json,填写构造函数参数,并选择keypair-1为签名密钥地址。点击【Estimate & Deploy】按钮,PlatON Studio会自动估算所需的交易费用并填入对应栏目中。如需重新估算,请点击左侧绿色【Re-estimate】按钮。有时候预估的交易费用可能是不够的,如果部署的时候出现交易费用不足的错误,可以手动提高Gas Limit或Gas Price后重试。点击蓝紫色【Deploy】按钮,PlatON Studio将发送合约部署交易。
部署交易需要一些时间被区块链网络处理。大约十几秒后,PlatON Studio会弹出交易详情弹窗显示部署结果,包括部署参数(Parameters)、交易数据(Tx)、交易收据(Receipt)、ABI 等详细信息,可点击弹窗中的标签进行切换。若在本弹窗关闭之后仍想查看本次部署结果和交易详情信息,请参考历史交易记录。
调用合约
成功部署智能合约后,点击弹窗中【Contract Created】栏的合约地址,页面将自动切换至合约浏览器。你也可以点击顶部的【Contract】标签切换至合约浏览器,在地址栏中输入希望打开的合约地址。PlatON Studio支持同时打开多个合约,方便进行多合约的调试工作。
合约浏览器页面主要分为三个部分:
- 左边栏用于调用合约的写入方法:点击蓝紫色下拉框,选择希望调用该合约的写入方法;
- 中间栏用于进行合约的数据读取:点击蓝紫色下拉框,选择希望查询该合约的读取方法;
- 右边栏用于进行合约的事件查询,点击蓝紫色下拉框,选择希望查询该合约的事件。
PlatON Studio在部署合约后将自动保存合约ABI,并在读取合约时候通过ABI中的数据,生成上面的写入方法、数据读取、事件查询,和它们各自的参数表单。更多ABI的使用方法可以参考ABI Storage。
接下来我们在合约浏览器中打开刚刚部署的HelloWorld合约,演示如何使用写入方法、读取数据和查询事件。
首先在写入方法调用窗口中选择setName方法,这个方法将一个字符串储存在智能合约中。接下来填入完成交易必须的各项参数:
- 在Parameters下在_name栏中输入一个名字。我们在这里输入hello;
- 无需填写Gas & Storage栏目中的交易费用(由PlatON Studio自动估算);
- 在Authorization的Signer下拉菜单中选择keypair-1作为签名地址。
完成后,点击上方的方法名称旁的【Execute】按钮(三角形状)执行交易。稍后弹窗会提示交易成功及交易费用信息。
接下来,我们来验证一下上笔交易的结果。在合约读取窗口中选择getName数据栏,点击上方的数据名称旁的【Execute】按钮(三角形状)。结果会显示在下方Result栏目中,可以看到查询到的值为hello。这个结果与我们上笔交易中向智能合约储存的字符串名称一致,这验证了我们之前交易的结果。
有的合约中允许对合约上发生的事件进行查询,此时在右侧会显示相关表格。可以调用对应表格查询事件,操作方法与调用写入和读取方法一致。
ABI Storage
在使用合约浏览器时,PlatON Studio需要基于合约ABI生成各读写方法和查询事件的界面,底部栏中的ABI Storage就是保存这些合约ABI的地方。在合约部署成功后,PlatON Studio将自动保存合约的ABI。当鼠标移动到ABI条目上时,可以点击【Edit】按钮(铅笔形状)查看ABI原始数据,也可以点击【Delete】按钮删除ABI条目。
如果需要调用其它合约(例如线上合约),就需要将合约的ABI添加到ABI Storage中。使用ABI Storage中的【New】按钮即可完成该操作。为方便使用,PlatON Studio也会自动读取当前项目中已编译过合约的ABI,单击弹窗左下角【Select from the current project】按钮,从列表中选择即可。
历史交易记录
PlatON Studio会记录每笔发布到链上的交易。如需查看最近的交易记录,点击底部栏的【Transactions】按钮即可唤出最近交易记录的列表。可以点击单笔交易以打开交易确认弹窗,并查看交易详情、参数 (Parameters) 、交易数据 (Tx)、交易收据 (Receipt)等详细信息。
RPC Client
PlatON Studio还提供了直接从底层调用PlatON节点RPC接口的功能。点击底部栏的网络按钮,在弹出菜单中选择并打开RPC Client后,可以看到PlatON/Alaya节点的全部RPC接口。对每个RPC接口,PlatON Studio也将生成对应的参数表格,填写数据后点击【Execute】按钮运行,即可完成调用并查看返回数据。
本文转载自https://mp.weixin.qq.com/s/ETlNIxhvZTglONhaTgyiTw