我使用官方代码创建了一个token合约,并且我创建了一个新合约。现在希望用这个新合约调用token合约,将token从A账户转移到B账户,遇到配额不可转让的问题。
pragma solidity ^0.4.17;
interface Token {
function approve(address spender, uint256 value) public returns (bool);
function transferFrom(address from, address to, uint256 value) public returns (bool);
}
/**
* The TrxCoin contract does this and that...
*/
contract TrxCoin {
Token token = Token(0xAc08fe3C9F442990C52904dE997D9972499bD3E6);
function getContractAddr() view public returns (address) {
return this;
}
function approve(address spender, uint256 value) public {
require(token.approve(spender, value));
}
function transfer(address _to, uint value) public payable {
require(token.transferFrom(msg.sender, _to, value));
}
}
当我使用代币合约直接调用approve方法时,可以通过新合约进行转账,但是不能通过新合约调用approve方法直接分配配额。
为什么是这样?谢谢你的回答!