Forwarding
How does it work?
Example
pragma solidity 0.4.24;
import "@aragon/os/contracts/apps/AragonApp.sol";
import "@aragon/os/contracts/common/IForwarder.sol";
contract Voting is IForwarder, AragonApp {
/**
* @notice Creates a vote to execute the desired action, and casts a support vote
* @dev IForwarder interface conformance
* @param _evmScript Start vote with script
*/
function forward(bytes _evmScript) public {
require(canForward(msg.sender, _evmScript));
_newVote(_evmScript, "", true);
}
function canForward(address _sender, bytes _evmCallScript) public view returns (bool) {
return canPerform(_sender, CREATE_VOTES_ROLE, arr());
}
function isForwarder() public pure returns (bool) {
return true;
}
}Last updated
Was this helpful?
