Skip to content
14 changes: 12 additions & 2 deletions script/Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {IDebtInFrontHelper} from "./interfaces/IDebtInFrontHelper.sol";
import {IDeployer} from "./interfaces/IDeployer.sol";
import {ILeverageZapper} from "./interfaces/ILeverageZapper.sol";
import {IRegistry} from "./interfaces/IRegistry.sol";
import {ISwapExecutor} from "./interfaces/ISwapExecutor.sol";

import {LenderFactory} from "../src/lender/LenderFactory.sol";
import {StrategyAprOracle} from "../src/lender/periphery/StrategyAprOracle.sol";
Expand Down Expand Up @@ -48,6 +49,7 @@ contract Deploy is Script {
// Periphery
StrategyAprOracle public strategyAprOracle;
IDebtInFrontHelper public debtInFrontHelper;
ISwapExecutor public swapExecutor;
ILeverageZapper public leverageZapper;
IAuctionTaker public auctionTaker;

Expand Down Expand Up @@ -110,6 +112,7 @@ contract Deploy is Script {
vm.label({account: address(registry), newLabel: "Registry"});
vm.label({account: address(strategyAprOracle), newLabel: "StrategyAprOracle"});
vm.label({account: address(debtInFrontHelper), newLabel: "DebtInFrontHelper"});
vm.label({account: address(swapExecutor), newLabel: "SwapExecutor"});
vm.label({account: address(leverageZapper), newLabel: "LeverageZapper"});
vm.label({account: address(auctionTaker), newLabel: "AuctionTaker"});
} else {
Expand All @@ -124,6 +127,7 @@ contract Deploy is Script {
console2.log("Registry: ", address(registry));
console2.log("Strategy APR Oracle: ", address(strategyAprOracle));
console2.log("Debt In Front Helper: ", address(debtInFrontHelper));
console2.log("Swap Executor: ", address(swapExecutor));
console2.log("Leverage Zapper: ", address(leverageZapper));
console2.log("Auction Taker: ", address(auctionTaker));
console2.log("---------------------------------");
Expand Down Expand Up @@ -168,8 +172,14 @@ contract Deploy is Script {
debtInFrontHelper = IDebtInFrontHelper(
DEPLOYER.deployCreate2(keccak256(abi.encode(SALT, "debtInFrontHelper")), abi.encodePacked(vm.getCode("debt_in_front_helper")))
);
leverageZapper =
ILeverageZapper(DEPLOYER.deployCreate2(keccak256(abi.encode(SALT, "leverageZapper")), abi.encodePacked(vm.getCode("leverage_zapper"))));
swapExecutor =
ISwapExecutor(DEPLOYER.deployCreate2(keccak256(abi.encode(SALT, "swapExecutor")), abi.encodePacked(vm.getCode("swap_executor"))));
leverageZapper = ILeverageZapper(
DEPLOYER.deployCreate2(
keccak256(abi.encode(SALT, "leverageZapper")),
abi.encodePacked(vm.getCode("leverage_zapper"), abi.encode(address(daddy), address(registry), address(swapExecutor)))
)
);
auctionTaker =
IAuctionTaker(DEPLOYER.deployCreate2(keccak256(abi.encode(SALT, "auctionTaker")), abi.encodePacked(vm.getCode("yv_auction_taker"))));
}
Expand Down
27 changes: 24 additions & 3 deletions script/interfaces/ILeverageZapper.sol
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ interface ILeverageZapper {
}

struct CloseLeveragedData {
address owner;
address trove_manager;
address flash_loan_token;
uint256 trove_id;
Expand All @@ -42,7 +41,6 @@ interface ILeverageZapper {
}

struct LeverUpData {
address owner;
address trove_manager;
address flash_loan_token;
address auction_taker;
Expand All @@ -58,7 +56,6 @@ interface ILeverageZapper {
}

struct LeverDownData {
address owner;
address trove_manager;
address flash_loan_token;
uint256 trove_id;
Expand All @@ -68,6 +65,30 @@ interface ILeverageZapper {
SwapData debt_swap;
}

// ============================================================================================
// Storage
// ============================================================================================

function routers(
address router
) external view returns (bool);
function auction_takers(
address auction_taker
) external view returns (bool);

// ============================================================================================
// Whitelist
// ============================================================================================

function set_router(
address router,
bool allowed
) external;
function set_auction_taker(
address auction_taker,
bool allowed
) external;

// ============================================================================================
// External functions
// ============================================================================================
Expand Down
13 changes: 13 additions & 0 deletions script/interfaces/ISwapExecutor.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

interface ISwapExecutor {

function swap(
address router,
bytes calldata data,
address token_in,
address token_out
) external;

}
2 changes: 2 additions & 0 deletions src/factory.vy
Original file line number Diff line number Diff line change
Expand Up @@ -255,5 +255,7 @@ def _validate_params(params: DeployParams):
assert params.step_duration > 0, "!step_duration"
assert params.auction_length > 0, "!auction_length"
assert params.minimum_price_buffer_percentage > 0 and params.minimum_price_buffer_percentage <= _WAD, "!min_price_buffer"
assert params.starting_price_buffer_percentage >= _WAD, "!start_price_buffer"
assert params.re_kick_starting_price_buffer_percentage >= _WAD, "!re_kick_price_buffer"
assert params.starting_price_buffer_percentage >= params.minimum_price_buffer_percentage, "!start_price_buffer"
assert params.re_kick_starting_price_buffer_percentage >= params.minimum_price_buffer_percentage, "!re_kick_price_buffer"
12 changes: 12 additions & 0 deletions src/interfaces/IRegistry.vyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# @version 0.4.3


flag Status:
ENDORSED
UNENDORSED


@external
@view
def market_status(trove_manager: address) -> Status:
...
11 changes: 11 additions & 0 deletions src/interfaces/ISwapExecutor.vyi
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# @version 0.4.3


@external
def swap(
router: address,
data: Bytes[10 ** 4],
token_in: address,
token_out: address,
):
...
21 changes: 6 additions & 15 deletions src/interfaces/ITroveManager.vyi
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ struct Trove:
last_debt_update_time: uint64
last_interest_rate_adj_time: uint64
owner: address
pending_owner: address
status: Status


Expand Down Expand Up @@ -87,28 +86,19 @@ def get_trove_debt_after_interest(trove_id: uint256) -> uint256:
...


# ============================================================================================
# Initialize
# ============================================================================================


@external
def initialize(params: InitializeParams):
@view
def approved(owner: address, operator: address) -> bool:
...


# ============================================================================================
# Ownership
# Initialize
# ============================================================================================


@external
def transfer_ownership(trove_id: uint256, new_owner: address):
...


@external
def accept_ownership(trove_id: uint256):
def initialize(params: InitializeParams):
...


Expand All @@ -128,6 +118,7 @@ def open_trove(
max_upfront_fee: uint256,
min_borrow_out: uint256,
min_collateral_out: uint256,
owner: address = msg.sender,
) -> uint256:
...

Expand Down Expand Up @@ -170,4 +161,4 @@ def repay(trove_id: uint256, debt_amount: uint256):

@external
def close_trove(trove_id: uint256):
...
...
Loading
Loading