本文僅記錄一種兼容 ETH 與 ERC20 資產的庫合約;
1. 庫合約原始碼(0.6.12)
本合約來自網路;
pragma solidity ^0.6.12;
import "../utils/math/SafeMath.sol";
import "../token/ERC20/IERC20.sol";
import "../token/ERC20/utils/SafeERC20.sol";
library UniversalERC20 {
using SafeMath for uint256;
using SafeERC20 for IERC20;
IERC20 private constant ZERO_ADDRESS =
IERC20(0x0000000000000000000000000000000000000000);
IERC20 private constant ETH_ADDRESS =
IERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);
function universalTransfer(
IERC20 token,
address to,
uint256 amount
) internal returns (bool) {
if (amount == 0) {
return false;
}
if (isETH(token)) {
address(uint160(to)).transfer(amount);
} else {
token.safeTransfer(to, amount);
}
return true;
}
function universalTrans
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/400640.html
標籤:區塊鏈
