Solidity:来自其他智能合约的调用修饰符

问题描述 投票:0回答:1

假设我有一个令牌智能合约,其中包含一系列功能和修改器,以及另一个众包智能合约。在我的crowdsale智能合约中引用令牌智能合约允许我调用令牌功能。但是......我不能使用令牌智能合约中的修饰符。

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 {

    }

}

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

ethereum solidity
1个回答
0
投票

我目前的解决方法如下: - 在我的令牌智能合约中,我添加了一个“中间”功能。该函数在我的令牌中的修饰符中直接调用。 - 在我的众智智能合约中,我复制了修饰符,在其中调用了中间函数。

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

这种方法的默认设置是需要将“中间函数”设置为公共,以便从任何其他智能合约中调用,因此请注意选择该方法。

© www.soinside.com 2019 - 2024. All rights reserved.