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值相当于从用户账户给合约账户进行转账,所以不能大于用户账户中的余额。