繁体   English   中英

另一个合约的呼叫功能失败

[英]Call function on another contract failed

我正在研究稳固性。

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

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

我不知道为什么不这样做。

(我将它部署到使用remix的罗普森)


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合同本身创建了一个新的TT3Token_Test部署(代码中未显示),否则TT3Token token = TT3Token(msg.sender)意义。 msg.sender是从中启动交易的地址(一个EOA帐户)。 它应该是您部署的TT3Token合同的地址。

同样,令牌由部署TT3Token合同的地址拥有。 你需要从同一个帐户转移令牌到TT3Token_Test为了地址调用sendTest成功。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM