ETH Price: $2,306.99 (+3.12%)
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Ice Cream Swap1472346502026-02-02 21:34:375 hrs ago1770068077IN
0xa575f37e...08D542C4a
0 ETH0.0000001701270.00100459
Ice Cream Swap1472260902026-02-02 16:49:1710 hrs ago1770050957IN
0xa575f37e...08D542C4a
0 ETH0.0000000122170.00001247
Ice Cream Swap1471441342026-01-31 19:17:252 days ago1769887045IN
0xa575f37e...08D542C4a
0 ETH0.0000007339180.00115129
Ice Cream Swap1471431682026-01-31 18:45:132 days ago1769885113IN
0xa575f37e...08D542C4a
0 ETH0.0000004357350.00118002
Ice Cream Swap1471400082026-01-31 16:59:532 days ago1769878793IN
0xa575f37e...08D542C4a
0 ETH0.0000001459080.000164
Ice Cream Swap1470976502026-01-30 17:27:573 days ago1769794077IN
0xa575f37e...08D542C4a
0 ETH0.0000001935850.00100286
Ice Cream Swap1470976122026-01-30 17:26:413 days ago1769794001IN
0xa575f37e...08D542C4a
0 ETH0.0000001957170.00100289
Ice Cream Swap1470975942026-01-30 17:26:053 days ago1769793965IN
0xa575f37e...08D542C4a
0 ETH0.0000001865870.00100287
Ice Cream Swap1470975762026-01-30 17:25:293 days ago1769793929IN
0xa575f37e...08D542C4a
0 ETH0.0000001961160.00100285
Ice Cream Swap1470963552026-01-30 16:44:473 days ago1769791487IN
0xa575f37e...08D542C4a
0 ETH0.0000000376940.00000299
Ice Cream Swap1470361882026-01-29 7:19:134 days ago1769671153IN
0xa575f37e...08D542C4a
0 ETH0.0000000014660.00000162
Ice Cream Swap1470268192026-01-29 2:06:555 days ago1769652415IN
0xa575f37e...08D542C4a
0 ETH0.0000000023160.00000522
Ice Cream Swap1470268192026-01-29 2:06:555 days ago1769652415IN
0xa575f37e...08D542C4a
0 ETH0.000000004840.00000522
Ice Cream Swap1470268192026-01-29 2:06:555 days ago1769652415IN
0xa575f37e...08D542C4a
0 ETH0.0000000020550.00000522
Ice Cream Swap1470268192026-01-29 2:06:555 days ago1769652415IN
0xa575f37e...08D542C4a
0 ETH0.0000000042390.00000522
Ice Cream Swap1470263952026-01-29 1:52:475 days ago1769651567IN
0xa575f37e...08D542C4a
0 ETH0.0000000047410.00000641
Ice Cream Swap1470261592026-01-29 1:44:555 days ago1769651095IN
0xa575f37e...08D542C4a
0 ETH0.0000000034970.00000683
Ice Cream Swap1470261532026-01-29 1:44:435 days ago1769651083IN
0xa575f37e...08D542C4a
0 ETH0.0000000035050.00000671
Ice Cream Swap1470258752026-01-29 1:35:275 days ago1769650527IN
0xa575f37e...08D542C4a
0 ETH0.0000000053750.00000717
Ice Cream Swap1470256412026-01-29 1:27:395 days ago1769650059IN
0xa575f37e...08D542C4a
0 ETH0.000000005460.00000663
Ice Cream Swap1470256382026-01-29 1:27:335 days ago1769650053IN
0xa575f37e...08D542C4a
0 ETH0.000000005970.00000751
Ice Cream Swap1470256352026-01-29 1:27:275 days ago1769650047IN
0xa575f37e...08D542C4a
0 ETH0.0000000055360.00000922
Ice Cream Swap1470256332026-01-29 1:27:235 days ago1769650043IN
0xa575f37e...08D542C4a
0 ETH0.0000000053340.0000098
Ice Cream Swap1470256272026-01-29 1:27:115 days ago1769650031IN
0xa575f37e...08D542C4a
0 ETH0.0000000253160.00003854
Ice Cream Swap1470256272026-01-29 1:27:115 days ago1769650031IN
0xa575f37e...08D542C4a
0 ETH0.0000000073550.00000651
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1472328282026-02-02 20:33:536 hrs ago1770064433
0xa575f37e...08D542C4a
0.002748128000017 ETH
1472328282026-02-02 20:33:536 hrs ago1770064433
0xa575f37e...08D542C4a
0.002748128000017 ETH
1472242192026-02-02 15:46:5511 hrs ago1770047215
0xa575f37e...08D542C4a
0.00078 ETH
1472242192026-02-02 15:46:5511 hrs ago1770047215
0xa575f37e...08D542C4a
0.00078 ETH
1472174822026-02-02 12:02:2115 hrs ago1770033741
0xa575f37e...08D542C4a
0.00078 ETH
1472174822026-02-02 12:02:2115 hrs ago1770033741
0xa575f37e...08D542C4a
0.00078 ETH
1472167262026-02-02 11:37:0915 hrs ago1770032229
0xa575f37e...08D542C4a
0.009 ETH
1472167262026-02-02 11:37:0915 hrs ago1770032229
0xa575f37e...08D542C4a
0.009 ETH
1472062172026-02-02 5:46:5121 hrs ago1770011211
0xa575f37e...08D542C4a
0.000114432914787 ETH
1472062172026-02-02 5:46:5121 hrs ago1770011211
0xa575f37e...08D542C4a
0.000114432914787 ETH
1471735732026-02-01 11:38:4339 hrs ago1769945923
0xa575f37e...08D542C4a
0.055 ETH
1471735732026-02-01 11:38:4339 hrs ago1769945923
0xa575f37e...08D542C4a
0.055 ETH
1471549452026-02-01 1:17:472 days ago1769908667
0xa575f37e...08D542C4a
0.00001 ETH
1471549452026-02-01 1:17:472 days ago1769908667
0xa575f37e...08D542C4a
0.00001 ETH
1471504192026-01-31 22:46:552 days ago1769899615
0xa575f37e...08D542C4a
0.02075 ETH
1471504192026-01-31 22:46:552 days ago1769899615
0xa575f37e...08D542C4a
0.02075 ETH
1471460592026-01-31 20:21:352 days ago1769890895
0xa575f37e...08D542C4a
0.0556 ETH
1471460592026-01-31 20:21:352 days ago1769890895
0xa575f37e...08D542C4a
0.0556 ETH
1471460392026-01-31 20:20:552 days ago1769890855
0xa575f37e...08D542C4a
0.0008 ETH
1471460392026-01-31 20:20:552 days ago1769890855
0xa575f37e...08D542C4a
0.0008 ETH
1471446902026-01-31 19:35:572 days ago1769888157
0xa575f37e...08D542C4a
0.0007 ETH
1471446902026-01-31 19:35:572 days ago1769888157
0xa575f37e...08D542C4a
0.0007 ETH
1471390652026-01-31 16:28:272 days ago1769876907
0xa575f37e...08D542C4a
0.00009975 ETH
1471390652026-01-31 16:28:272 days ago1769876907
0xa575f37e...08D542C4a
0.00009975 ETH
1471382552026-01-31 16:01:272 days ago1769875287
0xa575f37e...08D542C4a
0.000099251024817 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AggregatorGuard

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
paris EvmVersion
File 1 of 3 : AggregatorGuard.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

