【精解】开发一个智能合约 (4)

仔细观察上面的代码,Remix帮我们将代码转成了EVM可识别的样子,也就是将Solidity代码编译成web3的版本,其中也帮我们估算好了gas的金额,当我们执行这段合约时会自动扣掉我们余额中相应的数值作为gas费用。

接着,我们回到console,先解锁智能合约发布者的账号,我们选择刚才新建的

> personal.unlockAccount(eth.accounts[1],"lwb") true

然后将上面的web3版的代码复制过来,回车,输出:

Contract mined! address: 0x71db931bdb2f9516cf892aa0c620bd686d1095e5 transactionHash: 0x6e39a97dd2f260517bedeb9934cf88430526b46a379d5680cc092d8ea3f44602

合约被挖出,打印出来了合约地址,交易hash(这在以太坊中也被认定为是一笔交易,我们付费gas给以太坊)。
然后继续在console中输入

> helloworld.getContent() "hello world"

由于我们余额是79000,上面gas给预估的是4700000,所以预想结果是您的余额不足,合约无法运行,然而合约部署运行成功了。

我们从大款那再转账一个以太币过来。然后关闭重启geth console,重复上面的操作。

TODO: 余额仍旧未减少。不知道gas扣到哪去了。

同步查看日志输出:

INFO [02-06|17:36:34] Submitted contract creation fullhash=0x6e39a97dd2f260517bedeb9934cf88430526b46a379d5680cc092d8ea3f44602 contract=0x71DB931bdb2f9516Cf892aA0c620bD686D1095E5 INFO [02-06|17:36:34] Commit new mining work number=18 txs=1 uncles=0 elapsed=313.823µs INFO [02-06|17:36:34] Successfully sealed new block number=18 hash=37913b…f101af INFO [02-06|17:36:34]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywsjf.html