今天给大家聊聊智能合约账户之间的转账,并给出了代码。
这里我们了解一下solidity中的匿名函数。这个匿名函数主要用于转账。
pragma solidity ^0.4.24;
contract demo{
address public addr0 = 0x00ca35b7d915458ef540ade6068dfe2f44e8fa733c;
//地址address类型本质上是一个160位的数字
//可以进行加减,需要强制转换
function add() public view returns(uint160) {
return uint160(addr1) + 10;
}
//1. 匿名函数一般用来给合约转账,因为费用低
//2. 这个匿名函数是由发起合约方对合约地址账户转账
function () public payable {
}
function getBalance() public view returns(uint256) {
return addr1.balance;
}
function getContractBalance() public view returns(uint256) {
//this代表当前合约本身
//balance方法,获取当前合约的余额
return address(this).balance;
}
}
pragma solidity ^0.4.24;
contract demo02 {
address public addr1 = 0x0014723a09acff6d2a60dcdf7aa4aff308fddc160c;
//地址address类型本质上是一个160位的数字
//1. 匿名函数一般用来给合约转账,因为费用低
//2. 这个匿名函数是由发起合约方对合约地址账户转账
function () public payable {
}
function getBalance() public view returns(uint256) {
return addr1.balance;
}
function getContractBalance() public view returns(uint256) {
//this代表当前合约本身
//balance方法,获取当前合约的余额
return address(this).balance;
}
//由合约向addr1 转账10以太币
function transfer() public {
//1 ether = 10 ^18 wei (10的18次方)
addr1.transfer(10 * 10 **18);
}
//send转账与tranfer使用方式一致,但是如果转账金额不足,不会抛出异常,而是会返回false
function sendTest() public {
addr1.send(10 * 10 **18);
}
}
注意:在solidity中tranfer转账函数,这个函数使用方法是向哪个address转账,就用这个address调用address.tranfer()(转账单位是“wei”)。这个转账是由当前合约账户余额向该地址转账。如果当前合约地址账户余额不足,会抛出异常。(但solidity转账函数还有一个send(),转账一般不用这个,因为合约账户余额不足进行转账,send函数不会抛出异常)。
我们知道微软将会在今年下半年推出Win10 21H2新版,这个版本的Win10会带来全新的...
在学习前端的过程中,我们经常会碰到offset, client与scroll,所以我就把它们称...
MySQL数据是如何存储的? 聚集索引 我们先建如下的一张表 CREATE TABLE `student`...
本文实例分析了js正则表达式中的单行模式与多行模式。分享给大家供大家参考。具...
生产力应用确实可以让你的工作流程变得更加轻松。在本文中,我将分享一些我用来...
前端面试刷题网站 PS自己找的发个博是怕自己给忘了 阿西河 阿西河的面试题非常全...
Git合并分支后,需要将子分支提交到git仓库,这个时候就需要单独提交子分支,其...
jquery是对javascript很好的封装,而且很轻量级,可以近似的将其称其为框架,下...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
demo: function FCKeditor_OnComplete( editorInstance ) { editorInstance.Edi...