稳固性:来自其他智能合约的调用修正

时间:2019-03-24 18:42:39

标签: ethereum solidity

比方说,我有一个带有一系列功能和修饰符的令牌智能合约,还有另一个众包智能合约。 在我的众包智能合约中引用令牌智能合约可让我调用令牌功能。 但是...我无法使用令牌智能合约中的修饰符。

contract Crowdsale is Token {

    token private _token;

    constructor (ERC20 token) public {
        require(address(token) != address(0));

        _token = token;
    }

// this one works
    function test(address account) public view returns (uint256) {
        _token.functionFromToken(account);
    }

// This does not work because of modifierInToken
    function test2(address account) public modifierInToken {

    }

}

正常吗?如果是这样,是否有解决方法?

1 个答案:

答案 0 :(得分:0)

我当前的解决方法是: -在令牌智能合约中,我添加了“中间”功能。该函数在我的令牌中直接在修饰符中调用。 -在我的智能销售合约中,我复制了修饰符,并在其中调用了中间函数。

这样,每当我要更新来自原始智能合约的所有修改器时,我要做的就是编辑“中间”功能。

该方法的默认设置是需要将“中间功能”设置为public才能从其他智能合约中调用,因此请谨慎选择该方法。