ERC-721合约编写
进入Web IDE:在nf-token-mock合约中定义了mint NFT的方法,项目开发I34-合约I633-定制53I9,我们进入该合约并执行编译操作。
Web IDE模拟部署与执行:不同于以太坊在线IDE编辑器如Remix,趣链BaaS的Web IDE直接提供模拟部署和执行环境,无需用户使用Metamask的测试网账户,相当于省去了用户在Metamask导入一个测试网账户并拥有测试通证的步骤,也无需在每次调用中进行签名授权,可提升调试效率。
个性化完善合约功能:本例的合约已经封装了很多函数方法,但开发者还可以根据需求编写更多功能,在模拟执行时还可以使用Debug操作帮助调试。
合约编译文件集成至SDK: 做完以上所有调试并编译完成后,可将最终的合约编译文件集成至趣链BaaS提供的SDK中,由此可通过SDK进行NFT合约的部署、调用等管理操作。
`// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// 第一个合约
contract HelloWorld {
// 状态变量
string public str = "Hello World!";
// set 函数
function set(string memory s) public {
str = s;
}
// get 函数
function get() public view returns(string memory) {
return str;
}
}
合约类(对象)
contract HelloWorld {
// 函数和数据
}
`在Solidity语言中,合约类似于其他面向对象编程语言中的类。contract 是定义合约类的关键字,HelloWorld 是合约名称。我们建议合约名称和本地文件名用同一个名称,且第一个字母大写。
合约还可以从其他合约继承,可以是一些特殊的合约,比如库(library)和接口(interface)。这些知识点我们会在后续的课程中讲解。
状态变量`
string public str = "Hello World!";
这段代码中的 str 就是一个状态变量,它是一个存储在合约存储中的值。
函数
function set(string memory s) public
function get() public view returns(string memory)`