| 1234567891011121314151617181920212223242526 |
- // SPDX-License-Identifier: GPL-2.0-or-later
- pragma solidity ^0.7.6;
- pragma abicoder v2;
- // base library
- library TransferHelper {
- function safeApprove(address token, address to, uint256 value) internal {
- (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
- require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED.');
- }
- function safeTransfer(address token, address to, uint value) internal {
- (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
- require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED.');
- }
- function safeTransferFrom(address token, address from, address to, uint value) internal {
- (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
- require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED.');
- }
- function safeTransferETH(address to, uint value) internal {
- (bool success,) = to.call{value: value}(new bytes(0));
- require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
- }
- }
|