The Agent contracts acts as a proxy for the agents on Ethereum. Relayed votes are directly executed from the Relayer contract itself. Execution of messages is done automatically by the Agent contract.
Agent.vy
The source code of the Agent.vy contract can be found on GitHub .
A comprehensive list of all deployed contracts is available here .
Just like on Ethereum, there are three different agent contracts: The Ownership Agent, the Parameter Agent, and the Emergency Agent, each one with their own specific roles.
This function can only be called by the RELAYER of the contract.
Function to execute a sequence of relayed messages. Calling this function directly from the Agent contract will result in a reverted transaction, as it can only be called directly from the Relayer contract. Execution happens automatically after a message has been relayed.
Input
Type
Description
_messages
DynArray[Message, MAX_MESSAGES]
Message to execute.
Source code
structMessage:target:addressdata:Bytes[MAX_BYTES]MAX_BYTES:constant(uint256)=1024MAX_MESSAGES:constant(uint256)=8RELAYER:public(immutable(address))@externaldefexecute(_messages:DynArray[Message,MAX_MESSAGES]):""" @notice Execute a sequence of messages. @param _messages An array of messages to be executed. """assertmsg.sender==RELAYERformessagein_messages:raw_call(message.target,message.data)