TypeCasts
库
TypeCasts
库提供了简单高效的函数用于 address
和 bytes32
类型之间的转换。
当您需要在智能合约中使用 bytes32
类型,但仍需要将其转换回 address
类型(或反之)时,这个库非常有用。
TypeCasts
库
// SPDX-License-Identifier: MIT OR Apache-2.0
pragma solidity >=0.6.11;
library TypeCasts {
// alignment preserving cast
function addressToBytes32(address _addr) internal pure returns (bytes32) {
return bytes32(uint256(uint160(_addr)));
}
// alignment preserving cast
function bytes32ToAddress(bytes32 _buf) internal pure returns (address) {
require(
uint256(_buf) <= uint256(type(uint160).max),
"TypeCasts: bytes32ToAddress overflow"
);
return address(uint160(uint256(_buf)));
}
}