Skip to content


This module contains the data classes for the oracle deployment ABCI application.

OracleDeploymentBaseBehaviour Objects

class OracleDeploymentBaseBehaviour(BaseBehaviour)

Base behaviour for the common apps' skill.


def synchronized_data() -> SynchronizedData

Return the synchronized data.


def params() -> Params

Return the synchronized data.

RandomnessOracleBehaviour Objects

class RandomnessOracleBehaviour(RandomnessBehaviour)

Retrieve randomness for oracle deployment.

SelectKeeperOracleBehaviour Objects

class SelectKeeperOracleBehaviour(SelectKeeperBehaviour)

Select the keeper agent.

DeployOracleBehaviour Objects

class DeployOracleBehaviour(OracleDeploymentBaseBehaviour)

Deploy oracle.


def async_act() -> Generator

Do the action.

Steps: - If the agent is the designated deployer, then prepare the deployment transaction and send it. - Otherwise, wait until the next round. - If a timeout is hit, set exit A event, otherwise set done event.

ValidateOracleBehaviour Objects

class ValidateOracleBehaviour(OracleDeploymentBaseBehaviour)

Validate oracle.


def async_act() -> Generator

Do the action.

Steps: - Validate that the contract address provided by the keeper points to a valid contract. - Send the transaction with the validation result and wait for it to be mined. - Wait until ABCI application transitions to the next round. - Go to the next behaviour (set done event).


def has_correct_contract_been_deployed() -> Generator[None, None, bool]

Contract deployment verification.

OracleDeploymentRoundBehaviour Objects

class OracleDeploymentRoundBehaviour(AbstractRoundBehaviour)

This behaviour manages the consensus stages for the oracle deployment.

Back to top