DeFi Saver
  • Introduction
  • Protocol
    • Core
      • DFS Registry
      • Strategy Executor
      • Recipe Executor
      • Safe Module Auth
      • Proxy Auth
      • Bot Auth
      • Strategy Storage
      • Sub Storage
      • Bundle Storage
    • Actions
    • Triggers
    • Strategies
    • TxSaver
    • Security & Audits
      • Pause Control
      • Admin access control
    • Deployed contracts
  • Deployed strategies
  • Deployed Actions
    • Exchange
      • DFS Sell
      • DFSSellNoFee
      • LimitSell
    • Flash loans
      • FLAction
    • Utils
      • ApproveToken
      • AutomationV2Unsub
      • ChangeProxyOwner
      • CreateSub
      • GasFeeTaker
      • GasFeeTakerL2
      • HandleAuth
      • KingClaim
      • MerklClaim
      • PermitToken
      • PullToken
      • RemoveTokenApproval
      • SDaiWrap
      • SDaiUnwrap
      • SendToken
      • SendTokenAndUnwrap
      • SendTokensAndUnwrap
      • SendTokens
      • StarknetClaim
      • SubInputs
      • SumInputs
      • ToggleSub
      • TokenBalance
      • TokenizedVaultAdapter
      • TransferNFT
      • UnwrapEth
      • UpdateSub
      • WrapEth
    • Checkers
      • AaveV2RatioCheck
      • AaveV3OpenRatioCheck
      • AaveV3RatioCheck
      • CompV2RatioCheck
      • CompV3RatioCheck
      • CurveUsdCollRatioCheck
      • FluidRatioCheck
      • LiquityRatioCheck
      • LiquityRatioIncreaseCheck
      • LiquityV2RatioCheck
      • LiquityV2TargetRatioCheck
      • McdRatioCheck
      • MorphoAaveV2RatioCheck
      • MorphoBlueRatioCheck
      • MorphoBlueTargetRatioCheck
      • SparkRatioCheck
    • Aave V2
      • AaveBorrow
      • AaveCollateralSwitch
      • AavePayback
      • AaveSupply
      • AaveWithdraw
      • AaveClaimAave
      • AaveClaimStkAave
      • AaveUnstake
    • Aave V3
      • AaveV3ATokenPayback
      • AaveV3Borrow
      • AaveV3ClaimRewards
      • AaveV3CollateralSwitch
      • AaveV3Payback
      • AaveV3SetEMode
      • AaveV3Withdraw
      • AaveV3Supply
      • GhoClaimAave
      • GhoUnstake
    • BProtocol
      • BprotocolLiquitySPDeposit
      • BprotocolLiquitySPWithdraw
    • Compound V2
      • CompGetDebt
      • CompCollateralSwitch
      • CompSupply
      • CompWithdraw
      • CompPayback
      • CompBorrow
      • CompClaim
    • Compound V3
      • CompV3Withdraw
      • CompV3Transfer
      • CompV3Supply
      • CompV3Payback
      • CompV3Claim
      • CompV3Borrow
      • CompV3Allow
    • Convex
      • ConvexDeposit
      • ConvexWithdraw
      • ConvexClaim
    • Chicken bonds
      • CBCreate
      • CBRedeem
      • CBChickenIn
      • CBChickenOut
      • CBCreateReboundSub
      • CBUpdateReboundSub
      • FetchBondId
    • ➰Curve
      • ➰CurveClaimFees
      • ➰CurveDeposit
      • ➰CurveGaugeDeposit
      • ➰CurveGaugeWithdraw
      • ➰CurveMintCrv
      • ➰CurveStethPoolDeposit
      • ➰CurveWithdraw
      • ➰CurveStethPoolWithdraw
    • ➿CurveUsd
      • ➿CurveUsdAdjust
      • ➿CurveUsdBorrow
      • ➿CurveUsdCreate
      • ➿CurveUsdGetDebt
      • ➿CurveUsdLevCreate
      • ➿CurveUsdLevCreateTransient
      • ➿CurveUsdPayback
      • ➿CurveUsdRepay
      • ➿CurveUsdRepayTransient
      • ➿CurveUsdSelfLiquidate
      • ➿CurveUsdSelfLiquidateWithColl
      • ➿CrvUsdSelfLiqWithCollTransient
      • ➿CurveUsdSupply
      • ➿CurveUsdWithdraw
    • DyDx
      • DyDxWithdraw
    • Ether.Fi
      • EtherFiStake
      • EtherFiUnwrap
      • EtherFiWrap
    • EulerV2
      • EulerV2Borrow
      • EulerV2CollateralSwitch
      • EulerV2Payback
      • EulerV2PaybackWithShares
      • EulerV2PullDebt
      • EulerV2ReorderCollaterals
      • EulerV2Supply
      • EulerV2Withdraw
    • Fluid
      • FluidVaultT1Adjust
      • FluidVaultT1Borrow
      • FluidVaultT1Open
      • FluidVaultT1Payback
      • FluidVaultT1Supply
      • FluidVaultT1Withdraw
      • FluidClaim
      • FluidDexOpen
      • FluidDexRegularBorrow
      • FluidDexRegularPayback
      • FluidDexRegularSupply
      • FluidDexRegularWithdraw
      • FluidDexSmartCollSupply
      • FluidDexSmartCollWithdraw
      • FluidDexSmartDebtBorrow
      • FluidDexSmartDebtPayback
    • GUni
      • GUniDeposit
      • GUniWithdraw
    • InstaDapp
      • InstPullTokens
    • Lido
      • LidoUnwrap
      • LidoWrap
      • LidoStake
    • Liquity
      • LiquityAdjust
      • LiquityBorrow
      • LiquityClaim
      • LiquityClose
      • LiquityEthGainToTrove
      • LiquityOpen
      • LiquityPayback
      • LiquityRedeem
      • LiquitySPDeposit
      • LiquitySPWithdraw
      • LiquityStake
      • LiquitySupply
      • LiquityUnstake
      • LiquityWithdraw
    • LiquityV2
      • LiquityV2Adjust
      • LiquityV2AdjustInterestRate
      • LiquityV2AdjustZombieTrove
      • LiquityV2Borrow
      • LiquityV2Claim
      • LiquityV2Close
      • LiquityV2Open
      • LiquityV2Payback
      • LiquityV2SPClaimColl
      • LiquityV2SPDeposit
      • LiquityV2SPWithdraw
      • LiquityV2Supply
      • LiquityV2Withdraw
    • LlamaLend
      • LlamaLendBoost
      • LlamaLendBorrow
      • LlamaLendCreate
      • LlamaLendGetDebt
      • LlamaLendLevCreate
      • LlamaLendPayback
      • LlamaLendRepay
      • LlamaLendSelfLiquidate
      • LlamaLendSelfLiquidateWithColl
      • LlamaLendSupply
      • LlamaLendWithdraw
    • LSV
      • LSVBorrow
      • LSVPayback
      • LSVSupply
      • LSVWithdraw
    • Maker
      • McdBoostComposite
      • McdClaim
      • McdDsrDeposit
      • McdDsrWithdraw
      • McdGenerate
      • McdGive
      • McdMerge
      • McdOpen
      • McdPayback
      • McdRatio
      • McdRepayComposite
      • McdSupply
      • McdTokenConverter
      • McdWithdraw
    • MorphoOptimizers
      • AaveV2
        • MorphoAaveV2Borrow
        • MorphoAaveV2Payback
        • MorphoAaveV2Supply
        • MorphoAaveV2Withdraw
      • AaveV3
        • MorphoAaveV3Borrow
        • MorphoAaveV3Payback
        • MorphoAaveV3SetManager
        • MorphoAaveV3Supply
        • MorphoAaveV3Withdraw
      • MorphoClaim
    • MorphoBlue
      • MorphoBlueBorrow
      • MorphoBlueClaim
      • MorphoBluePayback
      • MorphoBlueReallocateLiquidity
      • MorphoBlueSetAuth
      • MorphoBlueSetAuthWithSig
      • MorphoBlueSupply
      • MorphoBlueSupplyCollateral
      • MorphoBlueWithdraw
      • MorphoBlueWithdrawCollateral
      • MorphoTokenWrap
    • Reflexer
      • ReflexerOpen
      • ReflexerPayback
      • ReflexerGenerate
      • ReflexerSupply
      • ReflexerWithdraw
      • ReflexerWithdrawStuckFunds
    • Renzo
      • RenzoStake
    • Sky
      • SkyClaimRewards
      • SkyStake
      • SkyUnstake
    • Spark
      • SparkBorrow
      • SparkClaimRewards
      • SparkCollateralSwitch
      • SparkPayback
      • SparkSetEMode
      • SparkSpTokenPayback
      • SparkSupply
      • SparkSwapBorrowRateMode
      • SparkWithdraw
    • Uniswap V2
      • UniWithdraw
      • UniSupply
    • Uniswap V3
      • UniCreatePoolV3
      • UniMintV3
      • UniSupplyV3
      • UniCollectV3
      • UniWithdrawV3
    • Yearn
      • YearnWithdraw
      • YearnSupply
    • Pendle
      • PendleTokenReedem
  • Deployed Triggers
    • Utils
      • ChainlinkPriceTrigger
      • ClosePriceTrigger
      • GasPriceTrigger
      • OffchainPriceTrigger
      • Token Balance
      • Timestamp
      • TrailingStopTrigger
    • AaveV2
      • AaveV2RatioTrigger
    • AaveV3
      • AaveV3QuotePriceTrigger
      • AaveV3RatioTrigger
      • AaveV3TrailingQuotePriceTrigger
    • Chicken bonds
      • CBReboundTrigger
    • Compound
      • CompoundRatioTrigger
    • CompoundV3
      • CompoundV3RatioTrigger
    • ➿CurveUsd
      • ➿CurveUsdCollRatioTrigger
      • ➿CurveUsdHealthRatioTrigger
      • ➿CurveUsdSoftLiquidationTrigger
      • ➿CurveUsdBorrowRateTrigger
    • Fluid
      • FluidRatioTrigger
    • Liquity
      • LiquityDebtInFrontTrigger
      • LiquityRatioTrigger
      • LiquityDebtInFrontWithLimitTrigger
    • LiquityV2
      • LiquityV2QuotePriceTrigger
      • LiquityV2RatioTrigger
    • Maker
      • McdRatioTrigger
    • MorphoOptimizers
      • MorphoAaveV2RatioTrigger
    • MorphoBlue
      • MorphoBluePriceTrigger
      • MorphoBlueRatioTrigger
    • Reflexer
      • ReflexerRatioTrigger
    • Spark
      • SparkQuotePriceTrigger
      • SparkRatioTriggre
