Skip to main content

ExecutionContext

Git Source

Author: Euler Labs (https://www.eulerlabs.com/)

This library provides functions for managing the execution context in the Ethereum Vault Connector.

The execution context is a bit field that stores the following information:

- on behalf of account - an account on behalf of which the currently executed operation is being performed

- checks deferred flag - used to indicate whether checks are deferred

- checks in progress flag - used to indicate that the account/vault status checks are in progress. This flag is used to prevent re-entrancy.

- control collateral in progress flag - used to indicate that the control collateral is in progress. This flag is used to prevent re-entrancy.

- operator authenticated flag - used to indicate that the currently executed operation is being performed by the account operator

- simulation flag - used to indicate that the currently executed batch call is a simulation

- stamp - dummy value for optimization purposes

State Variables

ON_BEHALF_OF_ACCOUNT_MASK

uint256 internal constant ON_BEHALF_OF_ACCOUNT_MASK = 0x000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;

CHECKS_DEFERRED_MASK

uint256 internal constant CHECKS_DEFERRED_MASK = 0x0000000000000000000000FF0000000000000000000000000000000000000000;

CHECKS_IN_PROGRESS_MASK

uint256 internal constant CHECKS_IN_PROGRESS_MASK = 0x00000000000000000000FF000000000000000000000000000000000000000000;

CONTROL_COLLATERAL_IN_PROGRESS_LOCK_MASK

uint256 internal constant CONTROL_COLLATERAL_IN_PROGRESS_LOCK_MASK =
0x000000000000000000FF00000000000000000000000000000000000000000000;

OPERATOR_AUTHENTICATED_MASK

uint256 internal constant OPERATOR_AUTHENTICATED_MASK =
0x0000000000000000FF0000000000000000000000000000000000000000000000;

SIMULATION_MASK

uint256 internal constant SIMULATION_MASK = 0x00000000000000FF000000000000000000000000000000000000000000000000;

STAMP_OFFSET

uint256 internal constant STAMP_OFFSET = 200;

Functions

getOnBehalfOfAccount

function getOnBehalfOfAccount(EC self) internal pure returns (address result);

setOnBehalfOfAccount

function setOnBehalfOfAccount(EC self, address account) internal pure returns (EC result);

areChecksDeferred

function areChecksDeferred(EC self) internal pure returns (bool result);

setChecksDeferred

function setChecksDeferred(EC self) internal pure returns (EC result);

areChecksInProgress

function areChecksInProgress(EC self) internal pure returns (bool result);

setChecksInProgress

function setChecksInProgress(EC self) internal pure returns (EC result);

isControlCollateralInProgress

function isControlCollateralInProgress(EC self) internal pure returns (bool result);

setControlCollateralInProgress

function setControlCollateralInProgress(EC self) internal pure returns (EC result);

isOperatorAuthenticated

function isOperatorAuthenticated(EC self) internal pure returns (bool result);

setOperatorAuthenticated

function setOperatorAuthenticated(EC self) internal pure returns (EC result);

clearOperatorAuthenticated

function clearOperatorAuthenticated(EC self) internal pure returns (EC result);

isSimulationInProgress

function isSimulationInProgress(EC self) internal pure returns (bool result);

setSimulationInProgress

function setSimulationInProgress(EC self) internal pure returns (EC result);