购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 Remix环境的使用方法2

这里我们使用第1章已经安装好的Remix环境,可以看到新版的Remix界面和老版本的不一样,但其对应的功能变化并不大,如图2.8所示。

图2.8

2.2.1 部署学习

我们已经介绍了Remix的功能,下面使用新版本的Remix进行部署。新建一个hello.sol,如图2.9所示,并粘贴图2.4中所提供的Hello合约代码。

图2.9

单击箭头指向的按钮可切换到编译面板,选择代码对应的Solidity版本0.5.1,单击“Compile hello.sol”按钮即可进行编译。若没有报错,则表示编译成功,如图2.10所示。

单击箭头指向的按钮切换到部署面板,在“ENVIRONMENT”的下拉框中选择“JavaScript VM(London)”选项,这是Remix自带的私链环境,如图2.11所示。

选择部署环境后,单击“Deploy”按钮即可部署合约。部署成功后,“0XD91…39138”就是我们所说的合约地址,同时在下方可以看到“echo”按钮和参数输入框。输入字符串“hello world”并单击“echo”按钮执行echo函数,即可返回字符串“hello world”,如图2.12所示。

图2.10

图2.11

图2.12

注意: 在新版本中,输入任何类型的字符串都不用加双引号。

2.2.2 构造函数

在上面我们讲的例子中,部署的合约是没有构造函数初始化数据的,现在我们来看一个合约中有构造函数且有参数是怎么部署的。编写一个Test合约,同时这个合约含有构造函数constructor,在构造函数中初始化x的值,这里使用的是Solidity 0.8.10版本,其代码如下:

编译后,切换到部署页面,输入要初始化的值。这里输入的初始值为“100”,再单击“Deploy”按钮。部署成功后,单击“x”按钮可以看到返回值为“100”,如图2.13所示。

图2.13

2.2.3 初始化合约余额

我们讲了合约如何初始化参数,下面介绍初始化合约余额的方法。编写一个Test合约,想要实现初始化合约余额,构造函数必须修饰为payable。否则,在初始化合约余额时将会抛出错误。在上面编写Test合约的例子中,构造函数是没有payable修饰的。合约的构造函数可以为空,不定义其他操作。下面我们定义一个get_balance函数来获取初始化后的余额,address(this)代表的就是合约本身的地址,其代码如下:

编译后,切换到部署页面,选择用户账户为0x5B38Da6a701c568545dCfcB03FcB875f 56beddC4,在“VALUE”的输入框中输入要转给合约的ETH,这里输入“100”,单位为“Wei”。部署成功后单击“get_balance”按钮执行get_balance函数,可以看到余额返回值为“100”,如图2.14所示。

图2.14

从上面的例子中可以看到,通过合约的构造函数,我们可以初始化合约的数据或余额。

注意: 在初始化合约的余额时,构造函数必须修饰为payable。这里输入的value值相当于从用户账户给合约账户进行转账,所以不能大于用户账户中的余额。 3pf4DbtGAiNHxtr+uDNdN2LjVGPtmOF9MWu3dFlAst6v/ZE8y951GKofnOYe4CXJ

点击中间区域
呼出菜单
上一章
目录
下一章
×