// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
contract Transfer {
//测试链USDT地址
address constant USDTAddr = 0xEa51342dAbbb928aE1e576bd39eFf8aaf070A8c6;
//查询授权了多少
function allowance(address to) public returns(uint256){
// bytes4(keccak256('allowance(address,uint256)'));
(, bytes memory data) = USDTAddr.call(abi.encodeWithSelector(0xdd62ed3e,msg.sender, to));
(uint256 amount)=abi.decode(data,(uint256));
return amount;
}
//授权
function approve(address to,uint256 value) public returns(bool){
// bytes4(keccak256('approve(address,uint256)'));
(, bytes memory data) = USDTAddr.call(abi.encodeWithSelector(0x095ea7b3, to, value));
(bool status)=abi.decode(data, (bool));
return status;
}
}
我是在波场测试的,代码就这么多,执行授权没有报错,查询授权了多少,返回是0。请问应该如何写代码。接口应该没调用错,我用dapp调用合约都没问题,用自己写的合约调用这个合约的授权就没效果。
人民币求教,感谢大佬回复