ExecutionContext
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);