solidity 中内置的方法和属性汇总

solidity 中内置的方法和属性汇总,详情请看下文。

地址类型

与地址类型紧密相关,用于地址的检查、转账等操作。 方法 / 属性 说明
balance 地址的以太币余额,如 address.balance
transfer(uint256 amount) 向指定地址转账,如 address.transfer(amount),转账失败会抛出异常
send(uint256 amount) 向指定地址转账,返回布尔值表示是否成功,如 address.send(amount)
call(bytes memory data) 低级别调用,可用于调用其他合约的函数或发送以太币,如 address.call{value: amount}(data)
delegatecall(bytes memory data) 委托调用,调用其他合约的代码但使用当前合约的存储,如 address.delegatecall(data)
staticcall(bytes memory data) 静态调用,不允许修改状态,如 address.staticcall(data)
  • address 与 address payable 在 Solidity 中,address 类型的变量不能接收或发送 Ether。如果需要进行这些操作,需要使用 address payable 类型。
    address payable public myPayableAddress;

    全局变量

    全局变量在合约的任何位置都能使用,以下是常见的全局变量:

变量名 说明
block 包含当前块信息,如 block.timestamp(当前块的时间戳)、block.number(当前块号)等
msg 包含当前消息调用的信息,如 msg.sender(消息发送者的地址)、msg.value(随消息发送的以太币数量)等
tx 包含当前交易的信息,如 tx.gasprice(当前交易的 gas 价格)

合约相关

在合约内部使用,用于合约的创建、销毁和信息获取等操作。

方法 / 属性 说明
this 表示当前合约实例,可用于获取合约地址,如 address(this)
selfdestruct(address payable recipient) 销毁当前合约,并将合约的余额发送到指定地址

数学和加密

常见的数学运算和加密操作。

方法 / 属性 说明
addmod(uint256 x, uint256 y, uint256 k) 计算 (x + y) % k,防止溢出
mulmod(uint256 x, uint256 y, uint256 k) 计算 (x * y) % k,防止溢出
keccak256(bytes memory data) 计算 Keccak-256 哈希值
sha256(bytes memory data) 计算 SHA-256 哈希值
ripemd160(bytes memory data) 计算 RIPEMD-160 哈希值

异常处理

用于处理合约执行过程中的异常情况。

方法 / 属性 说明
require(bool condition, string memory message) 检查条件是否满足,不满足则抛出异常并显示消息
assert(bool condition) 检查条件是否满足,不满足则抛出严重错误,通常用于内部错误检查
revert(string memory message) 立即终止执行并回滚状态,可提供错误消息
点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
mengbuluo222
mengbuluo222
前端开发求职中... 8年+开发经验,拥有丰富的开发经验,擅长VUE、React开发。