调用另一个合约上的函数失败



我正在学习固体。

在测试网上生成TT3令牌没有问题,但TT3Token_Test失败了。 (TT3Token和TT3Token_Test已部署到同一钱包地址(

https://ropsten.etherscan.io/tx/0x4099019ecc47640dc7d3ceb3de3d50759f4e5ebc6d730410cda992c97d78ea10

我不知道为什么不。

(我使用混音将其部署到ropsten(


pragma solidity ^0.4.23;
import "./StandardToken.sol"; // openzeppelin
contract TT3Token is StandardToken {
string public constant name = "TT3Token";
string public constant symbol = "TT3";
uint8 public constant decimals = 18;
uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(decimals));
constructor() public {
totalSupply_ = INITIAL_SUPPLY;
balances[msg.sender] = INITIAL_SUPPLY;
emit Transfer(0x0, msg.sender, INITIAL_SUPPLY);
}
function sendTest(address _to, uint256 _value) public {
transfer(_to, _value);
}
}
contract TT3Token_Test {
constructor() public {
address r = 0xEcA254594c5bBCCEBc321e9252cc886cE37Be914;
TT3Token token = TT3Token(msg.sender);
token.sendTest(r, 99 * (10 ** uint256(18)));
}
}
TT3Token token = TT3Token(msg.sender)

没有意义,除非是TT3Token协定本身正在创建新的TT3Token_Test部署(未显示在代码中(。msg.sender是发起交易的地址(EOA账户(。它应该是已部署TT3Token合约的地址。

此外,代币归部署TT3Token合约的地址所有。您需要将令牌从同一帐户转移到TT3Token_Test地址,以便调用sendTest成功。

最新更新