Ethereum SOLIDATY中的委托调用-代理模式

Ethereum SOLIDATY中的委托调用-代理模式,ethereum,solidity,smartcontracts,Ethereum,Solidity,Smartcontracts,我正在用代理设计模式编写可升级的智能合约。在这里,当我从代理契约向逻辑契约方法进行委托调用时,我面临一个挑战,它向我抛出一条错误消息,如下所示。 我想知道我做错了什么 下面的代码是代理合约中的方法调用 /*Delegates calls to the Logic contract*/ function setAccepted() public returns(Status){ emit setToAccept(status,now,msg.sender);

我正在用代理设计模式编写可升级的智能合约。在这里,当我从代理契约向逻辑契约方法进行委托调用时,我面临一个挑战,它向我抛出一条错误消息,如下所示。

我想知道我做错了什么

下面的代码是代理合约中的方法调用

  /*Delegates calls to the Logic contract*/
    function setAccepted()  public returns(Status){

        emit setToAccept(status,now,msg.sender);
        bool success;
        bytes memory result;

        (success,result) = delegateContract.delegatecall(abi.encodePacked(bytes4(keccak256("setAccepted()"))));
        require(success);
        status = abi.decode(result, (Status));
        return status;

    }
逻辑合同代码如下

function setAccepted() public _WhenNoPaused returns(Status){
       return Status.Accepted;
   }

请提供源代码并指定您使用的函数call@StillFantasy-我已经在上面分享了我的源代码。