pragma solidity ^0.4.24; contract Main{ function delegateAdd() public{ address delegateContract = new Delegate(); assert(delegateContract.delegatecall(bytes4( keccak256("someMethod(uint256,uint256,string)")), 100, 200, "Hello Crypto!")); } } contract Delegate{ event DelegateEvent(uint256 total, string var3); function someMethod(uint256 var1, uint256 var2, string var3) public { emit DelegateEvent(var1 + var2, var3); } }