Feature Tip: Add private address tag to any address under My Name Tag !
Overview [ERC-20]
Max Total Supply:
10,000,002,800.000392000036586668 ECO
Holders:
1,033
Transfers:
-
Contract:
Decimals:
18
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x8c02D4cc62F79AcEB652321a9f8988c0f6E71E68
Contract Name:
ForwardProxy
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 999999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* -*- c-basic-offset: 4 -*- */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ForwardTarget.sol"; /* solhint-disable avoid-low-level-calls, no-inline-assembly */ /** @title Upgradable proxy */ contract ForwardProxy { // this is the storage slot to hold the target of the proxy // keccak256("com.eco.ForwardProxy.target") uint256 private constant IMPLEMENTATION_SLOT = 0xf86c915dad5894faca0dfa067c58fdf4307406d255ed0a65db394f82b77f53d4; /** Construct a new proxy. * * @param _impl The default target address. */ constructor(ForwardTarget _impl) { (bool _success, ) = address(_impl).delegatecall( abi.encodeWithSelector(_impl.initialize.selector, _impl) ); require(_success, "initialize call failed"); // Store forwarding target address at specified storage slot, copied // from ForwardTarget#IMPLEMENTATION_SLOT assembly { sstore(IMPLEMENTATION_SLOT, _impl) } } /** @notice Default function that forwards call to proxy target */ fallback() external payable { /* This default-function is optimized for minimum gas cost, to make the * proxy overhead as small as possible. As such, the entire function is * structured to optimize gas cost in the case of successful function * calls. As such, calls to e.g. calldatasize and calldatasize are * repeated, since calling them again is no more expensive than * duplicating them on stack. * This is also the only function in this contract, which avoids the * function dispatch overhead. */ assembly { // Copy all call arguments to memory starting at 0x0 calldatacopy(0x0, 0, calldatasize()) // Forward to proxy target (loaded from IMPLEMENTATION_SLOT), using // arguments from memory 0x0 and having results written to // memory 0x0. let delegate_result := delegatecall( gas(), sload(IMPLEMENTATION_SLOT), 0x0, calldatasize(), 0x0, 0 ) let result_size := returndatasize() //copy result into return buffer returndatacopy(0x0, 0, result_size) if delegate_result { // If the call was successful, return return(0x0, result_size) } // If the call was not successful, revert revert(0x0, result_size) } } }
/* -*- c-basic-offset: 4 -*- */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* solhint-disable no-inline-assembly */ /** @title Target for ForwardProxy and EcoInitializable */ abstract contract ForwardTarget { // Must match definition in ForwardProxy // keccak256("com.eco.ForwardProxy.target") uint256 private constant IMPLEMENTATION_SLOT = 0xf86c915dad5894faca0dfa067c58fdf4307406d255ed0a65db394f82b77f53d4; modifier onlyConstruction() { require( implementation() == address(0), "Can only be called during initialization" ); _; } constructor() { setImplementation(address(this)); } /** @notice Storage initialization of cloned contract * * This is used to initialize the storage of the forwarded contract, and * should (typically) copy or repeat any work that would normally be * done in the constructor of the proxied contract. * * Implementations of ForwardTarget should override this function, * and chain to super.initialize(_self). * * @param _self The address of the original contract instance (the one being * forwarded to). */ function initialize(address _self) public virtual onlyConstruction { address _implAddress = address(ForwardTarget(_self).implementation()); require( _implAddress != address(0), "initialization failure: nothing to implement" ); setImplementation(_implAddress); } /** Get the address of the proxy target contract. */ function implementation() public view returns (address _impl) { assembly { _impl := sload(IMPLEMENTATION_SLOT) } } /** @notice Set new implementation */ function setImplementation(address _impl) internal { require(implementation() != _impl, "Implementation already matching"); assembly { sstore(IMPLEMENTATION_SLOT, _impl) } } }
{ "metadata": { "bytecodeHash": "none" }, "optimizer": { "enabled": true, "runs": 999999 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract ForwardTarget","name":"_impl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161020a38038061020a83398101604081905261002f9161013c565b604080516001600160a01b038316602480830182905283518084039091018152604490920183526020820180516001600160e01b031663189acdbd60e31b17905291516000929161007f9161016c565b600060405180830381855af49150503d80600081146100ba576040519150601f19603f3d011682016040523d82523d6000602084013e6100bf565b606091505b50509050806101145760405162461bcd60e51b815260206004820152601660248201527f696e697469616c697a652063616c6c206661696c656400000000000000000000604482015260640160405180910390fd5b507ff86c915dad5894faca0dfa067c58fdf4307406d255ed0a65db394f82b77f53d4556101a7565b60006020828403121561014e57600080fd5b81516001600160a01b038116811461016557600080fd5b9392505050565b6000825160005b8181101561018d5760208186018101518583015201610173565b8181111561019c576000828501525b509190910192915050565b6055806101b56000396000f3fe608060405236600080376000803660007ff86c915dad5894faca0dfa067c58fdf4307406d255ed0a65db394f82b77f53d4545af43d806000803e8115604357806000f35b806000fdfea164736f6c6343000809000a000000000000000000000000fa4bf0c3669bfda1b7afae7495a323fd0bf07adb
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.