Global API & Members
8 methodsSolidity 全局 API 与合约成员集合。
msg.sender当前调用的发起者地址(合约或外部账户)。
Returns
address payable,调用者地址
Example
solidity
function who() external view returns (address) {
return msg.sender;
}msg.value本次调用附带的 wei 数量。
Returns
uint256,wei 数量
Example
solidity
function deposit() external payable {
require(msg.value > 0, "no value");
balances[msg.sender] += msg.value;
}block.timestamp当前区块的时间戳(秒)。
Returns
uint256,Unix 秒级时间戳
Example
solidity
function nowPlusOneHour() external view returns (uint256) {
return block.timestamp + 1 hours;
}require(condition, reason)断言条件,失败时回滚交易并返回原因字符串。
Parameters
| Name | Type | Description |
|---|---|---|
| condition | bool | 断言条件 |
| reason | string | 失败原因(可选) |
Returns
无,失败时回滚
Example
solidity
function transfer(address to, uint256 amt) external {
require(amt > 0, "amount must be positive");
require(balances[msg.sender] >= amt, "insufficient");
balances[msg.sender] -= amt;
balances[to] += amt;
}payable(addr).transfer(amount)向地址转账指定 wei,失败回滚。
Parameters
| Name | Type | Description |
|---|---|---|
| address | address payable | 收款地址 |
| amount | uint256 | wei 数量 |
Returns
无,转账或回滚
Example
solidity
function withdraw(uint256 amt) external {
require(balances[msg.sender] >= amt, "low balance");
balances[msg.sender] -= amt;
payable(msg.sender).transfer(amt);
}address(this).balance查询当前合约的以太币余额。
Returns
uint256,合约持有的 wei
Example
solidity
function contractBalance() external view returns (uint256) {
return address(this).balance;
}keccak256(data)计算 bytes 数据的 Keccak-256 哈希。
Parameters
| Name | Type | Description |
|---|---|---|
| data | bytes memory | 待哈希数据 |
Returns
bytes32,32 字节哈希
Example
solidity
function hashId(uint256 id) external pure returns (bytes32) {
return keccak256(abi.encodePacked(id));
}emit Event(...)触发事件,日志写入交易回执供外部监听。
Parameters
| Name | Type | Description |
|---|---|---|
| event | event | 事件名 |
| args | ... | 事件参数 |
Returns
无,写入日志
Example
solidity
event Deposited(address indexed from, uint256 amount);
function deposit() external payable {
emit Deposited(msg.sender, msg.value);
}