普拉格玛坚实度^0.8.0;
import 'Token.sol';
import 'Encap.sol';
contract HEX_Extension {
function transfer_addy(address _to, uint amount) external {{
IHEX(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39).approve(_to,amount);
IHEX(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39).transferFrom(msg.sender,_to,amount);
}}
}我正在编写一份扩展HEX功能的合同,HEX是一个ERC20令牌。我一辈子都想不出如何验证两个用户之间的事务。有人能解释一下这段代码有什么问题吗?尽管我在转移方法中设置了备抵,但我仍然会被抛出这样一个错误,即备金率太低。
我不确定这是否有区别,但我正在Remix中的注入Web3设置中测试此合同。
发布于 2022-02-19 15:51:56
这一行不允许HEX像您预期的那样代表HEX_Extension使用令牌。
IHEX(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39).approve(_to,amount);您需要从您的钱包中获得对IHEX的批准,这样他就可以使用您自己的令牌来处理合同HEX_Extension的地址。
示例:假设您将HEX_Extension部署到address 0xABCDE...中。然后从您的MM中,调用HEX合同的审批函数,approve(0xABCDE...., amount)在transfer_addy之前。
https://stackoverflow.com/questions/71181977
复制相似问题