Overview
APE Balance
0 APE
APE Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 4602731 | 12 hrs ago | IN | 0 APE | 0.00604898 |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
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
Contract Source Code (Solidity Standard Json-Input format)
// 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; } } }
// 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(); }
// 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); }
{ "optimizer": { "enabled": true, "runs": 800 }, "evmVersion": "paris", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.