Contract Overview
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
MCHDailyActionV5
Compiler Version
v0.8.3+commit.8d00100c
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2021-07-26 */ // Sources flattened with hardhat v2.1.2 https://hardhat.org // File @openzeppelin/contracts/utils/cryptography/[email protected] // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * * These functions can be used to verify that a message was signed by the holder * of the private keys of a given address. */ library ECDSA { /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature`. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. */ function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { // Divide the signature in r, s and v variables bytes32 r; bytes32 s; uint8 v; // Check the signature length // - case 65: r,s,v signature (standard) // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._ if (signature.length == 65) { // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. // solhint-disable-next-line no-inline-assembly assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } } else if (signature.length == 64) { // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. // solhint-disable-next-line no-inline-assembly assembly { let vs := mload(add(signature, 0x40)) r := mload(add(signature, 0x20)) s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) v := add(shr(255, vs), 27) } } else { revert("ECDSA: invalid signature length"); } return recover(hash, v, r, s); } /** * @dev Overload of {ECDSA-recover} that receives the `v`, * `r` and `s` signature fields separately. */ function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) { // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most // signatures from current libraries generate a unique signature with an s-value in the lower half order. // // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept // these malleable signatures as well. require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "ECDSA: invalid signature 's' value"); require(v == 27 || v == 28, "ECDSA: invalid signature 'v' value"); // If the signature is valid (and not malleable), return the signer address address signer = ecrecover(hash, v, r, s); require(signer != address(0), "ECDSA: invalid signature"); return signer; } /** * @dev Returns an Ethereum Signed Message, created from a `hash`. This * produces hash corresponding to the one signed with the * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] * JSON-RPC method as part of EIP-191. * * See {recover}. */ function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { // 32 is the length in bytes of hash, // enforced by the type signature above return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); } /** * @dev Returns an Ethereum Signed Typed Data, created from a * `domainSeparator` and a `structHash`. This produces hash corresponding * to the one signed with the * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] * JSON-RPC method as part of EIP-712. * * See {recover}. */ function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); } } // File @openzeppelin/contracts/utils/[email protected] pragma solidity ^0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File @openzeppelin/contracts/utils/[email protected] pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant alphabet = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = alphabet[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } // File @openzeppelin/contracts/utils/introspection/[email protected] 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 @openzeppelin/contracts/utils/introspection/[email protected] pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } // File @openzeppelin/contracts/access/[email protected] pragma solidity ^0.8.0; /** * @dev External interface of AccessControl declared to support ERC165 detection. */ interface IAccessControl { function hasRole(bytes32 role, address account) external view returns (bool); function getRoleAdmin(bytes32 role) external view returns (bytes32); function grantRole(bytes32 role, address account) external; function revokeRole(bytes32 role, address account) external; function renounceRole(bytes32 role, address account) external; } /** * @dev Contract module that allows children to implement role-based access * control mechanisms. This is a lightweight version that doesn't allow enumerating role * members except through off-chain means by accessing the contract event logs. Some * applications may benefit from on-chain enumerability, for those cases see * {AccessControlEnumerable}. * * Roles are referred to by their `bytes32` identifier. These should be exposed * in the external API and be unique. The best way to achieve this is by * using `public constant` hash digests: * * ``` * bytes32 public constant MY_ROLE = keccak256("MY_ROLE"); * ``` * * Roles can be used to represent a set of permissions. To restrict access to a * function call, use {hasRole}: * * ``` * function foo() public { * require(hasRole(MY_ROLE, msg.sender)); * ... * } * ``` * * Roles can be granted and revoked dynamically via the {grantRole} and * {revokeRole} functions. Each role has an associated admin role, and only * accounts that have a role's admin role can call {grantRole} and {revokeRole}. * * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means * that only accounts with this role will be able to grant or revoke other * roles. More complex role relationships can be created by using * {_setRoleAdmin}. * * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to * grant and revoke this role. Extra precautions should be taken to secure * accounts that have been granted it. */ abstract contract AccessControl is Context, IAccessControl, ERC165 { struct RoleData { mapping (address => bool) members; bytes32 adminRole; } mapping (bytes32 => RoleData) private _roles; bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; /** * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` * * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite * {RoleAdminChanged} not being emitted signaling this. * * _Available since v3.1._ */ event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); /** * @dev Emitted when `account` is granted `role`. * * `sender` is the account that originated the contract call, an admin role * bearer except when using {_setupRole}. */ event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); /** * @dev Emitted when `account` is revoked `role`. * * `sender` is the account that originated the contract call: * - if using `revokeRole`, it is the admin role bearer * - if using `renounceRole`, it is the role bearer (i.e. `account`) */ event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); /** * @dev Modifier that checks that an account has a specific role. Reverts * with a standardized message including the required role. * * The format of the revert reason is given by the following regular expression: * * /^AccessControl: account (0x[0-9a-f]{20}) is missing role (0x[0-9a-f]{32})$/ * * _Available since v4.1._ */ modifier onlyRole(bytes32 role) { _checkRole(role, _msgSender()); _; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId); } /** * @dev Returns `true` if `account` has been granted `role`. */ function hasRole(bytes32 role, address account) public view override returns (bool) { return _roles[role].members[account]; } /** * @dev Revert with a standard message if `account` is missing `role`. * * The format of the revert reason is given by the following regular expression: * * /^AccessControl: account (0x[0-9a-f]{20}) is missing role (0x[0-9a-f]{32})$/ */ function _checkRole(bytes32 role, address account) internal view { if(!hasRole(role, account)) { revert(string(abi.encodePacked( "AccessControl: account ", Strings.toHexString(uint160(account), 20), " is missing role ", Strings.toHexString(uint256(role), 32) ))); } } /** * @dev Returns the admin role that controls `role`. See {grantRole} and * {revokeRole}. * * To change a role's admin, use {_setRoleAdmin}. */ function getRoleAdmin(bytes32 role) public view override returns (bytes32) { return _roles[role].adminRole; } /** * @dev Grants `role` to `account`. * * If `account` had not been already granted `role`, emits a {RoleGranted} * event. * * Requirements: * * - the caller must have ``role``'s admin role. */ function grantRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) { _grantRole(role, account); } /** * @dev Revokes `role` from `account`. * * If `account` had been granted `role`, emits a {RoleRevoked} event. * * Requirements: * * - the caller must have ``role``'s admin role. */ function revokeRole(bytes32 role, address account) public virtual override onlyRole(getRoleAdmin(role)) { _revokeRole(role, account); } /** * @dev Revokes `role` from the calling account. * * Roles are often managed via {grantRole} and {revokeRole}: this function's * purpose is to provide a mechanism for accounts to lose their privileges * if they are compromised (such as when a trusted device is misplaced). * * If the calling account had been granted `role`, emits a {RoleRevoked} * event. * * Requirements: * * - the caller must be `account`. */ function renounceRole(bytes32 role, address account) public virtual override { require(account == _msgSender(), "AccessControl: can only renounce roles for self"); _revokeRole(role, account); } /** * @dev Grants `role` to `account`. * * If `account` had not been already granted `role`, emits a {RoleGranted} * event. Note that unlike {grantRole}, this function doesn't perform any * checks on the calling account. * * [WARNING] * ==== * This function should only be called from the constructor when setting * up the initial roles for the system. * * Using this function in any other way is effectively circumventing the admin * system imposed by {AccessControl}. * ==== */ function _setupRole(bytes32 role, address account) internal virtual { _grantRole(role, account); } /** * @dev Sets `adminRole` as ``role``'s admin role. * * Emits a {RoleAdminChanged} event. */ function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { emit RoleAdminChanged(role, getRoleAdmin(role), adminRole); _roles[role].adminRole = adminRole; } function _grantRole(bytes32 role, address account) private { if (!hasRole(role, account)) { _roles[role].members[account] = true; emit RoleGranted(role, account, _msgSender()); } } function _revokeRole(bytes32 role, address account) private { if (hasRole(role, account)) { _roles[role].members[account] = false; emit RoleRevoked(role, account, _msgSender()); } } } // File contracts2/roles/AccessOperatable.sol pragma solidity ^0.8.0; abstract contract AccessOperatable is AccessControl { bytes32 public constant OPERATOR = keccak256("OPERATOR"); event Paused(address account); event Unpaused(address account); bool public _paused; constructor() { _setRoleAdmin(OPERATOR, OPERATOR); _setupRole(OPERATOR, msg.sender); _paused = false; } modifier whenNotPaused() { require(!_paused, "Pausable: paused"); _; } modifier whenPaused() { require(_paused, "Pausable: not paused"); _; } function pause() public onlyRole(OPERATOR) whenNotPaused() { _paused = true; emit Paused(msg.sender); } function unpause() public onlyRole(OPERATOR) whenPaused() { _paused = false; emit Unpaused(msg.sender); } } // File contracts2/MCHDailyActionV5.sol pragma solidity 0.8.3; contract MCHDailyActionV5 is AccessOperatable { address public validator; mapping(address => int64) public lastActionDateAddress; event Action(address indexed user, int64 at); constructor(address _varidator) public { setValidater(_varidator); } function setValidater(address _varidator) public onlyRole(OPERATOR) { validator = _varidator; } function isApplicable( address _sender, int64 _time ) public view returns (bool) { int64 day = _time / 86400; if (lastActionDateAddress[_sender] >= day) { return false; } return true; } function action( bytes calldata _signature, int64 _time, uint256 _support ) external whenNotPaused() { require(isApplicable(msg.sender, _time), "already transacted"); require( validateSig(msg.sender, _time, _support, _signature), "invalid signature" ); int64 day = _time / 86400; lastActionDateAddress[msg.sender] = day; emit Action(msg.sender, _time); } function validateSig( address _from, int64 _time, uint256 _support, bytes memory _signature ) public view returns (bool) { require(validator != address(0)); address signer = recover( ethSignedMessageHash(encodeData(_from, _time, _support)), _signature ); return (signer == validator); } function encodeData( address _from, int64 _time, uint256 _support ) public pure returns (bytes32) { return keccak256(abi.encode(_from, _time, _support)); } function ethSignedMessageHash(bytes32 _data) public pure returns (bytes32) { return ECDSA.toEthSignedMessageHash(_data); } function recover(bytes32 _data, bytes memory _signature) public pure returns (address) { return ECDSA.recover(_data, _signature); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_varidator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"int64","name":"at","type":"int64"}],"name":"Action","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_signature","type":"bytes"},{"internalType":"int64","name":"_time","type":"int64"},{"internalType":"uint256","name":"_support","type":"uint256"}],"name":"action","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"int64","name":"_time","type":"int64"},{"internalType":"uint256","name":"_support","type":"uint256"}],"name":"encodeData","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_data","type":"bytes32"}],"name":"ethSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"int64","name":"_time","type":"int64"}],"name":"isApplicable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastActionDateAddress","outputs":[{"internalType":"int64","name":"","type":"int64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_data","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"recover","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_varidator","type":"address"}],"name":"setValidater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"int64","name":"_time","type":"int64"},{"internalType":"uint256","name":"_support","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"validateSig","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200190f3803806200190f83398101604081905262000034916200046f565b6200004f600080516020620018ef8339815191528062000086565b6200006a600080516020620018ef83398151915233620000da565b6001805460ff191690556200007f81620000ea565b50620005e6565b600082815260208190526040902060010154819060405184907fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff90600090a460009182526020829052604090912060010155565b620000e682826200012f565b5050565b600080516020620018ef833981519152620001068133620001cf565b50600180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000e6576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200018b3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000e65762000219816001600160a01b031660146200027360201b620008b01760201c565b6200022f836020620008b062000273821b17811c565b6040516020016200024292919062000498565b60408051601f198184030181529082905262461bcd60e51b82526200026a9160040162000511565b60405180910390fd5b606060006200028483600262000561565b6200029190600262000546565b6001600160401b03811115620002b757634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015620002e2576020820181803683370190505b509050600360fc1b816000815181106200030c57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200034a57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006200037084600262000561565b6200037d90600162000546565b90505b600181111562000417576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620003c157634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110620003e657634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c936200040f81620005b6565b905062000380565b508315620004685760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016200026a565b9392505050565b60006020828403121562000481578081fd5b81516001600160a01b038116811462000468578182fd5b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351620004d281601785016020880162000583565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200050581602884016020880162000583565b01602801949350505050565b60006020825282518060208401526200053281604085016020870162000583565b601f01601f19169190910160400192915050565b600082198211156200055c576200055c620005d0565b500190565b60008160001904831182151516156200057e576200057e620005d0565b500290565b60005b83811015620005a057818101518382015260200162000586565b83811115620005b0576000848401525b50505050565b600081620005c857620005c8620005d0565b506000190190565b634e487b7160e01b600052601160045260246000fd5b6112f980620005f66000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80633f4ba83a116100ad578063a217fddf11610071578063a217fddf146102a9578063aca29b0b146102b1578063c14e50ce146102c4578063cb3f5929146102d7578063d547741f146102ea5761012c565b80633f4ba83a1461023b5780635d69fbe3146102435780638456cb591461027957806391d1485414610281578063983d2737146102945761012c565b8063248a9ca3116100f4578063248a9ca3146101c55780632f2ff15d146101e8578063344c3d56146101fd57806336568abe146102105780633a5381b5146102235761012c565b80630109219a1461013157806301ffc9a71461015957806316c61ccc1461016c57806319045a25146101795780631ba9096f146101a4575b600080fd5b61014461013f366004610f75565b6102fd565b60405190151581526020015b60405180910390f35b61014461016736600461105a565b610353565b6001546101449060ff1681565b61018c610187366004611015565b61038c565b6040516001600160a01b039091168152602001610150565b6101b76101b2366004610fdb565b6103a1565b604051908152602001610150565b6101b76101d3366004610fdb565b60009081526020819052604090206001015490565b6101fb6101f6366004610ff3565b6103fa565b005b61014461020b366004610f08565b610426565b6101fb61021e366004610ff3565b610475565b60015461018c9061010090046001600160a01b031681565b6101fb6104f8565b610266610251366004610eee565b60026020526000908152604090205460070b81565b60405160079190910b8152602001610150565b6101fb61059b565b61014461028f366004610ff3565b610636565b6101b76000805160206112a483398151915281565b6101b7600081565b6101fb6102bf366004611082565b61065f565b6101fb6102d2366004610eee565b6107fd565b6101b76102e5366004610f3a565b61083f565b6101fb6102f8366004610ff3565b61088a565b60015460009061010090046001600160a01b031661031a57600080fd5b600061033361032d6101b288888861083f565b8461038c565b60015461010090046001600160a01b039081169116149695505050505050565b60006001600160e01b03198216637965db0b60e01b148061038457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60006103988383610a92565b90505b92915050565b6000610384826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b60008281526020819052604090206001015461041781335b610b48565b6104218383610bac565b505050565b60008061043662015180846111c6565b6001600160a01b038516600090815260026020526040902054909150600782810b91810b900b1261046b57600091505061039b565b5060019392505050565b6001600160a01b03811633146104ea5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6104f48282610c30565b5050565b6000805160206112a48339815191526105118133610412565b60015460ff1661055a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104e1565b6001805460ff191690556040513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa906020015b60405180910390a150565b6000805160206112a48339815191526105b48133610412565b60015460ff16156105fa5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e1565b6001805460ff1916811790556040513381527f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890602001610590565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60015460ff16156106a55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104e1565b6106af3383610426565b6106f05760405162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481d1c985b9cd858dd195960721b60448201526064016104e1565b61073233838387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506102fd92505050565b6107725760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b60448201526064016104e1565b600061078162015180846111c6565b33600081815260026020526040908190208054600785900b67ffffffffffffffff1667ffffffffffffffff1990911617905551919250907f708861da4aa6afa7c59ec1b6595bfacef3b852515c06faafba359c70bc640e8c906107ee90869060079190910b815260200190565b60405180910390a25050505050565b6000805160206112a48339815191526108168133610412565b50600180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b604080516001600160a01b0385166020820152600784900b91810191909152606081018290526000906080016040516020818303038152906040528051906020012090509392505050565b6000828152602081905260409020600101546108a68133610412565b6104218383610c30565b606060006108bf836002611211565b6108ca9060026111ae565b67ffffffffffffffff8111156108f057634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561091a576020820181803683370190505b509050600360fc1b8160008151811061094357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061098057634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006109a4846002611211565b6109af9060016111ae565b90505b6001811115610a43576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106109f157634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110610a1557634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c93610a3c81611260565b90506109b2565b5083156103985760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016104e1565b600080600080845160411415610abc5750505060208201516040830151606084015160001a610b32565b845160401415610aea5750505060408201516020830151906001600160ff1b0381169060ff1c601b01610b32565b60405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016104e1565b610b3e86828585610c95565b9695505050505050565b610b528282610636565b6104f457610b6a816001600160a01b031660146108b0565b610b758360206108b0565b604051602001610b86929190611106565b60408051601f198184030181529082905262461bcd60e51b82526104e19160040161117b565b610bb68282610636565b6104f4576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610bec3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610c3a8282610636565b156104f4576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0821115610d125760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016104e1565b8360ff16601b1480610d2757508360ff16601c145b610d7e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016104e1565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015610dd2573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e355760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016104e1565b95945050505050565b80356001600160a01b038116811461038757600080fd5b600082601f830112610e65578081fd5b813567ffffffffffffffff80821115610e8057610e8061128d565b604051601f8301601f19908116603f01168101908282118183101715610ea857610ea861128d565b81604052838152866020858801011115610ec0578485fd5b8360208701602083013792830160200193909352509392505050565b8035600781900b811461038757600080fd5b600060208284031215610eff578081fd5b61039882610e3e565b60008060408385031215610f1a578081fd5b610f2383610e3e565b9150610f3160208401610edc565b90509250929050565b600080600060608486031215610f4e578081fd5b610f5784610e3e565b9250610f6560208501610edc565b9150604084013590509250925092565b60008060008060808587031215610f8a578081fd5b610f9385610e3e565b9350610fa160208601610edc565b925060408501359150606085013567ffffffffffffffff811115610fc3578182fd5b610fcf87828801610e55565b91505092959194509250565b600060208284031215610fec578081fd5b5035919050565b60008060408385031215611005578182fd5b82359150610f3160208401610e3e565b60008060408385031215611027578182fd5b82359150602083013567ffffffffffffffff811115611044578182fd5b61105085828601610e55565b9150509250929050565b60006020828403121561106b578081fd5b81356001600160e01b031981168114610398578182fd5b60008060008060608587031215611097578384fd5b843567ffffffffffffffff808211156110ae578586fd5b818701915087601f8301126110c1578586fd5b8135818111156110cf578687fd5b8860208285010111156110e0578687fd5b6020928301965094506110f69187019050610edc565b9396929550929360400135925050565b60007f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008252835161113e816017850160208801611230565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161116f816028840160208801611230565b01602801949350505050565b600060208252825180602084015261119a816040850160208701611230565b601f01601f19169190910160400192915050565b600082198211156111c1576111c1611277565b500190565b60008160070b8360070b806111e957634e487b7160e01b83526012600452602483fd5b677fffffffffffffff1982146000198214161561120857611208611277565b90059392505050565b600081600019048311821515161561122b5761122b611277565b500290565b60005b8381101561124b578181015183820152602001611233565b8381111561125a576000848401525b50505050565b60008161126f5761126f611277565b506000190190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0ca26469706673582212207cd445763388ac03110d0e198fa5d0e008a641e4aa2c34a682a7bb5a2908818d64736f6c63430008030033523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c00000000000000000000000035c5fd312ef06b88ae7d2f9928dbebf486d0784d
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000035c5fd312ef06b88ae7d2f9928dbebf486d0784d
-----Decoded View---------------
Arg [0] : _varidator (address): 0x35c5fd312ef06b88ae7d2f9928dbebf486d0784d
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000035c5fd312ef06b88ae7d2f9928dbebf486d0784d
Deployed ByteCode Sourcemap
19855:2116:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21011:419;;;;;;:::i;:::-;;:::i;:::-;;;6357:14:1;;6350:22;6332:41;;6320:2;6305:18;21011:419:0;;;;;;;;14392:217;;;;;;:::i;:::-;;:::i;19140:19::-;;;;;;;;;21791:177;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5787:32:1;;;5769:51;;5757:2;5742:18;21791:177:0;5724:102:1;21647:136:0;;;;;;:::i;:::-;;:::i;:::-;;;6530:25:1;;;6518:2;6503:18;21647:136:0;6485:76:1;15703:123:0;;;;;;:::i;:::-;15769:7;15796:12;;;;;;;;;;:22;;;;15703:123;16088:147;;;;;;:::i;:::-;;:::i;:::-;;20262:262;;;;;;:::i;:::-;;:::i;17136:218::-;;;;;;:::i;:::-;;:::i;19908:24::-;;;;;;;;-1:-1:-1;;;;;19908:24:0;;;19647:128;;;:::i;19939:54::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7140:1:1;7129:21;;;;7111:40;;7099:2;7084:18;19939:54:0;7066:91:1;19513:126:0;;;:::i;14701:139::-;;;;;;:::i;:::-;;:::i;18999:56::-;;-1:-1:-1;;;;;;;;;;;18999:56:0;;12666:49;;12711:4;12666:49;;20532:471;;;;;;:::i;:::-;;:::i;20145:109::-;;;;;;:::i;:::-;;:::i;21438:201::-;;;;;;:::i;:::-;;:::i;16480:149::-;;;;;;:::i;:::-;;:::i;21011:419::-;21192:9;;21167:4;;21192:9;;;-1:-1:-1;;;;;21192:9:0;21184:32;;;;;;21227:14;21257:126;21283:56;21304:34;21315:5;21322;21329:8;21304:10;:34::i;21283:56::-;21358:10;21257:7;:126::i;:::-;21412:9;;;;;-1:-1:-1;;;;;21412:9:0;;;21402:19;;;;21011:419;-1:-1:-1;;;;;;21011:419:0:o;14392:217::-;14477:4;-1:-1:-1;;;;;;14501:47:0;;-1:-1:-1;;;14501:47:0;;:100;;-1:-1:-1;;;;;;;;;;10223:40:0;;;14565:36;14494:107;;14392:217;;;;:::o;21791:177::-;21896:7;21928:32;21942:5;21949:10;21928:13;:32::i;:::-;21921:39;;21791:177;;;;;:::o;21647:136::-;21713:7;21740:35;21769:5;4789:58;;4689:66:1;4789:58:0;;;4677:79:1;4772:12;;;4765:28;;;4656:7:0;;4809:12:1;;4789:58:0;;;;;;;;;;;;4779:69;;;;;;4772:76;;4587:269;;;;16088:147;15769:7;15796:12;;;;;;;;;;:22;;;14270:30;14281:4;6119:10;14287:12;14270:10;:30::i;:::-;16202:25:::1;16213:4;16219:7;16202:10;:25::i;:::-;16088:147:::0;;;:::o;20262:262::-;20360:4;;20389:13;20397:5;20389;:13;:::i;:::-;-1:-1:-1;;;;;20417:30:0;;;;;;:21;:30;;;;;;20377:25;;-1:-1:-1;20417:37:0;;;;:30;;;:37;;;20413:82;;20478:5;20471:12;;;;;20413:82;-1:-1:-1;20512:4:0;;20262:262;-1:-1:-1;;;20262:262:0:o;17136:218::-;-1:-1:-1;;;;;17232:23:0;;6119:10;17232:23;17224:83;;;;-1:-1:-1;;;17224:83:0;;11019:2:1;17224:83:0;;;11001:21:1;11058:2;11038:18;;;11031:30;11097:34;11077:18;;;11070:62;-1:-1:-1;;;11148:18:1;;;11141:45;11203:19;;17224:83:0;;;;;;;;;17320:26;17332:4;17338:7;17320:11;:26::i;:::-;17136:218;;:::o;19647:128::-;-1:-1:-1;;;;;;;;;;;14270:30:0;19034:21;6119:10;14287:12;6039:98;14270:30;19453:7:::1;::::0;::::1;;19445:40;;;::::0;-1:-1:-1;;;19445:40:0;;8466:2:1;19445:40:0::1;::::0;::::1;8448:21:1::0;8505:2;8485:18;;;8478:30;-1:-1:-1;;;8524:18:1;;;8517:50;8584:18;;19445:40:0::1;8438:170:1::0;19445:40:0::1;19716:7:::2;:15:::0;;-1:-1:-1;;19716:15:0::2;::::0;;19747:20:::2;::::0;19756:10:::2;5769:51:1::0;;19747:20:0::2;::::0;5757:2:1;5742:18;19747:20:0::2;;;;;;;;19647:128:::0;:::o;19513:126::-;-1:-1:-1;;;;;;;;;;;14270:30:0;19034:21;6119:10;14287:12;6039:98;14270:30;19356:7:::1;::::0;::::1;;19355:8;19347:37;;;::::0;-1:-1:-1;;;19347:37:0;;10271:2:1;19347:37:0::1;::::0;::::1;10253:21:1::0;10310:2;10290:18;;;10283:30;-1:-1:-1;;;10329:18:1;;;10322:46;10385:18;;19347:37:0::1;10243:166:1::0;19347:37:0::1;19593:4:::2;19583:14:::0;;-1:-1:-1;;19583:14:0::2;::::0;::::2;::::0;;19613:18:::2;::::0;19620:10:::2;5769:51:1::0;;19613:18:0::2;::::0;5757:2:1;5742:18;19613::0::2;5724:102:1::0;14701:139:0;14779:4;14803:12;;;;;;;;;;;-1:-1:-1;;;;;14803:29:0;;;;;;;;;;;;;;;14701:139::o;20532:471::-;19356:7;;;;19355:8;19347:37;;;;-1:-1:-1;;;19347:37:0;;10271:2:1;19347:37:0;;;10253:21:1;10310:2;10290:18;;;10283:30;-1:-1:-1;;;10329:18:1;;;10322:46;10385:18;;19347:37:0;10243:166:1;19347:37:0;20684:31:::1;20697:10;20709:5;20684:12;:31::i;:::-;20676:62;;;::::0;-1:-1:-1;;;20676:62:0;;9521:2:1;20676:62:0::1;::::0;::::1;9503:21:1::0;9560:2;9540:18;;;9533:30;-1:-1:-1;;;9579:18:1;;;9572:48;9637:18;;20676:62:0::1;9493:168:1::0;20676:62:0::1;20771:52;20783:10;20795:5;20802:8;20812:10;;20771:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;20771:11:0::1;::::0;-1:-1:-1;;;20771:52:0:i:1;:::-;20749:119;;;::::0;-1:-1:-1;;;20749:119:0;;8815:2:1;20749:119:0::1;::::0;::::1;8797:21:1::0;8854:2;8834:18;;;8827:30;-1:-1:-1;;;8873:18:1;;;8866:47;8930:18;;20749:119:0::1;8787:167:1::0;20749:119:0::1;20879:9;20891:13;20899:5;20891::::0;:13:::1;:::i;:::-;20937:10;20915:33;::::0;;;:21:::1;:33;::::0;;;;;;:39;;::::1;::::0;;::::1;;;-1:-1:-1::0;;20915:39:0;;::::1;;::::0;;20970:25;20879;;-1:-1:-1;20937:10:0;20970:25:::1;::::0;::::1;::::0;20989:5;;7140:1:1;7129:21;;;;7111:40;;7099:2;7084:18;;7066:91;20970:25:0::1;;;;;;;;19395:1;20532:471:::0;;;;:::o;20145:109::-;-1:-1:-1;;;;;;;;;;;14270:30:0;19034:21;6119:10;14287:12;6039:98;14270:30;-1:-1:-1;20224:9:0::1;:22:::0;;-1:-1:-1;;;;;20224:22:0;;::::1;;;-1:-1:-1::0;;;;;;20224:22:0;;::::1;::::0;;;::::1;::::0;;20145:109::o;21438:201::-;21596:34;;;-1:-1:-1;;;;;6047:32:1;;21596:34:0;;;6029:51:1;6127:1;6116:21;;;6096:18;;;6089:49;;;;6154:18;;;6147:34;;;21559:7:0;;6002:18:1;;21596:34:0;;;;;;;;;;;;21586:45;;;;;;21579:52;;21438:201;;;;;:::o;16480:149::-;15769:7;15796:12;;;;;;;;;;:22;;;14270:30;14281:4;6119:10;14287:12;6039:98;14270:30;16595:26:::1;16607:4;16613:7;16595:11;:26::i;8001:447::-:0;8076:13;8102:19;8134:10;8138:6;8134:1;:10;:::i;:::-;:14;;8147:1;8134:14;:::i;:::-;8124:25;;;;;;-1:-1:-1;;;8124:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8124:25:0;;8102:47;;-1:-1:-1;;;8160:6:0;8167:1;8160:9;;;;;;-1:-1:-1;;;8160:9:0;;;;;;;;;;;;:15;-1:-1:-1;;;;;8160:15:0;;;;;;;;;-1:-1:-1;;;8186:6:0;8193:1;8186:9;;;;;;-1:-1:-1;;;8186:9:0;;;;;;;;;;;;:15;-1:-1:-1;;;;;8186:15:0;;;;;;;;-1:-1:-1;8217:9:0;8229:10;8233:6;8229:1;:10;:::i;:::-;:14;;8242:1;8229:14;:::i;:::-;8217:26;;8212:131;8249:1;8245;:5;8212:131;;;-1:-1:-1;;;8293:5:0;8301:3;8293:11;8284:21;;;;;-1:-1:-1;;;8284:21:0;;;;;;;;;;;;8272:6;8279:1;8272:9;;;;;;-1:-1:-1;;;8272:9:0;;;;;;;;;;;;:33;-1:-1:-1;;;;;8272:33:0;;;;;;;;-1:-1:-1;8330:1:0;8320:11;;;;;8252:3;;;:::i;:::-;;;8212:131;;;-1:-1:-1;8361:10:0;;8353:55;;;;-1:-1:-1;;;8353:55:0;;8105:2:1;8353:55:0;;;8087:21:1;;;8124:18;;;8117:30;8183:34;8163:18;;;8156:62;8235:18;;8353:55:0;8077:182:1;1224:1492:0;1302:7;1379:9;1399;1419:7;1639:9;:16;1659:2;1639:22;1635:1032;;;-1:-1:-1;;;1926:4:0;1911:20;;1905:27;1976:4;1961:20;;1955:27;2034:4;2019:20;;2013:27;2010:1;2005:36;1881:175;;;2077:9;:16;2097:2;2077:22;2073:594;;;-1:-1:-1;;;2369:4:0;2354:20;;2348:27;2419:4;2404:20;;2398:27;;-1:-1:-1;;;;;2448:75:0;;;2554:3;2550:12;2564:2;2546:21;2319:263;;;2614:41;;-1:-1:-1;;;2614:41:0;;9161:2:1;2614:41:0;;;9143:21:1;9200:2;9180:18;;;9173:30;9239:33;9219:18;;;9212:61;9290:18;;2614:41:0;9133:181:1;2073:594:0;2686:22;2694:4;2700:1;2703;2706;2686:7;:22::i;:::-;2679:29;1224:1492;-1:-1:-1;;;;;;1224:1492:0:o;15130:384::-;15210:22;15218:4;15224:7;15210;:22::i;:::-;15206:301;;15342:41;15370:7;-1:-1:-1;;;;;15342:41:0;15380:2;15342:19;:41::i;:::-;15440:38;15468:4;15475:2;15440:19;:38::i;:::-;15263:230;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;15263:230:0;;;;;;;;;;-1:-1:-1;;;15249:246:0;;;;;;;:::i;18384:229::-;18459:22;18467:4;18473:7;18459;:22::i;:::-;18454:152;;18498:6;:12;;;;;;;;;;;-1:-1:-1;;;;;18498:29:0;;;;;;;;;:36;;-1:-1:-1;;18498:36:0;18530:4;18498:36;;;18581:12;6119:10;6039:98;;18581:12;-1:-1:-1;;;;;18554:40:0;18572:7;-1:-1:-1;;;;;18554:40:0;18566:4;18554:40;;;;;;;;;;18384:229;;:::o;18621:230::-;18696:22;18704:4;18710:7;18696;:22::i;:::-;18692:152;;;18767:5;18735:12;;;;;;;;;;;-1:-1:-1;;;;;18735:29:0;;;;;;;;;;:37;;-1:-1:-1;;18735:37:0;;;18792:40;6119:10;;18735:12;;18792:40;;18767:5;18792:40;18621:230;;:::o;2855:1432::-;2940:7;3865:66;3851:80;;;3843:127;;;;-1:-1:-1;;;3843:127:0;;9868:2:1;3843:127:0;;;9850:21:1;9907:2;9887:18;;;9880:30;9946:34;9926:18;;;9919:62;-1:-1:-1;;;9997:18:1;;;9990:32;10039:19;;3843:127:0;9840:224:1;3843:127:0;3989:1;:7;;3994:2;3989:7;:18;;;;4000:1;:7;;4005:2;4000:7;3989:18;3981:65;;;;-1:-1:-1;;;3981:65:0;;10616:2:1;3981:65:0;;;10598:21:1;10655:2;10635:18;;;10628:30;10694:34;10674:18;;;10667:62;-1:-1:-1;;;10745:18:1;;;10738:32;10787:19;;3981:65:0;10588:224:1;3981:65:0;4161:24;;;4144:14;4161:24;;;;;;;;;6793:25:1;;;6866:4;6854:17;;6834:18;;;6827:45;;;;6888:18;;;6881:34;;;6931:18;;;6924:34;;;4161:24:0;;6765:19:1;;4161:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4161:24:0;;-1:-1:-1;;4161:24:0;;;-1:-1:-1;;;;;;;4204:20:0;;4196:57;;;;-1:-1:-1;;;4196:57:0;;7752:2:1;4196:57:0;;;7734:21:1;7791:2;7771:18;;;7764:30;7830:26;7810:18;;;7803:54;7874:18;;4196:57:0;7724:174:1;4196:57:0;4273:6;2855:1432;-1:-1:-1;;;;;2855:1432:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:738;;287:3;280:4;272:6;268:17;264:27;254:2;;309:5;302;295:20;254:2;349:6;336:20;375:18;412:2;408;405:10;402:2;;;418:18;;:::i;:::-;493:2;487:9;461:2;547:13;;-1:-1:-1;;543:22:1;;;567:2;539:31;535:40;523:53;;;591:18;;;611:22;;;588:46;585:2;;;637:18;;:::i;:::-;677:10;673:2;666:22;712:2;704:6;697:18;758:3;751:4;746:2;738:6;734:15;730:26;727:35;724:2;;;779:5;772;765:20;724:2;847;840:4;832:6;828:17;821:4;813:6;809:17;796:54;870:15;;;887:4;866:26;859:41;;;;-1:-1:-1;874:6:1;244:686;-1:-1:-1;;;244:686:1:o;935:160::-;1001:20;;1061:1;1050:20;;;1040:31;;1030:2;;1085:1;1082;1075:12;1100:196;;1212:2;1200:9;1191:7;1187:23;1183:32;1180:2;;;1233:6;1225;1218:22;1180:2;1261:29;1280:9;1261:29;:::i;1301:266::-;;;1428:2;1416:9;1407:7;1403:23;1399:32;1396:2;;;1449:6;1441;1434:22;1396:2;1477:29;1496:9;1477:29;:::i;:::-;1467:39;;1525:36;1557:2;1546:9;1542:18;1525:36;:::i;:::-;1515:46;;1386:181;;;;;:::o;1572:334::-;;;;1716:2;1704:9;1695:7;1691:23;1687:32;1684:2;;;1737:6;1729;1722:22;1684:2;1765:29;1784:9;1765:29;:::i;:::-;1755:39;;1813:36;1845:2;1834:9;1830:18;1813:36;:::i;:::-;1803:46;;1896:2;1885:9;1881:18;1868:32;1858:42;;1674:232;;;;;:::o;1911:553::-;;;;;2081:3;2069:9;2060:7;2056:23;2052:33;2049:2;;;2103:6;2095;2088:22;2049:2;2131:29;2150:9;2131:29;:::i;:::-;2121:39;;2179:36;2211:2;2200:9;2196:18;2179:36;:::i;:::-;2169:46;;2262:2;2251:9;2247:18;2234:32;2224:42;;2317:2;2306:9;2302:18;2289:32;2344:18;2336:6;2333:30;2330:2;;;2381:6;2373;2366:22;2330:2;2409:49;2450:7;2441:6;2430:9;2426:22;2409:49;:::i;:::-;2399:59;;;2039:425;;;;;;;:::o;2469:190::-;;2581:2;2569:9;2560:7;2556:23;2552:32;2549:2;;;2602:6;2594;2587:22;2549:2;-1:-1:-1;2630:23:1;;2539:120;-1:-1:-1;2539:120:1:o;2664:264::-;;;2793:2;2781:9;2772:7;2768:23;2764:32;2761:2;;;2814:6;2806;2799:22;2761:2;2855:9;2842:23;2832:33;;2884:38;2918:2;2907:9;2903:18;2884:38;:::i;2933:408::-;;;3071:2;3059:9;3050:7;3046:23;3042:32;3039:2;;;3092:6;3084;3077:22;3039:2;3133:9;3120:23;3110:33;;3194:2;3183:9;3179:18;3166:32;3221:18;3213:6;3210:30;3207:2;;;3258:6;3250;3243:22;3207:2;3286:49;3327:7;3318:6;3307:9;3303:22;3286:49;:::i;:::-;3276:59;;;3029:312;;;;;:::o;3346:306::-;;3457:2;3445:9;3436:7;3432:23;3428:32;3425:2;;;3478:6;3470;3463:22;3425:2;3509:23;;-1:-1:-1;;;;;;3561:32:1;;3551:43;;3541:2;;3613:6;3605;3598:22;3657:785;;;;;3820:2;3808:9;3799:7;3795:23;3791:32;3788:2;;;3841:6;3833;3826:22;3788:2;3886:9;3873:23;3915:18;3956:2;3948:6;3945:14;3942:2;;;3977:6;3969;3962:22;3942:2;4020:6;4009:9;4005:22;3995:32;;4065:7;4058:4;4054:2;4050:13;4046:27;4036:2;;4092:6;4084;4077:22;4036:2;4137;4124:16;4163:2;4155:6;4152:14;4149:2;;;4184:6;4176;4169:22;4149:2;4236:7;4229:4;4220:6;4216:2;4212:15;4208:26;4205:39;4202:2;;;4262:6;4254;4247:22;4202:2;4298:4;4290:13;;;;-1:-1:-1;4322:6:1;-1:-1:-1;4347:38:1;;4364:20;;;-1:-1:-1;4347:38:1;:::i;:::-;3778:664;;;;-1:-1:-1;4337:48:1;;4432:2;4417:18;4404:32;;-1:-1:-1;;3778:664:1:o;4832:786::-;;5243:25;5238:3;5231:38;5298:6;5292:13;5314:62;5369:6;5364:2;5359:3;5355:12;5348:4;5340:6;5336:17;5314:62;:::i;:::-;-1:-1:-1;;;5435:2:1;5395:16;;;5427:11;;;5420:40;5485:13;;5507:63;5485:13;5556:2;5548:11;;5541:4;5529:17;;5507:63;:::i;:::-;5590:17;5609:2;5586:26;;5221:397;-1:-1:-1;;;;5221:397:1:o;7162:383::-;;7311:2;7300:9;7293:21;7343:6;7337:13;7386:6;7381:2;7370:9;7366:18;7359:34;7402:66;7461:6;7456:2;7445:9;7441:18;7436:2;7428:6;7424:15;7402:66;:::i;:::-;7529:2;7508:15;-1:-1:-1;;7504:29:1;7489:45;;;;7536:2;7485:54;;7283:262;-1:-1:-1;;7283:262:1:o;11233:128::-;;11304:1;11300:6;11297:1;11294:13;11291:2;;;11310:18;;:::i;:::-;-1:-1:-1;11346:9:1;;11281:80::o;11366:383::-;;11445:1;11442;11431:16;11481:1;11478;11467:16;11502:3;11492:2;;-1:-1:-1;;;11529:31:1;;11583:4;11580:1;11573:15;11611:4;11536:1;11601:15;11492:2;-1:-1:-1;;11642:32:1;;-1:-1:-1;;11676:15:1;;11638:54;11635:2;;;11695:18;;:::i;:::-;11729:14;;;11410:339;-1:-1:-1;;;11410:339:1:o;11754:168::-;;11860:1;11856;11852:6;11848:14;11845:1;11842:21;11837:1;11830:9;11823:17;11819:45;11816:2;;;11867:18;;:::i;:::-;-1:-1:-1;11907:9:1;;11806:116::o;11927:258::-;11999:1;12009:113;12023:6;12020:1;12017:13;12009:113;;;12099:11;;;12093:18;12080:11;;;12073:39;12045:2;12038:10;12009:113;;;12140:6;12137:1;12134:13;12131:2;;;12175:1;12166:6;12161:3;12157:16;12150:27;12131:2;;11980:205;;;:::o;12190:136::-;;12257:5;12247:2;;12266:18;;:::i;:::-;-1:-1:-1;;;12302:18:1;;12237:89::o;12331:127::-;12392:10;12387:3;12383:20;12380:1;12373:31;12423:4;12420:1;12413:15;12447:4;12444:1;12437:15;12463:127;12524:10;12519:3;12515:20;12512:1;12505:31;12555:4;12552:1;12545:15;12579:4;12576:1;12569:15
Swarm Source
ipfs://7cd445763388ac03110d0e198fa5d0e008a641e4aa2c34a682a7bb5a2908818d
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.