编写一个合约,测试Solidity中一些全局变量用来提供区块(或链)当前的信息。从而掌握这些变量的类型以及作用
时间: 2024-05-07 10:20:47 浏览: 16
以下是一个简单的合约,用来测试Solidity中一些全局变量的类型和作用:
```
pragma solidity ^0.8.0;
contract GlobalVariables {
address public owner;
uint public blockNumber;
uint public difficulty;
uint public gasLimit;
uint public timestamp;
constructor() {
owner = msg.sender;
blockNumber = block.number;
difficulty = block.difficulty;
gasLimit = block.gaslimit;
timestamp = block.timestamp;
}
}
```
在这个合约中,我们定义了一个名为 `GlobalVariables` 的合约,其中包含了五个公共变量:`owner`、`blockNumber`、`difficulty`、`gasLimit` 和 `timestamp`。这些变量都是 Solidity 中的全局变量,用于提供当前区块(或链)的信息。
`owner` 变量是一个 `address` 类型的变量,用于存储合约的拥有者地址。在合约的构造函数中,我们使用 `msg.sender` 全局变量来初始化 `owner` 变量,这个变量会存储合约被创建的账户的地址。
`blockNumber`、`difficulty`、`gasLimit` 和 `timestamp` 变量都是 `uint` 类型的变量,分别用于存储当前区块的区块号、难度、gas 限制和时间戳。在合约的构造函数中,我们使用 `block` 全局变量来初始化这些变量,这些变量会存储当前区块的信息。
通过部署这个合约,我们可以查看当前区块的信息,并了解这些全局变量的类型和作用。