Skip to content

Sequence diagram

Communication

This diagram shows the communication flow between the AEAs and their environment.

sequenceDiagram activate KeeperAgent activate ConsensusEngine activate OtherAgents activate Blockchain activate PriceAPI activate RandomnessSource Note left of KeeperAgent: HealthCheck KeeperAgent->>ConsensusEngine: get_status ConsensusEngine-->>KeeperAgent: ok_response OtherAgents->>ConsensusEngine: get_status ConsensusEngine-->>OtherAgents: ok_response Note left of KeeperAgent: Initialization ConsensusEngine-->>KeeperAgent: ready_signal ConsensusEngine-->>OtherAgents: ready_signal Note left of KeeperAgent: Registration KeeperAgent->>ConsensusEngine: register_service KeeperAgent->>ConsensusEngine: search_agents OtherAgents->>ConsensusEngine: register_service OtherAgents->>ConsensusEngine: search_agents ConsensusEngine-->>KeeperAgent: list_of_agents ConsensusEngine-->>OtherAgents: list_of_agents Note left of KeeperAgent: Randomness KeeperAgent->>RandomnessSource: get_randomness RandomnessSource-->>KeeperAgent: randomness OtherAgents->>RandomnessSource: get_randomness RandomnessSource-->>OtherAgents: randomness Note left of KeeperAgent: KeeperSelection KeeperAgent->>ConsensusEngine: vote_keeper OtherAgents->>ConsensusEngine: vote_keeper ConsensusEngine-->>KeeperAgent: keeper ConsensusEngine-->>OtherAgents: keeper Note left of KeeperAgent: DeploySafe KeeperAgent->>Blockchain: deploy_safe_contract Blockchain-->>KeeperAgent: contract_adress KeeperAgent->>ConsensusEngine: contract_adress Note left of KeeperAgent: ValidateSafe KeeperAgent->>ConsensusEngine: validate OtherAgents->>ConsensusEngine: validate ConsensusEngine-->>KeeperAgent: validated ConsensusEngine-->>OtherAgents: validated Note left of KeeperAgent: DeployOracle KeeperAgent->>Blockchain: deploy_oracle_contract Blockchain-->>KeeperAgent: contract_adress KeeperAgent->>ConsensusEngine: contract_adress Note left of KeeperAgent: ValidateOracle KeeperAgent->>ConsensusEngine: validate OtherAgents->>ConsensusEngine: validate ConsensusEngine-->>KeeperAgent: validated ConsensusEngine-->>OtherAgents: validated Note left of KeeperAgent: Observation KeeperAgent->>PriceAPI: observe_price PriceAPI-->>KeeperAgent:price_observation OtherAgents->>PriceAPI: observe_price PriceAPI-->>OtherAgents: price_observation KeeperAgent->>ConsensusEngine: collect_observations ConsensusEngine-->>KeeperAgent: observations OtherAgents->>ConsensusEngine: collect_observations ConsensusEngine-->>OtherAgents: observations Note left of KeeperAgent: Estimation KeeperAgent->>KeeperAgent: estimate_price OtherAgents->>OtherAgents: estimate_price Note left of KeeperAgent: TransactionHash KeeperAgent->>ConsensusEngine: transaction_hash Note left of KeeperAgent: Signature ConsensusEngine-->>OtherAgents: collect_tx KeeperAgent->>ConsensusEngine: tx_signature OtherAgents->>ConsensusEngine: tx_signature ConsensusEngine-->>KeeperAgent: collect_signatures ConsensusEngine-->>OtherAgents: collect_signatures Note left of KeeperAgent: Finalization KeeperAgent->>Blockchain: final_tx Blockchain-->>KeeperAgent: final_tx_hash KeeperAgent->>ConsensusEngine: final_tx_hash ConsensusEngine-->>OtherAgents: final_tx_hash Note left of KeeperAgent: ValidateTx KeeperAgent->>ConsensusEngine: validate OtherAgents->>ConsensusEngine: validate ConsensusEngine-->>KeeperAgent: validated ConsensusEngine-->>OtherAgents: validated Note left of KeeperAgent: End KeeperAgent->>KeeperAgent: end OtherAgents->>OtherAgents: end deactivate KeeperAgent deactivate ConsensusEngine deactivate OtherAgents deactivate Blockchain deactivate PriceAPI deactivate RandomnessSource