地址
这里要说的地址并不是通常的编程语言中的内存地址,而是交易地址。我们知道区块链进行价值传递的时候必须是通过一个地址传递到另一个地址,无论交易或者合约都离不开地址。因此把地址作Address为Solidity语言的内嵌数据类型会十分方便开发的,更重要的一点就是在Solidity中,所有合约都继承地址Address类型。这不仅仅是单纯的为了在语法上的实现,而在实际情况是合约本身就离不开地址,包括合约的部署和执行都需要地址的参与。地址是两种类型,一种是address,一种是addresspayable。其中addresspayable相比address类型多了两个成员方法send和transfer,表示可以向addresspayable类型的变量进行转帐操作。
Gate芝麻开门开启 NFT魔盒“人人皆可NFT”创作者招募计划:据官方公告,为鼓励更多优秀创作者加入NFT魔盒平台,Gate芝麻开门正式启动NFT魔盒“人人皆可NFT”创作者招募计划:艺术家、普通用户及专业NFT机构均可申请“官方认证”,通过认证后,创作者可优先享有推广资源、 流量资源、创作基金以及Gate芝麻开门年均百万增量用户市场的超高流动性,赋能NFT作品,共享人人皆可NFT的创作浪潮。[2021/6/28 0:11:48]
地址类型格式要求
以太坊中的地址是20个字节,比如0x52908400098527886E0F7030069857D2E4169EE7,由于一个字节等于8位,所以地址也可以使用uint160来声明。地址通常可以进行比较运算。
Calibration重置后RRMINE/人人矿场矿工号T01111(RRM)率先出块:北京时间8月1日,Calibration网络正式重置。重置后,人人矿场IPFS算力,矿工号“t01111”标签RRM,通过雅典娜矿池接入Calibration校准网络,率先出块,荣登排行榜第一,仅次于官方账号。
目前,Calibration网络拥堵依然严重,消息上链时间较长,且Windowpost需在半小时完成,因此,目前网络算力并不稳定。[2020/8/1]
pragmasolidity>=0
functiongetOwner()publicreturns(address){returnowner;}
人人影视开启数字加密货币捐赠一个月,收到价值约20万人民币的捐赠:据公众号区块律动BlockBeats,一个月前,人人字幕组对外表示为了改善客户端的带宽压力和开发支出压力开始接受捐赠,但仅限于接受加密数字货币的捐赠。30天过去了,按照网站上给出的地址查询交易记录,发现他们一共只收到了2.2个比特币,10.7个以太坊,3.1 个比特币现金,加在一起约20万人民币。而维基百科在2014年7月开始接受比特币捐款后,一周之内收到了价值14万美元的比特币,当时比特币的价格还在600 美元上下。[2018/4/29]
functiongetContractAddr()publicviewreturns(address){returnaddress(this);}
functiongetSenderAddr()publicreturns(address){returnmsg
}
msg
functiontestTranser()payablepublic{addresspayableto=0x52908400098527886E0F7030069857D2E4169EE7;to
functiontestStack1024(uintdepth)payablepublic{addresspayableto=0x52908400098527886E0F7030069857D2E4169EE7;boolr=to
}
/*functiontestCSend()payablepublic{addresspayableto=address(this);this
*/
/*functiontestCTranser()payablepublic{//addresspayableto=0x52908400098527886E0F7030069857D2E4169EE7;address(this)
*/}
方法:
send
send方法相比较transfer方法来说更“底层”一些,如果send方法执行失败,并不会抛出异常,而是返回false。
send调用栈深度不能超过1024,否则会执行失败。这个问题在testStack1024方法中进行了验证,不过传入的数字太大的话,会执行失败,即使没到1024,原因还没找到。
send方法会返回bool类型的结果来表示执行结果。
如果gas不够会执行失败。
建议使用transfer方法,相对更安全些。
transfer
transfer和send使用方法上一样,也是用来进行转帐操作,如果当前帐户余额不足或者对方帐户拒绝转帐,则会执行失败。
如果transfer的调用地址是一个合约地址,则合约的回调函数将被执行。
关call及delegatecall、staticcall单独使用一篇幅来讲。
作者:感谢HPB蓝莲花团队整理供稿。
注:如有问题请在下方留言联系我们技术社群。
汪晓明博客:http://wangxiaoming.com/
汪晓明:HPB芯链创始人,巴比特专栏作家。十余年金融大数据、区块链技术开发经验,曾参与创建银联大数据。主创区块链教学视频节目《明说》30多期,编写了《以太坊官网文档中文版》,并作为主要作者编写了《区块链开发指南》,在中国区块链社区以ID“蓝莲花”知名。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。