Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
5,000 TRTL
Holders
1,612
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
3 TRTLLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
EvaverseTurtle
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./Proxy.sol"; contract EvaverseTurtle is Proxy { constructor (address logicAddress) { _delegateAddress = logicAddress; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // We can't use the default implementation of OpenZeppelin's Ownable because it uses a constructor which doesn't work with Proxy contracts abstract contract Ownable { address internal _owner; function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(owner() == msg.sender, "Ownable: caller is not the owner"); _; } constructor () { _owner = msg.sender; } function SetOwner(address newOwner) external onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _owner = newOwner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./Ownable.sol"; // This is mostly lifted from: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/proxy/Proxy.sol // Honorably mentions should be: https://fravoll.github.io/solidity-patterns/proxy_delegate.html // which guided me to: https://github.com/fravoll/solidity-patterns/tree/master/ProxyDelegate // Good Info here: https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable // Sample ERC721 Upgradable contract: https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable/tree/master/contracts/token/ERC721 abstract contract Proxy is Ownable { address internal _delegateAddress; function GetLogic() external view onlyOwner returns (address) { return _delegateAddress; } function SetLogic(address delegate) external onlyOwner { _delegateAddress = delegate; } fallback () external payable { _delegate(_delegateAddress); } receive () external payable { _delegate(_delegateAddress); } function _delegate(address implementation) internal { // solhint-disable-next-line no-inline-assembly assembly { //Optional, if we wan't to get rid of the param to this function, load from member variable //let _target := sload(0) // 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()) } } } } abstract contract ProxyTarget is Ownable { address internal _delegateAddress; function GetLogicContract() external view onlyOwner returns (address) { return _delegateAddress; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"logicAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"GetLogic","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegate","type":"address"}],"name":"SetLogic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"SetOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516103ca3803806103ca83398101604081905261002f91610062565b60008054336001600160a01b031991821617909155600180549091166001600160a01b0392909216919091179055610090565b600060208284031215610073578081fd5b81516001600160a01b0381168114610089578182fd5b9392505050565b61032b8061009f6000396000f3fe6080604052600436106100435760003560e01c8063167d3e9c146100745780638da5cb5b146100945780639204395f146100ca578063d8d7a176146100ea5761005f565b3661005f5760015461005d906001600160a01b03166100ff565b005b60015461005d906001600160a01b03166100ff565b34801561008057600080fd5b5061005d61008f366004610292565b610123565b3480156100a057600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b3480156100d657600080fd5b5061005d6100e5366004610292565b6101ec565b3480156100f657600080fd5b506100ae610247565b3660008037600080366000845af43d6000803e80801561011e573d6000f35b3d6000fd5b336101366000546001600160a01b031690565b6001600160a01b0316146101655760405162461bcd60e51b815260040161015c906102c0565b60405180910390fd5b6001600160a01b0381166101ca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161015c565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b336101ff6000546001600160a01b031690565b6001600160a01b0316146102255760405162461bcd60e51b815260040161015c906102c0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60003361025c6000546001600160a01b031690565b6001600160a01b0316146102825760405162461bcd60e51b815260040161015c906102c0565b506001546001600160a01b031690565b6000602082840312156102a3578081fd5b81356001600160a01b03811681146102b9578182fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212200018dd7f623f9c982d0a2b56ea7037f0f0b8f2f754b1c2bb74b41950b704ef4064736f6c6343000804003300000000000000000000000012dcda83db87bc01a9272a51fa60838576bf992c
Deployed Bytecode
0x6080604052600436106100435760003560e01c8063167d3e9c146100745780638da5cb5b146100945780639204395f146100ca578063d8d7a176146100ea5761005f565b3661005f5760015461005d906001600160a01b03166100ff565b005b60015461005d906001600160a01b03166100ff565b34801561008057600080fd5b5061005d61008f366004610292565b610123565b3480156100a057600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b3480156100d657600080fd5b5061005d6100e5366004610292565b6101ec565b3480156100f657600080fd5b506100ae610247565b3660008037600080366000845af43d6000803e80801561011e573d6000f35b3d6000fd5b336101366000546001600160a01b031690565b6001600160a01b0316146101655760405162461bcd60e51b815260040161015c906102c0565b60405180910390fd5b6001600160a01b0381166101ca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161015c565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b336101ff6000546001600160a01b031690565b6001600160a01b0316146102255760405162461bcd60e51b815260040161015c906102c0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60003361025c6000546001600160a01b031690565b6001600160a01b0316146102825760405162461bcd60e51b815260040161015c906102c0565b506001546001600160a01b031690565b6000602082840312156102a3578081fd5b81356001600160a01b03811681146102b9578182fd5b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea26469706673582212200018dd7f623f9c982d0a2b56ea7037f0f0b8f2f754b1c2bb74b41950b704ef4064736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000012dcda83db87bc01a9272a51fa60838576bf992c
-----Decoded View---------------
Arg [0] : logicAddress (address): 0x12dcdA83DB87Bc01A9272a51fA60838576bF992c
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000012dcda83db87bc01a9272a51fa60838576bf992c
Deployed Bytecode Sourcemap
87:128:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1088:16:2;;1078:27;;-1:-1:-1;;;;;1088:16:2;1078:9;:27::i;:::-;87:128:0;;1006:16:2;;996:27;;-1:-1:-1;;;;;1006:16:2;996:9;:27::i;547:175:1:-;;;;;;;;;;-1:-1:-1;547:175:1;;;;;:::i;:::-;;:::i;269:79::-;;;;;;;;;;-1:-1:-1;307:7:1;334:6;-1:-1:-1;;;;;334:6:1;269:79;;;-1:-1:-1;;;;;489:32:3;;;471:51;;459:2;444:18;269:79:1;;;;;;;847:101:2;;;;;;;;;;-1:-1:-1;847:101:2;;;;;:::i;:::-;;:::i;735:104::-;;;;;;;;;;;;;:::i;1125:1065::-;1675:14;1672:1;1669;1656:34;1893:1;1890;1874:14;1871:1;1855:14;1848:5;1835:60;1972:16;1969:1;1966;1951:38;2012:6;2081:38;;;;2153:16;2150:1;2143:27;2081:38;2100:16;2097:1;2090:27;547:175:1;407:10;396:7;307;334:6;-1:-1:-1;;;;;334:6:1;;269:79;396:7;-1:-1:-1;;;;;396:21:1;;388:66;;;;-1:-1:-1;;;388:66:1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;621:22:1;::::1;613:73;;;::::0;-1:-1:-1;;;613:73:1;;735:2:3;613:73:1::1;::::0;::::1;717:21:3::0;774:2;754:18;;;747:30;813:34;793:18;;;786:62;-1:-1:-1;;;864:18:3;;;857:36;910:19;;613:73:1::1;707:228:3::0;613:73:1::1;697:6;:17:::0;;-1:-1:-1;;;;;;697:17:1::1;-1:-1:-1::0;;;;;697:17:1;;;::::1;::::0;;;::::1;::::0;;547:175::o;847:101:2:-;407:10:1;396:7;307;334:6;-1:-1:-1;;;;;334:6:1;;269:79;396:7;-1:-1:-1;;;;;396:21:1;;388:66;;;;-1:-1:-1;;;388:66:1;;;;;;;:::i;:::-;913:16:2::1;:27:::0;;-1:-1:-1;;;;;;913:27:2::1;-1:-1:-1::0;;;;;913:27:2;;;::::1;::::0;;;::::1;::::0;;847:101::o;735:104::-;788:7;407:10:1;396:7;307;334:6;-1:-1:-1;;;;;334:6:1;;269:79;396:7;-1:-1:-1;;;;;396:21:1;;388:66;;;;-1:-1:-1;;;388:66:1;;;;;;;:::i;:::-;-1:-1:-1;815:16:2::1;::::0;-1:-1:-1;;;;;815:16:2::1;735:104:::0;:::o;14:306:3:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:3;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:3:o;940:356::-;1142:2;1124:21;;;1161:18;;;1154:30;1220:34;1215:2;1200:18;;1193:62;1287:2;1272:18;;1114:182::o
Swarm Source
ipfs://0018dd7f623f9c982d0a2b56ea7037f0f0b8f2f754b1c2bb74b41950b704ef40
Loading...
Loading
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.