APE Price: $1.14 (+0.22%)

Contract

0xd3abb383B2EA31Ea2c773e9359084D328ec2A125

Overview

APE Balance

Apechain LogoApechain LogoApechain Logo0 APE

APE Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x6080604046027312024-11-18 19:10:1212 hrs ago1731957012IN
 Contract Creation
0 APE0.0060489825.42069

Parent Transaction Hash Block From To
View All Internal Transactions

Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x498f7E9b...4ADe31e0d
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
GNSMulticall

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 800 runs

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

import "../../interfaces/IMulticall.sol";
import "../../interfaces/IGeneralErrors.sol";

/**
 * @dev Facet #12: Multicall
 */
contract GNSMulticall is IMulticall {
    /// @inheritdoc IMulticall
    /// @dev NEVER make this function `payable`! delegatecall forwards msg.value to all calls regardless of it being spent or not
    function multicall(bytes[] calldata data) external returns (bytes[] memory results) {
        if (data.length > 20) {
            revert IGeneralErrors.AboveMax();
        }

        results = new bytes[](data.length);

        for (uint256 i; i < data.length; ++i) {
            (bool success, bytes memory result) = address(this).delegatecall(data[i]);

            if (!success) {
                assembly {
                    returndatacopy(0x00, 0x00, returndatasize())
                    revert(0x00, returndatasize())
                }
            }

            results[i] = result;
        }
    }
}

File 2 of 3 : IGeneralErrors.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

/**
 * @dev Interface for errors potentially used in all libraries (general names)
 */
interface IGeneralErrors {
    error InitError();
    error InvalidAddresses();
    error InvalidAddress();
    error InvalidInputLength();
    error InvalidCollateralIndex();
    error WrongParams();
    error WrongLength();
    error WrongOrder();
    error WrongIndex();
    error BlockOrder();
    error Overflow();
    error ZeroAddress();
    error ZeroValue();
    error AlreadyExists();
    error DoesntExist();
    error Paused();
    error BelowMin();
    error AboveMax();
    error NotAuthorized();
    error WrongTradeType();
    error WrongOrderType();
    error InsufficientBalance();
    error UnsupportedChain();
}

File 3 of 3 : IMulticall.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;

interface IMulticall {
    /**
     * @dev Call multiple functions in a single call.
     * @param data The data for the calls.
     * @return results The results of the calls.
     */
    function multicall(bytes[] calldata data) external returns (bytes[] memory results);
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"name":"AboveMax","type":"error"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ac9650d814610030575b600080fd5b61004361003e366004610190565b610059565b6040516100509190610205565b60405180910390f35b6060601482111561007d57604051630ad1e31b60e01b815260040160405180910390fd5b8167ffffffffffffffff81111561009657610096610297565b6040519080825280602002602001820160405280156100c957816020015b60608152602001906001900390816100b45790505b50905060005b8281101561018957600080308686858181106100ed576100ed6102ad565b90506020028101906100ff91906102c3565b60405161010d929190610311565b600060405180830381855af49150503d8060008114610148576040519150601f19603f3d011682016040523d82523d6000602084013e61014d565b606091505b509150915081610161573d6000803e3d6000fd5b80848481518110610174576101746102ad565b602090810291909101015250506001016100cf565b5092915050565b600080602083850312156101a357600080fd5b823567ffffffffffffffff808211156101bb57600080fd5b818501915085601f8301126101cf57600080fd5b8135818111156101de57600080fd5b8660208260051b85010111156101f357600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b8381101561028957888603603f1901855282518051808852835b81811015610262578281018a01518982018b01528901610247565b508781018901849052601f01601f191690960187019550938601939186019160010161022d565b509398975050505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126102da57600080fd5b83018035915067ffffffffffffffff8211156102f557600080fd5b60200191503681900382131561030a57600080fd5b9250929050565b818382376000910190815291905056fea2646970667358221220984da77919bbed1eef5b6e868dae43bfb24de4a047bf64b2b8ddd860ce838ba764736f6c63430008170033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.