import "./interfaces/IAggregatorExecutor.sol";

contract AggregatorGuard {

    address constant ETH = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;

    event AggregatedTrade(
        uint16 indexed id,
        address indexed user,
        address tokenIn,
        address tokenOut,
        address executor,
        uint256 amountIn,
        uint256 amountOut,
        uint256 minAmountOut
    );

    receive() external payable { }
    fallback() external payable { } // optional, add for remix to allow low level interactions

    function IceCreamSwap() external payable returns (uint256) {
        uint16 id;
        IAggregatorExecutor executor;
        uint128 amountIn;
        uint128 minAmountOut;

        address firstTokenReceiver;
        address recipient;
        IERC20 tokenIn;
        IERC20 tokenOut;

        assembly {
            id := shr(240, calldataload(4))
            executor := shr(96, calldataload(6))
            amountIn := shr(128, calldataload(26))
            minAmountOut := shr(128, calldataload(42))
            firstTokenReceiver := shr(96, calldataload(59))
            recipient := shr(96, calldataload(79))
            tokenIn := shr(96, calldataload(99))
            tokenOut := shr(96, calldataload(119))
        }

        if (address(tokenIn) != ETH) {
            // no need to check this token transfer, as a non sucessfull transfer would just cause a failed swap
            if (amountIn != 0) {
                tokenIn.transferFrom(msg.sender, firstTokenReceiver, amountIn);
            }
        } else {
            require(amountIn == msg.value, "incorrect value");
            require(firstTokenReceiver == address(executor), "Native receiver must bee executor");
        }

        uint256 balanceBefore = (address(tokenOut) == ETH) ? recipient.balance : tokenOut.balanceOf(recipient);

        executor.executeSwap{value: msg.value}(msg.data[26:]);

        uint256 amountOut;
        if (address(tokenOut) != ETH) {
            amountOut = tokenOut.balanceOf(recipient) - balanceBefore;
        } else {
            amountOut = recipient.balance - balanceBefore;
        }
        require(amountOut >= minAmountOut, "Insufficient output");

        emit AggregatedTrade(
            id,
            recipient,
            address(tokenIn),
            address(tokenOut),
            address(executor),
            amountIn,
            amountOut,
            minAmountOut
        );

        return amountOut;
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC-20 standard as defined in the ERC.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the value of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves a `value` amount of tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 value) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
     * caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;

interface IAggregatorExecutor {
    function executeSwap(bytes calldata swapData) external payable;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1000000
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"id","type":"uint16"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"tokenIn","type":"address"},{"indexed":false,"internalType":"address","name":"tokenOut","type":"address"},{"indexed":false,"internalType":"address","name":"executor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"name":"AggregatedTrade","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"IceCreamSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052348015600f57600080fd5b5061073c8061001f6000396000f3fe60806040526004361061001f5760003560e01c80633f0bde251461002857005b3661002657005b005b610030610042565b60405190815260200160405180910390f35b600060043560f01c600635606090811c90601a35608090811c91602a3590911c90603b35811c90604f35811c90606335811c90607735901c73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8214610164576fffffffffffffffffffffffffffffffff86161561015f576040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff85811660248301526fffffffffffffffffffffffffffffffff881660448301528316906323b872dd906064016020604051808303816000875af1158015610139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015d919061060d565b505b61029f565b34866fffffffffffffffffffffffffffffffff16146101e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e636f72726563742076616c7565000000000000000000000000000000000060448201526064015b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461029f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6174697665207265636569766572206d75737420626565206578656375746f60448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016101db565b600073ffffffffffffffffffffffffffffffffffffffff821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610367576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301528316906370a0823190602401602060405180830381865afa15801561033e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103629190610636565b610380565b8373ffffffffffffffffffffffffffffffffffffffff16315b905073ffffffffffffffffffffffffffffffffffffffff881663985f61a1346103ad36601a81600061064f565b6040518463ffffffff1660e01b81526004016103ca929190610679565b6000604051808303818588803b1580156103e357600080fd5b505af11580156103f7573d6000803e3d6000fd5b506000935050505073ffffffffffffffffffffffffffffffffffffffff831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146104d4576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528391908516906370a0823190602401602060405180830381865afa15801561049f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c39190610636565b6104cd91906106c6565b90506104f8565b6104f58273ffffffffffffffffffffffffffffffffffffffff8716316106c6565b90505b866fffffffffffffffffffffffffffffffff16811015610574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e73756666696369656e74206f75747075740000000000000000000000000060448201526064016101db565b6040805173ffffffffffffffffffffffffffffffffffffffff868116825285811660208301528b8116828401526fffffffffffffffffffffffffffffffff8b81166060840152608083018590528a1660a083015291519187169161ffff8d16917f97d8fe5395a5423bef64e2004851e9b3f60f7848835afa581b4a0a8e84bc662d919081900360c00190a39a9950505050505050505050565b60006020828403121561061f57600080fd5b8151801515811461062f57600080fd5b9392505050565b60006020828403121561064857600080fd5b5051919050565b6000808585111561065f57600080fd5b8386111561066c57600080fd5b5050820193919092039150565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b81810381811115610700577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9291505056fea2646970667358221220a1386a0c862a65e8643b01e497fb068b838ffb9753954316c523d7771ded15b364736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061001f5760003560e01c80633f0bde251461002857005b3661002657005b005b610030610042565b60405190815260200160405180910390f35b600060043560f01c600635606090811c90601a35608090811c91602a3590911c90603b35811c90604f35811c90606335811c90607735901c73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8214610164576fffffffffffffffffffffffffffffffff86161561015f576040517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff85811660248301526fffffffffffffffffffffffffffffffff881660448301528316906323b872dd906064016020604051808303816000875af1158015610139573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015d919061060d565b505b61029f565b34866fffffffffffffffffffffffffffffffff16146101e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f696e636f72726563742076616c7565000000000000000000000000000000000060448201526064015b60405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461029f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4e6174697665207265636569766572206d75737420626565206578656375746f60448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016101db565b600073ffffffffffffffffffffffffffffffffffffffff821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610367576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301528316906370a0823190602401602060405180830381865afa15801561033e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103629190610636565b610380565b8373ffffffffffffffffffffffffffffffffffffffff16315b905073ffffffffffffffffffffffffffffffffffffffff881663985f61a1346103ad36601a81600061064f565b6040518463ffffffff1660e01b81526004016103ca929190610679565b6000604051808303818588803b1580156103e357600080fd5b505af11580156103f7573d6000803e3d6000fd5b506000935050505073ffffffffffffffffffffffffffffffffffffffff831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146104d4576040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301528391908516906370a0823190602401602060405180830381865afa15801561049f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c39190610636565b6104cd91906106c6565b90506104f8565b6104f58273ffffffffffffffffffffffffffffffffffffffff8716316106c6565b90505b866fffffffffffffffffffffffffffffffff16811015610574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e73756666696369656e74206f75747075740000000000000000000000000060448201526064016101db565b6040805173ffffffffffffffffffffffffffffffffffffffff868116825285811660208301528b8116828401526fffffffffffffffffffffffffffffffff8b81166060840152608083018590528a1660a083015291519187169161ffff8d16917f97d8fe5395a5423bef64e2004851e9b3f60f7848835afa581b4a0a8e84bc662d919081900360c00190a39a9950505050505050505050565b60006020828403121561061f57600080fd5b8151801515811461062f57600080fd5b9392505050565b60006020828403121561064857600080fd5b5051919050565b6000808585111561065f57600080fd5b8386111561066c57600080fd5b5050820193919092039150565b60208152816020820152818360408301376000818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b81810381811115610700577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9291505056fea2646970667358221220a1386a0c862a65e8643b01e497fb068b838ffb9753954316c523d7771ded15b364736f6c634300081a0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0xa575f37e869e6887564F87c07e2885e08D542C4a
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.