ERC-20
Overview
Max Total Supply
5,000,000,000 EPILLO
Holders
13,329
Total Transfers
-
Market
Price
$0.00 @ 0.000000 POL
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
EpilloToken
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2022-10-28 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.17; /** * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to * be specified by overriding the virtual {_implementation} function. * * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a * different contract through the {_delegate} function. * * The success and return data of the delegated call will be returned back to the caller of the proxy. */ abstract contract Proxy { /** * @dev Delegates the current call to `implementation`. * * This function does not return to its internall call site, it will return directly to the external caller. */ function _delegate(address implementation) internal virtual { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize()) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize()) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @dev This is a virtual function that should be overriden so it returns the address to which the fallback function * and {_fallback} should delegate. */ function _implementation() internal view virtual returns (address); /** * @dev Delegates the current call to the address returned by `_implementation()`. * * This function does not return to its internall call site, it will return directly to the external caller. */ function _fallback() internal virtual { _beforeFallback(); _delegate(_implementation()); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other * function in the contract matches the call data. */ fallback() external payable virtual { _fallback(); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data * is empty. */ receive() external payable virtual { _fallback(); } /** * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * * If overriden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual {} } contract EpilloToken is Proxy { // Storage position of the address of the current implementation bytes32 private constant implementationPosition = keccak256("org.smartdefi.implementation.address"); // Storage position of the owner of the contract bytes32 private constant proxyOwnerPosition = keccak256("org.smartdefi.proxy.owner"); /** * @dev Throws if called by any account other than the owner. */ modifier onlyProxyOwner() { require (msg.sender == proxyOwner(), "Not Proxy owner"); _; } /** * @dev the constructor sets owner */ constructor() { _setUpgradeabilityOwner(msg.sender); } /** * @dev Allows the current owner to transfer ownership * @param _newOwner The address to transfer ownership to */ function transferProxyOwnership(address _newOwner) public onlyProxyOwner { require(_newOwner != address(0)); _setUpgradeabilityOwner(_newOwner); } /** * @dev Allows the proxy owner to upgrade the implementation * @param _impl address of the new implementation */ function upgradeTo(address _impl) public onlyProxyOwner { _upgradeTo(_impl); } /** * @dev Tells the address of the current implementation * @return impl address of the current implementation */ function _implementation() internal view override returns (address impl) { bytes32 position = implementationPosition; assembly { impl := sload(position) } } function implementation() external view returns (address) { return _implementation(); } /** * @dev Tells the address of the owner * @return owner the address of the owner */ function proxyOwner() public view returns (address owner) { bytes32 position = proxyOwnerPosition; assembly { owner := sload(position) } } /** * @dev Sets the address of the current implementation * @param _newImplementation address of the new implementation */ function _setImplementation(address _newImplementation) internal { bytes32 position = implementationPosition; assembly { sstore(position, _newImplementation) } } /** * @dev Upgrades the implementation address * @param _newImplementation address of the new implementation */ function _upgradeTo(address _newImplementation) internal { address currentImplementation = _implementation(); require(currentImplementation != _newImplementation); _setImplementation(_newImplementation); } /** * @dev Sets the address of the owner */ function _setUpgradeabilityOwner(address _newProxyOwner) internal { bytes32 position = proxyOwnerPosition; assembly { sstore(position, _newProxyOwner) } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_impl","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50610039337f41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeb55565b610340806100486000396000f3fe6080604052600436106100435760003560e01c8063025313a21461005a5780633659cfe6146100945780635c60da1b146100b4578063f1739cae146100c957610052565b36610052576100506100e9565b005b6100506100e9565b34801561006657600080fd5b506000805160206102eb833981519152545b6040516001600160a01b03909116815260200160405180910390f35b3480156100a057600080fd5b506100506100af36600461029a565b610109565b3480156100c057600080fd5b5061007861017c565b3480156100d557600080fd5b506100506100e436600461029a565b610199565b6101076101026000805160206102cb8339815191525490565b610224565b565b6000805160206102eb833981519152546001600160a01b0316336001600160a01b0316146101705760405162461bcd60e51b815260206004820152600f60248201526e2737ba10283937bc3c9037bbb732b960891b60448201526064015b60405180910390fd5b61017981610248565b50565b60006101946000805160206102cb8339815191525490565b905090565b6000805160206102eb833981519152546001600160a01b0316336001600160a01b0316146101fb5760405162461bcd60e51b815260206004820152600f60248201526e2737ba10283937bc3c9037bbb732b960891b6044820152606401610167565b6001600160a01b03811661020e57600080fd5b610179816000805160206102eb83398151915255565b3660008037600080366000845af43d6000803e808015610243573d6000f35b3d6000fd5b60006102606000805160206102cb8339815191525490565b9050816001600160a01b0316816001600160a01b03160361028057600080fd5b610296826000805160206102cb83398151915255565b5050565b6000602082840312156102ac57600080fd5b81356001600160a01b03811681146102c357600080fd5b939250505056fefede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeba2646970667358221220b8624ad8f2def3382b9a920ec1140e38edfbcce278da33e2f989bc249a58bd7764736f6c63430008110033
Deployed Bytecode
0x6080604052600436106100435760003560e01c8063025313a21461005a5780633659cfe6146100945780635c60da1b146100b4578063f1739cae146100c957610052565b36610052576100506100e9565b005b6100506100e9565b34801561006657600080fd5b506000805160206102eb833981519152545b6040516001600160a01b03909116815260200160405180910390f35b3480156100a057600080fd5b506100506100af36600461029a565b610109565b3480156100c057600080fd5b5061007861017c565b3480156100d557600080fd5b506100506100e436600461029a565b610199565b6101076101026000805160206102cb8339815191525490565b610224565b565b6000805160206102eb833981519152546001600160a01b0316336001600160a01b0316146101705760405162461bcd60e51b815260206004820152600f60248201526e2737ba10283937bc3c9037bbb732b960891b60448201526064015b60405180910390fd5b61017981610248565b50565b60006101946000805160206102cb8339815191525490565b905090565b6000805160206102eb833981519152546001600160a01b0316336001600160a01b0316146101fb5760405162461bcd60e51b815260206004820152600f60248201526e2737ba10283937bc3c9037bbb732b960891b6044820152606401610167565b6001600160a01b03811661020e57600080fd5b610179816000805160206102eb83398151915255565b3660008037600080366000845af43d6000803e808015610243573d6000f35b3d6000fd5b60006102606000805160206102cb8339815191525490565b9050816001600160a01b0316816001600160a01b03160361028057600080fd5b610296826000805160206102cb83398151915255565b5050565b6000602082840312156102ac57600080fd5b81356001600160a01b03811681146102c357600080fd5b939250505056fefede9e42e1fa6028f70c9467c66f74b1840d179d4e78cd28a66d5f518a70a7ae41abdf0bc588410884c48a0fda5e2a0b74e12008127712c9a6c9ef14b05dadeba2646970667358221220b8624ad8f2def3382b9a920ec1140e38edfbcce278da33e2f989bc249a58bd7764736f6c63430008110033
Deployed Bytecode Sourcemap
3264:3174:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2905:11;:9;:11::i;:::-;3264:3174;;2674:11;:9;:11::i;5200:183::-;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;5350:15:0;5200:183;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5200:183:0;;;;;;;4471:107;;;;;;;;;;-1:-1:-1;4471:107:0;;;;;:::i;:::-;;:::i;4978:101::-;;;;;;;;;;;;;:::i;4135:185::-;;;;;;;;;;-1:-1:-1;4135:185:0;;;;;:::i;:::-;;:::i;2311:113::-;2388:28;2398:17;-1:-1:-1;;;;;;;;;;;4937:15:0;;4728:242;2398:17;2388:9;:28::i;:::-;2311:113::o;4471:107::-;-1:-1:-1;;;;;;;;;;;5350:15:0;-1:-1:-1;;;;;3789:26:0;:10;-1:-1:-1;;;;;3789:26:0;;3780:55;;;;-1:-1:-1;;;3780:55:0;;715:2:1;3780:55:0;;;697:21:1;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:1;;;766:45;828:18;;3780:55:0;;;;;;;;;4553:17:::1;4564:5;4553:10;:17::i;:::-;4471:107:::0;:::o;4978:101::-;5027:7;5054:17;-1:-1:-1;;;;;;;;;;;4937:15:0;;4728:242;5054:17;5047:24;;4978:101;:::o;4135:185::-;-1:-1:-1;;;;;;;;;;;5350:15:0;-1:-1:-1;;;;;3789:26:0;:10;-1:-1:-1;;;;;3789:26:0;;3780:55;;;;-1:-1:-1;;;3780:55:0;;715:2:1;3780:55:0;;;697:21:1;754:2;734:18;;;727:30;-1:-1:-1;;;773:18:1;;;766:45;828:18;;3780:55:0;513:339:1;3780:55:0;-1:-1:-1;;;;;4243:23:0;::::1;4235:32;;;::::0;::::1;;4278:34;4302:9;-1:-1:-1::0;;;;;;;;;;;6385:32:0;6220:215;901:918;1244:14;1241:1;1238;1225:34;1462:1;1459;1443:14;1440:1;1424:14;1417:5;1404:60;1541:16;1538:1;1535;1520:38;1581:6;1650:68;;;;1769:16;1766:1;1759:27;1650:68;1686:16;1683:1;1676:27;5910:237;5978:29;6010:17;-1:-1:-1;;;;;;;;;;;4937:15:0;;4728:242;6010:17;5978:49;;6071:18;-1:-1:-1;;;;;6046:43:0;:21;-1:-1:-1;;;;;6046:43:0;;6038:52;;;;;;6101:38;6120:18;-1:-1:-1;;;;;;;;;;;5709:36:0;5541:222;6101:38;5967:180;5910:237;:::o;222:286:1:-;281:6;334:2;322:9;313:7;309:23;305:32;302:52;;;350:1;347;340:12;302:52;376:23;;-1:-1:-1;;;;;428:31:1;;418:42;;408:70;;474:1;471;464:12;408:70;497:5;222:286;-1:-1:-1;;;222:286:1:o
Swarm Source
ipfs://b8624ad8f2def3382b9a920ec1140e38edfbcce278da33e2f989bc249a58bd77
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
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.