Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 12283129 | 1312 days ago | IN | 0 ETH | 0.04329222 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
QLF
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-27 */ // Sources flattened with hardhat v2.2.0 https://hardhat.org // File @openzeppelin/contracts/utils/introspection/[email protected] // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } // File contracts/IQLF.sol /** * @author Yisi Liu * @contact [email protected] * @author_time 01/06/2021 **/ pragma solidity >= 0.8.0; abstract contract IQLF is IERC165 { /** * @dev Returns if the given address is qualified, implemented on demand. */ function ifQualified (address account) virtual external view returns (bool); /** * @dev Logs if the given address is qualified, implemented on demand. */ function logQualified (address account, uint256 ito_start_time) virtual external returns (bool); /** * @dev Ensure that custom contract implements `ifQualified` amd `logQualified` correctly. */ function supportsInterface(bytes4 interfaceId) virtual external override pure returns (bool) { return interfaceId == this.supportsInterface.selector || interfaceId == (this.ifQualified.selector ^ this.logQualified.selector); } /** * @dev Emit when `ifQualified` is called to decide if the given `address` * is `qualified` according to the preset rule by the contract creator and * the current block `number` and the current block `timestamp`. */ event Qualification(address account, bool qualified, uint256 blockNumber, uint256 timestamp); } // File contracts/qualification.sol /** * @author Yisi Liu * @contact [email protected] * @author_time 01/06/2021 **/ pragma solidity >= 0.8.0; contract QLF is IQLF { string private name; uint256 private creation_time; uint256 start_time; address creator; mapping(address => bool) black_list; modifier creatorOnly { require(msg.sender == creator, "Not Authorized"); _; } constructor (string memory _name, uint256 _start_time) { name = _name; creation_time = block.timestamp; start_time = _start_time; creator = msg.sender; } function get_name() public view returns (string memory) { return name; } function get_creation_time() public view returns (uint256) { return creation_time; } function get_start_time() public view returns (uint256) { return start_time; } function set_start_time(uint256 _start_time) public creatorOnly { start_time = _start_time; } function ifQualified(address) public pure override returns (bool qualified) { qualified = true; } function logQualified(address account, uint256 ito_start_time) public override returns (bool qualified) { if (start_time > block.timestamp || ito_start_time > block.timestamp) { black_list[address(msg.sender)] = true; return false; } if (black_list[msg.sender]) { return false; } emit Qualification(account, true, block.number, block.timestamp); return true; } function supportsInterface(bytes4 interfaceId) external override pure returns (bool) { return interfaceId == this.supportsInterface.selector || interfaceId == (this.ifQualified.selector ^ this.logQualified.selector) || interfaceId == this.get_start_time.selector; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_start_time","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"qualified","type":"bool"},{"indexed":false,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Qualification","type":"event"},{"inputs":[],"name":"get_creation_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"get_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"get_start_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ifQualified","outputs":[{"internalType":"bool","name":"qualified","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"ito_start_time","type":"uint256"}],"name":"logQualified","outputs":[{"internalType":"bool","name":"qualified","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_start_time","type":"uint256"}],"name":"set_start_time","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516106da3803806106da83398101604081905261002f916100fb565b8151610042906000906020850190610062565b504260015560025550600380546001600160a01b0319163317905561021e565b82805461006e906101cd565b90600052602060002090601f01602090048101928261009057600085556100d6565b82601f106100a957805160ff19168380011785556100d6565b828001600101855582156100d6579182015b828111156100d65782518255916020019190600101906100bb565b506100e29291506100e6565b5090565b5b808211156100e257600081556001016100e7565b6000806040838503121561010d578182fd5b82516001600160401b0380821115610123578384fd5b818501915085601f830112610136578384fd5b81518181111561014857610148610208565b604051601f8201601f19908116603f0116810190838211818310171561017057610170610208565b8160405282815260209350888484870101111561018b578687fd5b8691505b828210156101ac578482018401518183018501529083019061018f565b828211156101bc57868484830101525b969092015195979596505050505050565b6002810460018216806101e157607f821691505b6020821081141561020257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6104ad8061022d6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063823b69f71161005b578063823b69f7146100d3578063a851c7ff146100e6578063b27b1a6d146100fb578063df29dfc4146101105761007d565b806301ffc9a7146100825780633a525c29146100ab57806379380372146100c0575b600080fd5b610095610090366004610347565b610118565b6040516100a291906103ad565b60405180910390f35b6100b361016c565b6040516100a291906103b8565b6100956100ce36600461031e565b6101fe565b6100956100e13660046102fd565b61029c565b6100ee6102a2565b6040516100a29190610433565b61010e61010936600461036f565b6102a8565b005b6100ee6102e0565b60006001600160e01b031982166301ffc9a760e01b148061014957506001600160e01b0319821663fb036a8560e01b145b8061016457506001600160e01b031982166337ca77f160e21b145b90505b919050565b60606000805461017b9061043c565b80601f01602080910402602001604051908101604052809291908181526020018280546101a79061043c565b80156101f45780601f106101c9576101008083540402835291602001916101f4565b820191906000526020600020905b8154815290600101906020018083116101d757829003601f168201915b5050505050905090565b600042600254118061020f57504282115b156102345750336000908152600460205260408120805460ff19166001179055610296565b3360009081526004602052604090205460ff161561025457506000610296565b7fb6948b8fb946de1d52ce1ef206f0d910504221f2f0d13f3307aa788ad2d7e3e6836001434260405161028a9493929190610387565b60405180910390a15060015b92915050565b50600190565b60015490565b6003546001600160a01b031633146102db5760405162461bcd60e51b81526004016102d29061040b565b60405180910390fd5b600255565b60025490565b80356001600160a01b038116811461016757600080fd5b60006020828403121561030e578081fd5b610317826102e6565b9392505050565b60008060408385031215610330578081fd5b610339836102e6565b946020939093013593505050565b600060208284031215610358578081fd5b81356001600160e01b031981168114610317578182fd5b600060208284031215610380578081fd5b5035919050565b6001600160a01b0394909416845291151560208401526040830152606082015260800190565b901515815260200190565b6000602080835283518082850152825b818110156103e4578581018301518582016040015282016103c8565b818111156103f55783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600e908201526d139bdd08105d5d1a1bdc9a5e995960921b604082015260600190565b90815260200190565b60028104600182168061045057607f821691505b6020821081141561047157634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212209900e0e967b6d7ae740e339416f52c286c09c35433b67fa662e7fca21a763a1164736f6c6343000801003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000744454641554c5400000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063823b69f71161005b578063823b69f7146100d3578063a851c7ff146100e6578063b27b1a6d146100fb578063df29dfc4146101105761007d565b806301ffc9a7146100825780633a525c29146100ab57806379380372146100c0575b600080fd5b610095610090366004610347565b610118565b6040516100a291906103ad565b60405180910390f35b6100b361016c565b6040516100a291906103b8565b6100956100ce36600461031e565b6101fe565b6100956100e13660046102fd565b61029c565b6100ee6102a2565b6040516100a29190610433565b61010e61010936600461036f565b6102a8565b005b6100ee6102e0565b60006001600160e01b031982166301ffc9a760e01b148061014957506001600160e01b0319821663fb036a8560e01b145b8061016457506001600160e01b031982166337ca77f160e21b145b90505b919050565b60606000805461017b9061043c565b80601f01602080910402602001604051908101604052809291908181526020018280546101a79061043c565b80156101f45780601f106101c9576101008083540402835291602001916101f4565b820191906000526020600020905b8154815290600101906020018083116101d757829003601f168201915b5050505050905090565b600042600254118061020f57504282115b156102345750336000908152600460205260408120805460ff19166001179055610296565b3360009081526004602052604090205460ff161561025457506000610296565b7fb6948b8fb946de1d52ce1ef206f0d910504221f2f0d13f3307aa788ad2d7e3e6836001434260405161028a9493929190610387565b60405180910390a15060015b92915050565b50600190565b60015490565b6003546001600160a01b031633146102db5760405162461bcd60e51b81526004016102d29061040b565b60405180910390fd5b600255565b60025490565b80356001600160a01b038116811461016757600080fd5b60006020828403121561030e578081fd5b610317826102e6565b9392505050565b60008060408385031215610330578081fd5b610339836102e6565b946020939093013593505050565b600060208284031215610358578081fd5b81356001600160e01b031981168114610317578182fd5b600060208284031215610380578081fd5b5035919050565b6001600160a01b0394909416845291151560208401526040830152606082015260800190565b901515815260200190565b6000602080835283518082850152825b818110156103e4578581018301518582016040015282016103c8565b818111156103f55783604083870101525b50601f01601f1916929092016040019392505050565b6020808252600e908201526d139bdd08105d5d1a1bdc9a5e995960921b604082015260600190565b90815260200190565b60028104600182168061045057607f821691505b6020821081141561047157634e487b7160e01b600052602260045260246000fd5b5091905056fea26469706673582212209900e0e967b6d7ae740e339416f52c286c09c35433b67fa662e7fca21a763a1164736f6c63430008010033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000744454641554c5400000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): DEFAULT
Arg [1] : _start_time (uint256): 0
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [3] : 44454641554c5400000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
2454:1806:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3947:306;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2945:86;;;:::i;:::-;;;;;;;:::i;3480:458::-;;;;;;:::i;:::-;;:::i;3360:111::-;;;;;;:::i;:::-;;:::i;3039:98::-;;;:::i;:::-;;;;;;;:::i;3245:107::-;;;;;;:::i;:::-;;:::i;:::-;;3145:92;;;:::i;3947:306::-;4026:4;-1:-1:-1;;;;;;4050:46:0;;-1:-1:-1;;;4050:46:0;;:135;;-1:-1:-1;;;;;;;4114:71:0;;-1:-1:-1;;;4114:71:0;4050:135;:195;;;-1:-1:-1;;;;;;;4202:43:0;;-1:-1:-1;;;4202:43:0;4050:195;4043:202;;3947:306;;;;:::o;2945:86::-;2986:13;3019:4;3012:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2945:86;:::o;3480:458::-;3568:14;3612:15;3599:10;;:28;:64;;;;3648:15;3631:14;:32;3599:64;3595:162;;;-1:-1:-1;3699:10:0;3680:31;;;;:10;:31;;;;;:38;;-1:-1:-1;;3680:38:0;3714:4;3680:38;;;3733:12;;3595:162;3782:10;3771:22;;;;:10;:22;;;;;;;;3767:67;;;-1:-1:-1;3817:5:0;3810:12;;3767:67;3849:59;3863:7;3872:4;3878:12;3892:15;3849:59;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;3926:4:0;3480:458;;;;;:::o;3360:111::-;-1:-1:-1;3459:4:0;;3360:111::o;3039:98::-;3116:13;;3039:98;:::o;3245:107::-;2689:7;;-1:-1:-1;;;;;2689:7:0;2675:10;:21;2667:48;;;;-1:-1:-1;;;2667:48:0;;;;;;;:::i;:::-;;;;;;;;;3320:10:::1;:24:::0;3245:107::o;3145:92::-;3219:10;;3145:92;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:266::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;653:2;638:18;;;;625:32;;-1:-1:-1;;;484:179:1:o;668:306::-;;779:2;767:9;758:7;754:23;750:32;747:2;;;800:6;792;785:22;747:2;831:23;;-1:-1:-1;;;;;;883:32:1;;873:43;;863:2;;935:6;927;920:22;979:190;;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;-1:-1:-1;1140:23:1;;1049:120;-1:-1:-1;1049:120:1:o;1174:427::-;-1:-1:-1;;;;;1417:32:1;;;;1399:51;;1493:14;;1486:22;1481:2;1466:18;;1459:50;1540:2;1525:18;;1518:34;1583:2;1568:18;;1561:34;1386:3;1371:19;;1353:248::o;1606:187::-;1771:14;;1764:22;1746:41;;1734:2;1719:18;;1701:92::o;1798:603::-;;1939:2;1968;1957:9;1950:21;2000:6;1994:13;2043:6;2038:2;2027:9;2023:18;2016:34;2068:4;2081:140;2095:6;2092:1;2089:13;2081:140;;;2190:14;;;2186:23;;2180:30;2156:17;;;2175:2;2152:26;2145:66;2110:10;;2081:140;;;2239:6;2236:1;2233:13;2230:2;;;2309:4;2304:2;2295:6;2284:9;2280:22;2276:31;2269:45;2230:2;-1:-1:-1;2385:2:1;2364:15;-1:-1:-1;;2360:29:1;2345:45;;;;2392:2;2341:54;;1919:482;-1:-1:-1;;;1919:482:1:o;2406:338::-;2608:2;2590:21;;;2647:2;2627:18;;;2620:30;-1:-1:-1;;;2681:2:1;2666:18;;2659:44;2735:2;2720:18;;2580:164::o;2749:177::-;2895:25;;;2883:2;2868:18;;2850:76::o;2931:380::-;3016:1;3006:12;;3063:1;3053:12;;;3074:2;;3128:4;3120:6;3116:17;3106:27;;3074:2;3181;3173:6;3170:14;3150:18;3147:38;3144:2;;;3227:10;3222:3;3218:20;3215:1;3208:31;3262:4;3259:1;3252:15;3290:4;3287:1;3280:15;3144:2;;2986:325;;;:::o
Swarm Source
ipfs://9900e0e967b6d7ae740e339416f52c286c09c35433b67fa662e7fca21a763a11
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.