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 | 4603301 | 10 hrs ago | IN | 0 APE | 0.006049 |
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.
Contract Source Code Verified (Exact Match)
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"}]
Contract Creation Code
608060405234801561001057600080fd5b50610357806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063ac9650d814610030575b600080fd5b61004361003e366004610190565b610059565b6040516100509190610205565b60405180910390f35b6060601482111561007d57604051630ad1e31b60e01b815260040160405180910390fd5b8167ffffffffffffffff81111561009657610096610297565b6040519080825280602002602001820160405280156100c957816020015b60608152602001906001900390816100b45790505b50905060005b8281101561018957600080308686858181106100ed576100ed6102ad565b90506020028101906100ff91906102c3565b60405161010d929190610311565b600060405180830381855af49150503d8060008114610148576040519150601f19603f3d011682016040523d82523d6000602084013e61014d565b606091505b509150915081610161573d6000803e3d6000fd5b80848481518110610174576101746102ad565b602090810291909101015250506001016100cf565b5092915050565b600080602083850312156101a357600080fd5b823567ffffffffffffffff808211156101bb57600080fd5b818501915085601f8301126101cf57600080fd5b8135818111156101de57600080fd5b8660208260051b85010111156101f357600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b87010192508387016000805b8381101561028957888603603f1901855282518051808852835b81811015610262578281018a01518982018b01528901610247565b508781018901849052601f01601f191690960187019550938601939186019160010161022d565b509398975050505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126102da57600080fd5b83018035915067ffffffffffffffff8211156102f557600080fd5b60200191503681900382131561030a57600080fd5b9250929050565b818382376000910190815291905056fea2646970667358221220984da77919bbed1eef5b6e868dae43bfb24de4a047bf64b2b8ddd860ce838ba764736f6c63430008170033
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.