跳到主要内容

TypeCasts

TypeCasts 库提供了简单高效的函数用于 addressbytes32 类型之间的转换。

当您需要在智能合约中使用 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)));
}
}