NFT代币铸造赋能质押借贷dapp系统开发合约详情

152 阅读2分钟

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)`