Skip to content


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

SafeDeploymentBaseBehaviour Objects

class SafeDeploymentBaseBehaviour(BaseBehaviour)

Base behaviour for the common apps' skill.


def synchronized_data() -> SynchronizedData

Return the synchronized data.

RandomnessSafeBehaviour Objects

class RandomnessSafeBehaviour(RandomnessBehaviour)

Retrieve randomness for oracle deployment.

SelectKeeperSafeBehaviour Objects

class SelectKeeperSafeBehaviour(SelectKeeperBehaviour)

Select the keeper agent.

DeploySafeBehaviour Objects

class DeploySafeBehaviour(SafeDeploymentBaseBehaviour)

Deploy Safe.


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.

ValidateSafeBehaviour Objects

class ValidateSafeBehaviour(SafeDeploymentBaseBehaviour)

Validate Safe.


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.

SafeDeploymentRoundBehaviour Objects

class SafeDeploymentRoundBehaviour(AbstractRoundBehaviour)

This behaviour manages the consensus stages for the safe deployment.

Back to top