TransferHelper 库
库函数详解
安全授权函数
function safeApprove(address token, address to, uint value) internal {
// bytes4(keccak256(bytes('approve(address,uint256)')));
(bool success, bytes memory data) = token.call(
abi.encodeWithSelector(0x095ea7b3, to, value)
);
require(
success && (data.length == 0 || abi.decode(data, (bool))),
"TransferHelper: APPROVE_FAILED"
);
}安全转账函数
安全授权转账函数
安全ETH转账函数
ERC-20兼容性问题
标准差异
解决方案
在JAMM DEX中的应用
Router合约中的使用
代币转入
代币转出
ETH处理
Pair合约中的使用
使用示例
基本转账操作
批量转账
ETH和代币的统一处理
错误处理
常见错误类型
错误处理策略
安全考虑
重入攻击防护
Gas限制考虑
地址验证
与其他方案的比较
特性
TransferHelper
OpenZeppelin SafeERC20
直接调用
Last updated