Skip to main content
PulseScanner.io

Address

0xdb14ffabe18b491de7f08ddd4afa47045d2be2ef
Current Holdings
$0.00
TXs sent
not counted
First Active
2026-01-26
block 25,630,091
Last Active
233 days ago
block 25,630,218
Funded By
not identified

Net worth historyi

No net-worth snapshots recorded yet
exact matchLAUBatchMintersolc 0.8.31+commit.fd3a2265runtime exact · creation exact
// SPDX-License-Identifier: Sharia
pragma solidity ^0.8.21;

interface IERC20 {
    function balanceOf(address _owner) external view returns (uint256);
    function transfer(address _recipient, uint256 _value) external returns (bool);
}

interface ILAU {
    function mintToCap() external;
    function Withdraw(address token, uint256 amount) external;
}

contract LAUBatchMinter {
    address public owner;
    address public LAUAddress;
    
    error Unauthorized();
    
    modifier onlyOwner() {
        if (msg.sender != owner) revert Unauthorized();
        _;
    }
    
    constructor(address _lauAddress) {
        owner = msg.sender;
        LAUAddress = _lauAddress;
    }
    
    function setLAU(address _lau) external onlyOwner {
        LAUAddress = _lau;
    }
    
    /**
     * @notice Batch mint with multiple iterations
     * @param iterations Number of times to call mintToCap (e.g., 50-100)
     */
    function batchMint(uint256 iterations) external onlyOwner {
        ILAU lau = ILAU(LAUAddress);
        for (uint256 i = 0; i < iterations; i++) {
            lau.mintToCap();
        }
    }
    
    /**
     * @notice Batch mint and withdraw all to sender
     * @param iterations Number of times to call mintToCap
     */
    function batchMintAndWithdraw(uint256 iterations) external onlyOwner {
        ILAU lau = ILAU(LAUAddress);
        IERC20 lauToken = IERC20(LAUAddress);
        
        for (uint256 i = 0; i < iterations; i++) {
            lau.mintToCap();
        }
        
        // Withdraw all LAU from the LAU contract to this contract
        uint256 balance = lauToken.balanceOf(LAUAddress);
        if (balance > 0) {
            lau.Withdraw(LAUAddress, balance);
        }
        
        // Transfer all to sender
        uint256 myBalance = lauToken.balanceOf(address(this));
        if (myBalance > 0) {
            lauToken.transfer(msg.sender, myBalance);
        }
    }
    
    /**
     * @notice Withdraw any tokens stuck in this contract
     */
    function rescue(address token) external onlyOwner {
        IERC20 t = IERC20(token);
        uint256 bal = t.balanceOf(address(this));
        if (bal > 0) {
            t.transfer(msg.sender, bal);
        }
    }
}