Multi G5
Address
0x607EC88714867eF8d642bb3aD2C67e6F1bd8EDa7
Deployed on 2025-05-06
Functions

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 IG5 {
function BuyWithDAI() external;
// function BuyWithUSDC() external;
// function BuyWithUSDT() external;
}
contract MultiG5 {
address G5Address = address(0x2fc636E7fDF9f3E8d61033103052079781a6e7D2);
address DAIAddress = address(0x6B175474E89094C44Da98b954EedeAC495271d0F);
// address USDCAddress = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);
// address USDTAddress = address(0xdAC17F958D2ee523a2206206994597C13D831ec7);
IG5 G5 = IG5(G5Address);
IERC20 DAIToken = IERC20(DAIAddress);
// IERC20 USDCToken = IERC20(USDCAddress);
// IERC20 USDTToken = IERC20(USDTAddress);
mapping(address => uint256) perLoop;
constructor() {
DAIToken.approve(G5Address, type(uint256).max);
// USDCToken.approve(G5Address, type(uint256).max);
// USDTToken.approve(G5Address, type(uint256).max);
perLoop[DAIAddress] = 5 * 10 ** 18; // 5
// perLoop[USDCAddress] = 5 * 10 ** 6; // 5
// perLoop[USDTAddress] = 5 * 10 ** 6; // 5
}
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]);
for (uint i = 0; i < _loops; i++)
G5.BuyWithDAI();
// } else if (_address == USDCAddress) {
// USDCToken.transferFrom(msg.sender, address(this), _loops * perLoop[_address]);
// for (uint i = 0; i < _loops; i++)
// G5.BuyWithUSDC();
// } else if (_address == USDTAddress) {
// USDTToken.transferFrom(msg.sender, address(this), _loops * perLoop[_address]);
// for (uint i = 0; i < _loops; i++)
// G5.BuyWithUSDT();
} else {
require(perLoop[_address] > 0, "Check address");
}
IERC20(G5Address).transfer(msg.sender, amount);
}
}
Last updated