A merkle tree root that restricts what data can be passed to the BoringVault.
Maps a strategist address to their specific merkle root.
*Each leaf is composed of the keccak256 hash of abi.encodePacked {decodersAndSanitizer, target, valueIsNonZero, selector, argumentAddress_0, ...., argumentAddress_N} Where:
decodersAndSanitizer is the address to call to extract packed address arguments from the calldata
target is the address to make the call to
valueIsNonZero is a bool indicating whether or not the value is non-zero
selector is the function selector on target
argumentAddress is each allowed address argument in that call*
mapping(address=>bytes32) public manageRoot;
performingFlashLoan
Bool indicating whether or not this contract is actively performing a flash loan.
Used to block flash loans that are initiated outside a manage call.
boolinternal performingFlashLoan;
flashLoanIntentHash
keccak256 hash of flash loan data.
bytes32internal flashLoanIntentHash =bytes32(0);
isPaused
Used to pause calls to manageVaultWithMerkleVerification.
boolpublic isPaused;
vault
The BoringVault this contract can manage.
BoringVault publicimmutable vault;
balancerVault
The balancer vault this contract can use for flash loans.
userData can optionally have salt encoded at the end of it, in order to change the intentHash, if a flash loan is exact userData is being repeated, and their is fear of 3rd parties front-running the rebalance.