Powered by GitBook
On this page

Was this helpful?

  1. Protocol
  2. Core

Bot Auth

This contract handles authority of who can call strategy executions on StrategyExecutor. The contract is registered in the DFSRegistry and isApproved function of the Bot Auth is called before each strategy execution.

In the current implementation, only DeFi Saver approved bots have access to calling strategy execution. While there are plans to allow other participants to run bots in the future, this is currently not allowed.

Besides checking the caller, BotAuth also has the subId as an input, allowing it to make decisions on who can execute based on the subscription or strategy.

Below is the interface of the contract:

contract BotAuth {

    /// @notice Checks if the caller is approved for the specific subscription
    /// @dev First param is subId but it's not used in this implementation 
    /// @dev Currently auth callers are approved for all strategies
    /// @param _caller Address of the caller
    function isApproved(uint256, address _caller) public view returns (bool) {
        return approvedCallers[_caller];
    }

    /// @notice Adds a new bot address which will be able to call executeStrategy()
    /// @param _caller Bot address
    function addCaller(address _caller) public onlyOwner;

    /// @notice Removes a bot address so it can't call executeStrategy()
    /// @param _caller Bot address
    function removeCaller(address _caller) public onlyOwner;
}
PreviousProxy AuthNextStrategy Storage

Last updated 2 months ago

Was this helpful?