Solidity学习笔记(一) 智能合约开发第一步——「Hello World」

Solidity 智能合约开发第一步 ——「Hello World」

通过“Hello world”实例的开发,初步理解Solidity的工作原理,并能够使用Remix( Solidity IDE)在以太坊平台上创建自己的智能合约。

第1步:创建文件

转到 Remix IDE 网站。Remix是一个集成开发环境,可以帮助你编写智能合约。它可以在线使用,并且可以非常轻松地编写,调试和部署智能合约。

如果你访问成功将会有如下界面:
在这里插入图片描述
接下来,单击左上角的+符号以创建新合约并将其命名为Hello.sol

第2步:规定版本Pragma

规定合约兼容的编译器版本,规定最低版本0.4.0,并且兼容任何版本高达0.5.0。我们通过在最小版本之前添加^符号来实现此目的,如下所示。

pragma solidity ^0.4.0;

第3步:声明合同

很像用Java等其他语言声明一个类。我们使用关键字契约而不是类,合同名称应与.sol文件的名称相匹配。在我们的例子中,我们将合约命名为Hello。

contract Hello { }

第4步:声明变量

在本合同中,我们将使用两个变量。第一个变量是 address 类型。address 基本上是指以太坊上的帐户。当您引用address时,指的是用户帐户或智能合约帐户。第二个变量是string类型。字符串是一种普遍存在的数据类型,所以不在说它。

我们将命名我们的变量创建者和问候语。creator变量将存储部署智能合约的帐户的地址,而greeting变量将保存我们可以在合同状态下返回或操作的字符串。

contract Hello {
    address creator;
    string greeting;
    }

第5步:构造函数

使用msg.sender初始化creator变量,msg是一个全局可用的对象,它提供有关调用合同或函数的事务的信息。

  function Hello(string _greeting){
        greeting = _greeting;
        creator = msg.sender;
    }

第6步:编写常量函数

添加一个名为greet()的常量函数。此函数将返回string类型的变量greeting。

 function greet() constant returns(string){
        return greeting;
    }

第7步:使用setGreeting()更改合同状态

setGreeting() 的函数将字符串作为参数,该函数将我们的greeting变量分配给参数。

function setGreeting(string _greeting){
        greeting = _greeting;
    }

第8步:将合同部署到沙箱

现在我们的合同已经完成,我们将把它部署到内置的沙箱区块链中以查看它的实际运行情况。你的代码应如下所示:

pragma solidity ^0.4.0; 

contract Hello {
    address creator;
    string greeting;
    
    function Hello(string _greeting){
        greeting = _greeting;
        creator = msg.sender;
    }
    
    function greet() constant returns(string){
        return greeting;
    }
    
    function setGreeting(string _greeting){
        greeting = _greeting;
    }
}

部署合约

1.单击编辑器右侧的“run”选项,从第一个下拉菜单中选择JavaScript VM。
2.在"deploy"按钮旁边的字段中输入字符串“Hello World”。
你的屏幕应如下所示:
在这里插入图片描述
3.单击“Deploy”按钮进行部署。部署完成后,您将在IDE底部的灰色终端区域中获得有关合约的信息。如果您展开该部分,您将看到类似于下面的内容:
在这里插入图片描述

状态 显示合同的部署状态。

合约地址 是您可以参考合同的以太坊地址。

起始地址 是部署合同的帐户的地址。

在这种情况下,To指的是为创建契约而调用的构造函数。

gas 是为部署合同而支付的金额。

第9步:与合约互动

部署完成后,您将看到右侧与合同交互的输入。将有一个下拉框,其中包含合同名称及其地址。在下面你会看到一个标有greet的按钮。当您单击该按钮时,它将调用greet函数并返回变量greeting的值。
在这里插入图片描述
我们可以在setGreeting按钮旁边的输入框中键入我们想要的任何字符串。例如我输入“Hello ZYP”,然后再次按下“greet”按钮,它应该返回我们的新字符串。
在这里插入图片描述

至此已经编写并部署了第一份智能合约!
发布了23 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_35001005/article/details/83310761