Skip to main content
PulseScanner.io

Address

0x016b08e110f7864e48b19e6f32ce54ea531959ce
Current Holdings
$0.00
TXs sent
not counted
First Active
2026-06-03
block 26,696,271
Last Active
104 days ago
block 26,696,278
Funded By
not identified

Net worth historyi

No net-worth snapshots recorded yet
exact matchDynamicLeverageMultipliersolc 0.8.34+commit.80d5c536runtime exact · creation exact
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
}

interface ICEther {
    function mint() external payable;
}

interface ICDAI {
    function mint(uint256 amount) external returns (uint256);
    function borrow(uint256 amount) external returns (uint256);
}

interface IComptroller {
    function enterMarkets(address[] calldata markets) external returns (uint256[] memory);
    function getAccountLiquidity(address account) external view returns (uint256 errCode, uint256 liquidity, uint256 shortfall);
}

interface IBalancerVault {
    function flashLoan(
        address recipient,
        address[] calldata tokens,
        uint256[] calldata amounts,
        bytes calldata userData
    ) external;
}

contract DynamicLeverageMultiplier {
    address public immutable owner;
    mapping(address => bool) public whitelist;

    // Core Protocol Target Addresses
    address public constant DAI = 0x6B175474E89094C44Da98b954EedeAC495271d0F;
    address public constant cDAI = 0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643;
    address public constant cETH = 0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5;
    address public constant COMPTROLLER = 0x3d9819210A31b4961b30EF54bE2aeD79B9c9Cd3B;
    address public constant BALANCER_VAULT = 0xBA12222222228d8Ba445958a75a0704d566BF2C8;

    // Base units defined with 18 decimal places
    uint256 public constant BASE_COLLATERAL_UNIT = 10_000 ether; 
    uint256 public constant BASE_DAI_TARGET = 16_000_000 ether;   

    event WhitelistUpdated(address indexed user, bool allowed);
    event DynamicLeverageExecuted(uint256 plsDeposited, uint256 calculatedMultiplier, uint256 finalDaiTarget);

    constructor() {
        owner = msg.sender;
        whitelist[msg.sender] = true;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Owner only");
        _;
    }

    modifier onlyWhitelisted() {
        require(whitelist[msg.sender], "Not authorized");
        _;
    }

    function setWhitelist(address user, bool allowed) external onlyOwner {
        whitelist[user] = allowed;
        emit WhitelistUpdated(user, allowed);
    }

    /**
     * @notice Executes flash multiplication scaled dynamically by the input native token value.
     */
    function executeDynamicLeverage() external payable onlyWhitelisted {
        // Enforce that at least the baseline 10,000 tokens are sent to prevent division by zero
        require(msg.value >= BASE_COLLATERAL_UNIT, "Must send at least 10,000 native tokens");

        // DYNAMIC MATH: Calculate how many 10k chunks were deposited
        uint256 scalingMultiplier = msg.value / BASE_COLLATERAL_UNIT;
        
        // Dynamically compute the corresponding massive DAI target size
        uint256 dynamicDaiTarget = scalingMultiplier * BASE_DAI_TARGET;

        // 1. Supply the variable native tokens into the protocol to form your anchor account line
        ICEther(cETH).mint{value: msg.value}();

        // 2. Map market access routing inside the Comptroller
        address[] memory markets = new address[](2);
        markets[0] = cETH;
        markets[1] = cDAI;
        IComptroller(COMPTROLLER).enterMarkets(markets);

        // 3. Package dynamic parameters into arrays for the Balancer Vault
        address[] memory tokens = new address[](1);
        tokens[0] = DAI;

        uint256[] memory amounts = new uint256[](1);
        amounts[0] = dynamicDaiTarget;

        bytes memory userData = abi.encode(dynamicDaiTarget);

        // 4. Trigger the dynamically sized flash loan
        IBalancerVault(BALANCER_VAULT).flashLoan(
            address(this),
            tokens,
            amounts,
            userData
        );

        emit DynamicLeverageExecuted(msg.value, scalingMultiplier, dynamicDaiTarget);
    }

    /**
     * @notice Atomic callback executing the full position magnification instantly.
     */
    function receiveFlashLoan(
        address[] memory tokens,
        uint256[] memory amounts,
        uint256[] memory feeAmounts,
        bytes memory userData
    ) external {
        require(msg.sender == BALANCER_VAULT, "Unauthorized caller");
        uint256 dynamicFlashAmount = abi.decode(userData, (uint256));

        // 1. Approve protocol to manipulate the incoming flash capital pool
        require(IERC20(DAI).approve(cDAI, dynamicFlashAmount), "Approval failed");

        // 2. Supply 100% of the dynamically sized loan into Compound to expand the account credit line
        require(ICDAI(cDAI).mint(dynamicFlashAmount) == 0, "Mint positioning failed");

        // 3. Audit structural protocol liquidity state parameters
        (uint256 errCode, uint256 liquidity, ) = IComptroller(COMPTROLLER).getAccountLiquidity(address(this));
        require(errCode == 0 && liquidity > 0, "Sizing exceeds protocol health boundaries");

        // 4. Track exact total obligation required by Balancer
        uint256 totalRepayment = amounts[0] + feeAmounts[0];

        // 5. Draw the repayment liquidity out against the freshly expanded credit line
        require(ICDAI(cDAI).borrow(totalRepayment) == 0, "Borrow extraction failed");
        
        // 6. Instantly clear Balancer flash liability within the same transaction block
        require(IERC20(tokens[0]).transfer(BALANCER_VAULT, totalRepayment), "Flash settlement failed");
    }

    function withdrawToken(address token) external onlyOwner {
        if (token == address(0)) {
            (bool success, ) = payable(owner).call{value: address(this).balance}("");
            require(success, "Native withdrawal failed");
        } else {
            uint256 balance = IERC20(token).balanceOf(address(this));
            require(IERC20(token).transfer(owner, balance), "Token withdrawal failed");
        }
    }

    receive() external payable {}
}