木星链 木星链
Ctrl+D收藏木星链
首页 > 币安币 > 正文

ADD:技术教学 | Solidity编程语言:Address

作者:

时间:1900/1/1 0:00:00

地址

这里要说的地址并不是通常的编程语言中的内存地址,而是交易地址。我们知道区块链进行价值传递的时候必须是通过一个地址传递到另一个地址,无论交易或者合约都离不开地址。因此把地址作Address为Solidity语言的内嵌数据类型会十分方便开发的,更重要的一点就是在Solidity中,所有合约都继承地址Address类型。这不仅仅是单纯的为了在语法上的实现,而在实际情况是合约本身就离不开地址,包括合约的部署和执行都需要地址的参与。地址是两种类型,一种是address,一种是addresspayable。其中addresspayable相比address类型多了两个成员方法send和transfer,表示可以向addresspayable类型的变量进行转帐操作。

地址类型格式要求

以太坊中的地址是20个字节,比如0x52908400098527886E0F7030069857D2E4169EE7,由于一个字节等于8位,所以地址也可以使用uint160来声明。地址通常可以进行比较运算。

香港立法会议员:将e-HKD转变为稳定币将为采用Web3等新技术带来好处:金色财经报道,香港立法会议员吴杰庄在接受采访时表示,将e-HKD发展为稳定币,有潜力有效解决Web3中虚拟资产相关的风险。他称,这样的香港数字货币设计将有助于当局获得投资者对Web3行业的信任,并更好地保护用户免受黑客攻击等问题。目前市场上的稳定币都是由一些私人公司发行的,不受政府监管。他指的是2022年几个稳定币项目的失败,对加密市场造成了多米诺骨牌效应。他还指出,稳定币可以与DeFi连接起来,以便更好地在Web3生态系统中访问。[2023/1/5 10:23:22]

pragmasolidity>=0

functiongetOwner()publicreturns(address){returnowner;}

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“蓝莲花”知名。

标签:ADDDDRESSDRESaddleDDRT币borderlessDrEE

币安币热门资讯
KLAY:重磅丨外媒:三星今日开卖区块链版Galaxy Note 10,买手机还送加密货币

据报道,韩国电子巨头三星电子(SamsungElectronics)将发布新版GalaxyNote10智能手机,这款特别版本的手机将预装加密货币钱包,以推动区块链技术的应用.

1900/1/1 0:00:00
比特币:分析:Hodling 比特币仍然有利可图吗?

“HODL”是虚拟资产领域中一个相当常用的术语,经常被使用,指的是投资者或交易员之间进行金融讨论时使用的“比特币”.

1900/1/1 0:00:00
比特币:深度 | 枯水期临近,比特币挖矿全产业链解析

摘要比特币是值得关注的另类资产。因为投资回报率高、流动性好、与其他资产相关性小等特点,比起它志在成为全球货币的目标,比特币更像是一种值得关注的另类的投资标的.

1900/1/1 0:00:00
区块链:研报 | 区块链审计模式解析

区块链作为一项颠覆性技术,在各行各业中加速应用。区块链模式应用于大数据审计,与大数据审计的融合,称为区块链审计模式.

1900/1/1 0:00:00
区块链:三星、SM、LG、KT,韩国巨头进击区块链

韩国对区块链的兴趣正在升温,从娱乐、社交到手机、电信再到银行,韩国各个行业的巨头都在跑步入局区块链。韩国区块链的版图也正在日益扩大,成为区块链世界中一股不可小觑的力量.

1900/1/1 0:00:00
区块链:《2019上海区块链技术与应用白皮书》今日发布(附下载)

巴比特消息,9月6日,2019中国区块链技术创新峰会在上海市杨浦区举行。本次大会由上海市科学技术委员会、上海市经济和信息化委员会、杨浦区人民政府、上海市科学技术协会、上海科学院联合主办,上海区块.

1900/1/1 0:00:00