Solidity全局变量完全测试
我们知道,在Solidity中有很多全局变量,例如我们最常用的
msg.sender, block.timestamp
等。但是有一些我们平常基本接触不到,例如:type(C).name
等。本着凡事最怕认真两字的原则,虽然繁琐,但我们将所有的全局变量全部测试一遍,学习怎么调用和应用在哪些场景,进一步加深理解与记忆。
本文基于Solidity 0.8.9版本与hardhat
工具进行,在最新的0.8.13
版本增加了两个全局变量abi.encodeCall
与string.concat
,因当前版本的hardhat
暂不支持 Solidity 0.8.13
,故没有进行这两项测试。
另外,有少数项目也不方便测试,期待有人能改进完善测试方法。
测试合约
我们的测试合约如下:
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.9;interface <