Multi PI
Address
0x73900B1cEd9D1d8934d8c23c884327FA05Fb3339Functions

Code
[
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "_address",
				"type": "address"
			},
			{
				"internalType": "uint256",
				"name": "_loops",
				"type": "uint256"
			}
		],
		"name": "multiBuyWith",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [],
		"stateMutability": "nonpayable",
		"type": "constructor"
	}
]// SPDX-License-Identifier: Affection
pragma solidity ^0.8.28;
interface IERC20 {
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function approve(address _spender, uint256 _value) external returns (bool);
}
interface IPI {
    function BuyWithDAI() external;
    // function BuyWithUSDC() external;
    // function BuyWithUSDT() external;
}
contract MultiPI {
    address PIAddress = address(0xA2262D7728C689526693aE893D0fD8a352C7073C);
    address DAIAddress = address(0x6B175474E89094C44Da98b954EedeAC495271d0F);
    // address USDCAddress = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);
    // address USDTAddress = address(0xdAC17F958D2ee523a2206206994597C13D831ec7);
    IPI PI = IPI(PIAddress);
    IERC20 DAIToken = IERC20(DAIAddress);
    // IERC20 USDCToken = IERC20(USDCAddress);
    // IERC20 USDTToken = IERC20(USDTAddress);
    mapping(address => uint256) perLoop;
    constructor() {
        DAIToken.approve(PIAddress, type(uint256).max);
        // USDCToken.approve(PIAddress, type(uint256).max);
        // USDTToken.approve(PIAddress, type(uint256).max);
        perLoop[DAIAddress] = 300 * 10 ** 18; // 300
        // perLoop[USDCAddress] = 300 * 10 ** 6; // 300
        // perLoop[USDTAddress] = 300 * 10 ** 6; // 300
    }
    function multiBuyWith(address _address, uint _loops) public {
        uint256 amount = _loops * 1  * 10 ** 18;
        if (_address == DAIAddress) {
            DAIToken.transferFrom(msg.sender, address(this), _loops * perLoop[_address]);
            PI.BuyWithDAI();
        // } else if (_address == USDCAddress) {
        //     USDCToken.transferFrom(msg.sender, address(this), _loops * perLoop[_address]);
        //     PI.BuyWithUSDC();
        // } else if (_address == USDTAddress) {
        //     USDTToken.transferFrom(msg.sender, address(this), _loops * perLoop[_address]);
        //     PI.BuyWithUSDT();
        } else {
            require(perLoop[_address] > 0, "Check address");
        }
        IERC20(PIAddress).transfer(msg.sender, amount);
    }
}Last updated
