ERC-20
DAO
Overview
Max Total Supply
3,580,303.035638849811089616 CD
Holders
92,413 (0.00%)
Market
Price
$0.00 @ 0.000000 MATIC
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.691574598765432098 CDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
CreditDAOTokenV2
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at polygonscan.com on 2023-02-17 */ // File: @openzeppelin/contracts/utils/math/Math.sol // OpenZeppelin Contracts (last updated v4.8.0) (utils/math/Math.sol) pragma solidity ^0.8.0; /** * @dev Standard math utilities missing in the Solidity language. */ library Math { enum Rounding { Down, // Toward negative infinity Up, // Toward infinity Zero // Toward zero } /** * @dev Returns the largest of two numbers. */ function max(uint256 a, uint256 b) internal pure returns (uint256) { return a > b ? a : b; } /** * @dev Returns the smallest of two numbers. */ function min(uint256 a, uint256 b) internal pure returns (uint256) { return a < b ? a : b; } /** * @dev Returns the average of two numbers. The result is rounded towards * zero. */ function average(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b) / 2 can overflow. return (a & b) + (a ^ b) / 2; } /** * @dev Returns the ceiling of the division of two numbers. * * This differs from standard division with `/` in that it rounds up instead * of rounding down. */ function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) { // (a + b - 1) / b can overflow on addition, so we distribute. return a == 0 ? 0 : (a - 1) / b + 1; } /** * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0 * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) * with further edits by Uniswap Labs also under MIT license. */ function mulDiv( uint256 x, uint256 y, uint256 denominator ) internal pure returns (uint256 result) { unchecked { // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256 // variables such that product = prod1 * 2^256 + prod0. uint256 prod0; // Least significant 256 bits of the product uint256 prod1; // Most significant 256 bits of the product assembly { let mm := mulmod(x, y, not(0)) prod0 := mul(x, y) prod1 := sub(sub(mm, prod0), lt(mm, prod0)) } // Handle non-overflow cases, 256 by 256 division. if (prod1 == 0) { return prod0 / denominator; } // Make sure the result is less than 2^256. Also prevents denominator == 0. require(denominator > prod1); /////////////////////////////////////////////// // 512 by 256 division. /////////////////////////////////////////////// // Make division exact by subtracting the remainder from [prod1 prod0]. uint256 remainder; assembly { // Compute remainder using mulmod. remainder := mulmod(x, y, denominator) // Subtract 256 bit number from 512 bit number. prod1 := sub(prod1, gt(remainder, prod0)) prod0 := sub(prod0, remainder) } // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1. // See https://cs.stackexchange.com/q/138556/92363. // Does not overflow because the denominator cannot be zero at this stage in the function. uint256 twos = denominator & (~denominator + 1); assembly { // Divide denominator by twos. denominator := div(denominator, twos) // Divide [prod1 prod0] by twos. prod0 := div(prod0, twos) // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one. twos := add(div(sub(0, twos), twos), 1) } // Shift in bits from prod1 into prod0. prod0 |= prod1 * twos; // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for // four bits. That is, denominator * inv = 1 mod 2^4. uint256 inverse = (3 * denominator) ^ 2; // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works // in modular arithmetic, doubling the correct bits in each step. inverse *= 2 - denominator * inverse; // inverse mod 2^8 inverse *= 2 - denominator * inverse; // inverse mod 2^16 inverse *= 2 - denominator * inverse; // inverse mod 2^32 inverse *= 2 - denominator * inverse; // inverse mod 2^64 inverse *= 2 - denominator * inverse; // inverse mod 2^128 inverse *= 2 - denominator * inverse; // inverse mod 2^256 // Because the division is now exact we can divide by multiplying with the modular inverse of denominator. // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1 // is no longer required. result = prod0 * inverse; return result; } } /** * @notice Calculates x * y / denominator with full precision, following the selected rounding direction. */ function mulDiv( uint256 x, uint256 y, uint256 denominator, Rounding rounding ) internal pure returns (uint256) { uint256 result = mulDiv(x, y, denominator); if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) { result += 1; } return result; } /** * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded down. * * Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11). */ function sqrt(uint256 a) internal pure returns (uint256) { if (a == 0) { return 0; } // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target. // // We know that the "msb" (most significant bit) of our target number `a` is a power of 2 such that we have // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`. // // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)` // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))` // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)` // // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit. uint256 result = 1 << (log2(a) >> 1); // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128, // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision // into the expected uint128 result. unchecked { result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; result = (result + a / result) >> 1; return min(result, a / result); } } /** * @notice Calculates sqrt(a), following the selected rounding direction. */ function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = sqrt(a); return result + (rounding == Rounding.Up && result * result < a ? 1 : 0); } } /** * @dev Return the log in base 2, rounded down, of a positive value. * Returns 0 if given 0. */ function log2(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >> 128 > 0) { value >>= 128; result += 128; } if (value >> 64 > 0) { value >>= 64; result += 64; } if (value >> 32 > 0) { value >>= 32; result += 32; } if (value >> 16 > 0) { value >>= 16; result += 16; } if (value >> 8 > 0) { value >>= 8; result += 8; } if (value >> 4 > 0) { value >>= 4; result += 4; } if (value >> 2 > 0) { value >>= 2; result += 2; } if (value >> 1 > 0) { result += 1; } } return result; } /** * @dev Return the log in base 2, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log2(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log2(value); return result + (rounding == Rounding.Up && 1 << result < value ? 1 : 0); } } /** * @dev Return the log in base 10, rounded down, of a positive value. * Returns 0 if given 0. */ function log10(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >= 10**64) { value /= 10**64; result += 64; } if (value >= 10**32) { value /= 10**32; result += 32; } if (value >= 10**16) { value /= 10**16; result += 16; } if (value >= 10**8) { value /= 10**8; result += 8; } if (value >= 10**4) { value /= 10**4; result += 4; } if (value >= 10**2) { value /= 10**2; result += 2; } if (value >= 10**1) { result += 1; } } return result; } /** * @dev Return the log in base 10, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log10(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log10(value); return result + (rounding == Rounding.Up && 10**result < value ? 1 : 0); } } /** * @dev Return the log in base 256, rounded down, of a positive value. * Returns 0 if given 0. * * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string. */ function log256(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >> 128 > 0) { value >>= 128; result += 16; } if (value >> 64 > 0) { value >>= 64; result += 8; } if (value >> 32 > 0) { value >>= 32; result += 4; } if (value >> 16 > 0) { value >>= 16; result += 2; } if (value >> 8 > 0) { result += 1; } } return result; } /** * @dev Return the log in base 10, following the selected rounding direction, of a positive value. * Returns 0 if given 0. */ function log256(uint256 value, Rounding rounding) internal pure returns (uint256) { unchecked { uint256 result = log256(value); return result + (rounding == Rounding.Up && 1 << (result * 8) < value ? 1 : 0); } } } // File: @openzeppelin/contracts/utils/math/SafeMath.sol // OpenZeppelin Contracts (last updated v4.6.0) (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the subtraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/interfaces/IERC20.sol // OpenZeppelin Contracts v4.4.1 (interfaces/IERC20.sol) pragma solidity ^0.8.0; // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) 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) { return msg.data; } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: CreditDAOTokenV2.sol pragma solidity ^0.8.0; contract CreditDAOTokenV2 is Ownable,IERC20 { using SafeMath for uint256; using Math for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name = "Credit DAO Token"; string private _symbol = "CD"; uint8 private _decimals = 18; bool public once; mapping (address => bool) public operators; mapping (address => bool) public isFromDelivers; mapping (address => bool) public isToDelivers; address public dividend; address public management; address public foundation; address public dead = 0x000000000000000000000000000000000000dEaD; uint256 public DURATION; uint256 public startTime; mapping (uint256 => uint256) public _records; uint256 public maxTotalSupply = 1e8 * 1e18; constructor (uint256 _startTime, uint256 duration) { // _mint(msg.sender, 100 * 1e4 * 1e18); DURATION = duration; startTime = _startTime; } function grantOperatorRole(address[2] memory accounts) public onlyOwner { require(!once, 'Only once!'); operators[accounts[0]] = true; operators[accounts[1]] = true; once = true; } function setFromDelivers(address[] memory addrs, bool flag) public onlyOwner { for(uint i;i<addrs.length;i++){ isFromDelivers[addrs[i]] = flag; } } function setToDelivers(address[] memory addrs, bool flag) public onlyOwner { for(uint i;i<addrs.length;i++){ isToDelivers[addrs[i]] = flag; } } function changePool(address _dividend, address _management, address _foundation, address[] memory pools) public onlyOwner { dividend = _dividend; management = _management; foundation = _foundation; for(uint i;i<pools.length;i++){ isFromDelivers[pools[i]] = true; isToDelivers[pools[i]] = true; } } function mint(address to, uint256 amount) public { require(operators[msg.sender], 'No permission!'); require(_totalSupply.add(amount)<=maxTotalSupply, 'Can\'t mint more!'); _mint(to, amount); } function getCurrentIndex() public view returns(uint256){ if(DURATION==0) return 0; (,uint256 time) = block.timestamp.trySub(startTime); return time.div(DURATION); } function getFeeListLatest(uint256 length) public view returns(uint256[] memory indexes, uint256[] memory fees){ return getFeeList(getCurrentIndex(), length); } function getFeeList(uint256 startReverse, uint256 length) public view returns(uint256[] memory indexes, uint256[] memory fees){ uint256 currentIndex = getCurrentIndex(); startReverse = currentIndex.min(startReverse); length = startReverse.add(1).min(length); indexes = new uint256[](length); fees = new uint256[](length); uint256 index; for(uint i;i<length;i++){ index = startReverse.sub(i); indexes[i] = index; fees[i] = _records[index]; } } function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint8) { return _decimals; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(msg.sender, spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(isFromDelivers[sender] || isToDelivers[recipient]){ _basicTransfer(sender, recipient, amount); }else{ _basicTransfer(sender, recipient, amount.sub(_feeTransfer(sender, amount))); } } function _feeTransfer(address sender, uint256 amount) internal virtual returns(uint256 fee) { fee = amount.mul(30).div(130); uint256 fee1 = fee.mul(50).div(100); _basicTransfer(sender, dividend, fee1); uint256 fee2 = fee.mul(20).div(100); _basicTransfer(sender, management, fee2); uint256 fee3 = fee.mul(20).div(100); _basicTransfer(sender, foundation, fee3); _basicTransfer(sender, dead, fee.sub(fee1).sub(fee2).sub(fee3)); uint256 index = getCurrentIndex(); _records[index] += fee; } function _basicTransfer(address sender, address recipient, uint256 amount) internal virtual { _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _setupDecimals(uint8 decimals_) internal virtual { _decimals = decimals_; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_records","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dividend","type":"address"},{"internalType":"address","name":"_management","type":"address"},{"internalType":"address","name":"_foundation","type":"address"},{"internalType":"address[]","name":"pools","type":"address[]"}],"name":"changePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dead","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dividend","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"foundation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"startReverse","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"getFeeList","outputs":[{"internalType":"uint256[]","name":"indexes","type":"uint256[]"},{"internalType":"uint256[]","name":"fees","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"getFeeListLatest","outputs":[{"internalType":"uint256[]","name":"indexes","type":"uint256[]"},{"internalType":"uint256[]","name":"fees","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[2]","name":"accounts","type":"address[2]"}],"name":"grantOperatorRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFromDelivers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isToDelivers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"management","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"once","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"operators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setFromDelivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"flag","type":"bool"}],"name":"setToDelivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c0604052601060808190526f21b932b234ba102220a7902a37b5b2b760811b60a090815262000033916004919062000127565b506040805180820190915260028082526110d160f21b60209092019182526200005f9160059162000127565b506006805460ff19166012179055600d80546001600160a01b03191661dead1790556a52b7d2dcc80cd2e40000006011553480156200009d57600080fd5b5060405162001a3038038062001a30833981016040819052620000c091620001cd565b620000cb33620000d7565b600e55600f556200022f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280546200013590620001f2565b90600052602060002090601f016020900481019282620001595760008555620001a4565b82601f106200017457805160ff1916838001178555620001a4565b82800160010185558215620001a4579182015b82811115620001a457825182559160200191906001019062000187565b50620001b2929150620001b6565b5090565b5b80821115620001b25760008155600101620001b7565b60008060408385031215620001e157600080fd5b505080516020909101519092909150565b600181811c908216806200020757607f821691505b602082108114156200022957634e487b7160e01b600052602260045260246000fd5b50919050565b6117f1806200023f6000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80634ed831161161011a5780638da5cb5b116100ad578063d946f95d1161007c578063d946f95d1461047e578063dd62ed3e14610491578063eb56eedd146104ca578063ee96b9eb146104dd578063f2fde38b146104fd57600080fd5b80638da5cb5b1461043f57806395d89b4114610450578063a457c2d714610458578063a9059cbb1461046b57600080fd5b8063715018a6116100e9578063715018a61461040857806378e979251461041057806386c17d4b1461041957806388a8d6021461042c57600080fd5b80634ed83116146103965780635af11729146103a95780635f203033146103cc57806370a08231146103df57600080fd5b806323b872dd1161019d578063313ce5671161016c578063313ce5671461033357806336cf7c8714610348578063395093511461035b57806340c10f191461036e57806341fbb0501461038357600080fd5b806323b872dd146102e2578063292a3f7e146102f55780632a0d927b146103075780632ab4d0521461032a57600080fd5b8063116954f4116101d9578063116954f41461028d57806313e7c9d8146102ae57806318160ddd146102d15780631be05289146102d957600080fd5b806306fdde031461020b578063095ea7b3146102295780630d9005ae1461024c5780630ff8cf9b14610262575b600080fd5b610213610510565b6040516102209190611288565b60405180910390f35b61023c6102373660046112f9565b6105a2565b6040519015158152602001610220565b6102546105b8565b604051908152602001610220565b600a54610275906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b6102a061029b366004611323565b610600565b604051610220929190611377565b61023c6102bc3660046113a5565b60076020526000908152604090205460ff1681565b600354610254565b610254600e5481565b61023c6102f03660046113c0565b61061d565b60065461023c90610100900460ff1681565b61023c6103153660046113a5565b60086020526000908152604090205460ff1681565b61025460115481565b60065460405160ff9091168152602001610220565b600d54610275906001600160a01b031681565b61023c6103693660046112f9565b610686565b61038161037c3660046112f9565b6106bc565b005b600c54610275906001600160a01b031681565b6103816103a43660046114b4565b610770565b61023c6103b73660046113a5565b60096020526000908152604090205460ff1681565b6103816103da366004611523565b61087b565b6102546103ed3660046113a5565b6001600160a01b031660009081526001602052604090205490565b6103816108ef565b610254600f5481565b610381610427366004611523565b610903565b600b54610275906001600160a01b031681565b6000546001600160a01b0316610275565b610213610972565b61023c6104663660046112f9565b610981565b61023c6104793660046112f9565b6109d0565b6102a061048c36600461157a565b6109dd565b61025461049f36600461159c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6103816104d83660046115cf565b610b1d565b6102546104eb366004611323565b60106020526000908152604090205481565b61038161050b3660046113a5565b610bc0565b60606004805461051f90611656565b80601f016020809104026020016040519081016040528092919081815260200182805461054b90611656565b80156105985780601f1061056d57610100808354040283529160200191610598565b820191906000526020600020905b81548152906001019060200180831161057b57829003601f168201915b5050505050905090565b60006105af338484610c39565b50600192915050565b6000600e54600014156105cb5750600090565b60006105e2600f5442610d5e90919063ffffffff16565b9150506105fa600e5482610d8490919063ffffffff16565b91505090565b60608061061461060e6105b8565b846109dd565b91509150915091565b600061062a848484610d97565b61067c84336106778560405180606001604052806028815260200161176f602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610eca565b610c39565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105af9185906106779086610ef6565b3360009081526007602052604090205460ff166107115760405162461bcd60e51b815260206004820152600e60248201526d4e6f207065726d697373696f6e2160901b60448201526064015b60405180910390fd5b6011546003546107219083610ef6565b11156107625760405162461bcd60e51b815260206004820152601060248201526f43616e2774206d696e74206d6f72652160801b6044820152606401610708565b61076c8282610f02565b5050565b610778610fe8565b600a80546001600160a01b038087166001600160a01b031992831617909255600b8054868416908316179055600c80549285169290911691909117905560005b8151811015610874576001600860008484815181106107d9576107d9611691565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600084848151811061083057610830611691565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061086c816116bd565b9150506107b8565b5050505050565b610883610fe8565b60005b82518110156108ea5781600960008584815181106108a6576108a6611691565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108e2816116bd565b915050610886565b505050565b6108f7610fe8565b6109016000611042565b565b61090b610fe8565b60005b82518110156108ea57816008600085848151811061092e5761092e611691565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061096a816116bd565b91505061090e565b60606005805461051f90611656565b60006105af338461067785604051806060016040528060258152602001611797602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610eca565b60006105af338484610d97565b60608060006109ea6105b8565b90506109f68186611092565b9450610a0d84610a07876001610ef6565b90611092565b93508367ffffffffffffffff811115610a2857610a286113fc565b604051908082528060200260200182016040528015610a51578160200160208202803683370190505b5092508367ffffffffffffffff811115610a6d57610a6d6113fc565b604051908082528060200260200182016040528015610a96578160200160208202803683370190505b5091506000805b85811015610b1357610aaf87826110a8565b915081858281518110610ac457610ac4611691565b6020026020010181815250506010600083815260200190815260200160002054848281518110610af657610af6611691565b602090810291909101015280610b0b816116bd565b915050610a9d565b5050509250929050565b610b25610fe8565b600654610100900460ff1615610b6a5760405162461bcd60e51b815260206004820152600a6024820152694f6e6c79206f6e63652160b01b6044820152606401610708565b80516001600160a01b039081166000908152600760209081526040808320805460ff19908116600190811790925592909501519093168252919020805490911690911790556006805461ff001916610100179055565b610bc8610fe8565b6001600160a01b038116610c2d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610708565b610c3681611042565b50565b6001600160a01b038316610c9b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610708565b6001600160a01b038216610cfc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610708565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008083831115610d7457506000905080610d7d565b50600190508183035b9250929050565b6000610d9082846116d8565b9392505050565b6001600160a01b038316610dfb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610708565b6001600160a01b038216610e5d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610708565b6001600160a01b03831660009081526008602052604090205460ff1680610e9c57506001600160a01b03821660009081526009602052604090205460ff165b15610eac576108ea8383836110b4565b6108ea8383610ec5610ebe8786611174565b85906110a8565b6110b4565b60008184841115610eee5760405162461bcd60e51b81526004016107089190611288565b505050900390565b6000610d9082846116fa565b6001600160a01b038216610f585760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610708565b600354610f659082610ef6565b6003556001600160a01b038216600090815260016020526040902054610f8b9082610ef6565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fdc9085815260200190565b60405180910390a35050565b6000546001600160a01b031633146109015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610708565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183106110a15781610d90565b5090919050565b6000610d908284611712565b6110f181604051806060016040528060268152602001611749602691396001600160a01b0386166000908152600160205260409020549190610eca565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546111209082610ef6565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d519085815260200190565b600061118c608261118684601e61127c565b90610d84565b905060006111a0606461118684603261127c565b600a549091506111bb9085906001600160a01b0316836110b4565b60006111cd606461118685601461127c565b600b549091506111e89086906001600160a01b0316836110b4565b60006111fa606461118686601461127c565b600c549091506112159087906001600160a01b0316836110b4565b600d5461123d9087906001600160a01b0316610ec58461123787818b8b6110a8565b906110a8565b60006112476105b8565b90508460106000838152602001908152602001600020600082825461126c91906116fa565b9091555094979650505050505050565b6000610d908284611729565b600060208083528351808285015260005b818110156112b557858101830151858201604001528201611299565b818111156112c7576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146112f457600080fd5b919050565b6000806040838503121561130c57600080fd5b611315836112dd565b946020939093013593505050565b60006020828403121561133557600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561136c57815187529582019590820190600101611350565b509495945050505050565b60408152600061138a604083018561133c565b828103602084015261139c818561133c565b95945050505050565b6000602082840312156113b757600080fd5b610d90826112dd565b6000806000606084860312156113d557600080fd5b6113de846112dd565b92506113ec602085016112dd565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261142357600080fd5b8135602067ffffffffffffffff80831115611440576114406113fc565b8260051b604051601f19603f83011681018181108482111715611465576114656113fc565b60405293845285810183019383810192508785111561148357600080fd5b83870191505b848210156114a95761149a826112dd565b83529183019190830190611489565b979650505050505050565b600080600080608085870312156114ca57600080fd5b6114d3856112dd565b93506114e1602086016112dd565b92506114ef604086016112dd565b9150606085013567ffffffffffffffff81111561150b57600080fd5b61151787828801611412565b91505092959194509250565b6000806040838503121561153657600080fd5b823567ffffffffffffffff81111561154d57600080fd5b61155985828601611412565b9250506020830135801515811461156f57600080fd5b809150509250929050565b6000806040838503121561158d57600080fd5b50508035926020909101359150565b600080604083850312156115af57600080fd5b6115b8836112dd565b91506115c6602084016112dd565b90509250929050565b6000604082840312156115e157600080fd5b82601f8301126115f057600080fd5b6040516040810181811067ffffffffffffffff82111715611613576116136113fc565b806040525080604084018581111561162a57600080fd5b845b8181101561164b5761163d816112dd565b83526020928301920161162c565b509195945050505050565b600181811c9082168061166a57607f821691505b6020821081141561168b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156116d1576116d16116a7565b5060010190565b6000826116f557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561170d5761170d6116a7565b500190565b600082821015611724576117246116a7565b500390565b6000816000190483118215151615611743576117436116a7565b50029056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cfbdc5641c8fd07e7b487e9df7dbf04addfb8b4c337994f03df5efb09f3adea664736f6c634300080900330000000000000000000000000000000000000000000000000000000063efa4800000000000000000000000000000000000000000000000000000000000015180
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102065760003560e01c80634ed831161161011a5780638da5cb5b116100ad578063d946f95d1161007c578063d946f95d1461047e578063dd62ed3e14610491578063eb56eedd146104ca578063ee96b9eb146104dd578063f2fde38b146104fd57600080fd5b80638da5cb5b1461043f57806395d89b4114610450578063a457c2d714610458578063a9059cbb1461046b57600080fd5b8063715018a6116100e9578063715018a61461040857806378e979251461041057806386c17d4b1461041957806388a8d6021461042c57600080fd5b80634ed83116146103965780635af11729146103a95780635f203033146103cc57806370a08231146103df57600080fd5b806323b872dd1161019d578063313ce5671161016c578063313ce5671461033357806336cf7c8714610348578063395093511461035b57806340c10f191461036e57806341fbb0501461038357600080fd5b806323b872dd146102e2578063292a3f7e146102f55780632a0d927b146103075780632ab4d0521461032a57600080fd5b8063116954f4116101d9578063116954f41461028d57806313e7c9d8146102ae57806318160ddd146102d15780631be05289146102d957600080fd5b806306fdde031461020b578063095ea7b3146102295780630d9005ae1461024c5780630ff8cf9b14610262575b600080fd5b610213610510565b6040516102209190611288565b60405180910390f35b61023c6102373660046112f9565b6105a2565b6040519015158152602001610220565b6102546105b8565b604051908152602001610220565b600a54610275906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b6102a061029b366004611323565b610600565b604051610220929190611377565b61023c6102bc3660046113a5565b60076020526000908152604090205460ff1681565b600354610254565b610254600e5481565b61023c6102f03660046113c0565b61061d565b60065461023c90610100900460ff1681565b61023c6103153660046113a5565b60086020526000908152604090205460ff1681565b61025460115481565b60065460405160ff9091168152602001610220565b600d54610275906001600160a01b031681565b61023c6103693660046112f9565b610686565b61038161037c3660046112f9565b6106bc565b005b600c54610275906001600160a01b031681565b6103816103a43660046114b4565b610770565b61023c6103b73660046113a5565b60096020526000908152604090205460ff1681565b6103816103da366004611523565b61087b565b6102546103ed3660046113a5565b6001600160a01b031660009081526001602052604090205490565b6103816108ef565b610254600f5481565b610381610427366004611523565b610903565b600b54610275906001600160a01b031681565b6000546001600160a01b0316610275565b610213610972565b61023c6104663660046112f9565b610981565b61023c6104793660046112f9565b6109d0565b6102a061048c36600461157a565b6109dd565b61025461049f36600461159c565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6103816104d83660046115cf565b610b1d565b6102546104eb366004611323565b60106020526000908152604090205481565b61038161050b3660046113a5565b610bc0565b60606004805461051f90611656565b80601f016020809104026020016040519081016040528092919081815260200182805461054b90611656565b80156105985780601f1061056d57610100808354040283529160200191610598565b820191906000526020600020905b81548152906001019060200180831161057b57829003601f168201915b5050505050905090565b60006105af338484610c39565b50600192915050565b6000600e54600014156105cb5750600090565b60006105e2600f5442610d5e90919063ffffffff16565b9150506105fa600e5482610d8490919063ffffffff16565b91505090565b60608061061461060e6105b8565b846109dd565b91509150915091565b600061062a848484610d97565b61067c84336106778560405180606001604052806028815260200161176f602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610eca565b610c39565b5060019392505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105af9185906106779086610ef6565b3360009081526007602052604090205460ff166107115760405162461bcd60e51b815260206004820152600e60248201526d4e6f207065726d697373696f6e2160901b60448201526064015b60405180910390fd5b6011546003546107219083610ef6565b11156107625760405162461bcd60e51b815260206004820152601060248201526f43616e2774206d696e74206d6f72652160801b6044820152606401610708565b61076c8282610f02565b5050565b610778610fe8565b600a80546001600160a01b038087166001600160a01b031992831617909255600b8054868416908316179055600c80549285169290911691909117905560005b8151811015610874576001600860008484815181106107d9576107d9611691565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a81548160ff02191690831515021790555060016009600084848151811061083057610830611691565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061086c816116bd565b9150506107b8565b5050505050565b610883610fe8565b60005b82518110156108ea5781600960008584815181106108a6576108a6611691565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108e2816116bd565b915050610886565b505050565b6108f7610fe8565b6109016000611042565b565b61090b610fe8565b60005b82518110156108ea57816008600085848151811061092e5761092e611691565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061096a816116bd565b91505061090e565b60606005805461051f90611656565b60006105af338461067785604051806060016040528060258152602001611797602591393360009081526002602090815260408083206001600160a01b038d1684529091529020549190610eca565b60006105af338484610d97565b60608060006109ea6105b8565b90506109f68186611092565b9450610a0d84610a07876001610ef6565b90611092565b93508367ffffffffffffffff811115610a2857610a286113fc565b604051908082528060200260200182016040528015610a51578160200160208202803683370190505b5092508367ffffffffffffffff811115610a6d57610a6d6113fc565b604051908082528060200260200182016040528015610a96578160200160208202803683370190505b5091506000805b85811015610b1357610aaf87826110a8565b915081858281518110610ac457610ac4611691565b6020026020010181815250506010600083815260200190815260200160002054848281518110610af657610af6611691565b602090810291909101015280610b0b816116bd565b915050610a9d565b5050509250929050565b610b25610fe8565b600654610100900460ff1615610b6a5760405162461bcd60e51b815260206004820152600a6024820152694f6e6c79206f6e63652160b01b6044820152606401610708565b80516001600160a01b039081166000908152600760209081526040808320805460ff19908116600190811790925592909501519093168252919020805490911690911790556006805461ff001916610100179055565b610bc8610fe8565b6001600160a01b038116610c2d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610708565b610c3681611042565b50565b6001600160a01b038316610c9b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610708565b6001600160a01b038216610cfc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610708565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60008083831115610d7457506000905080610d7d565b50600190508183035b9250929050565b6000610d9082846116d8565b9392505050565b6001600160a01b038316610dfb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610708565b6001600160a01b038216610e5d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610708565b6001600160a01b03831660009081526008602052604090205460ff1680610e9c57506001600160a01b03821660009081526009602052604090205460ff165b15610eac576108ea8383836110b4565b6108ea8383610ec5610ebe8786611174565b85906110a8565b6110b4565b60008184841115610eee5760405162461bcd60e51b81526004016107089190611288565b505050900390565b6000610d9082846116fa565b6001600160a01b038216610f585760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610708565b600354610f659082610ef6565b6003556001600160a01b038216600090815260016020526040902054610f8b9082610ef6565b6001600160a01b0383166000818152600160205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fdc9085815260200190565b60405180910390a35050565b6000546001600160a01b031633146109015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610708565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183106110a15781610d90565b5090919050565b6000610d908284611712565b6110f181604051806060016040528060268152602001611749602691396001600160a01b0386166000908152600160205260409020549190610eca565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546111209082610ef6565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d519085815260200190565b600061118c608261118684601e61127c565b90610d84565b905060006111a0606461118684603261127c565b600a549091506111bb9085906001600160a01b0316836110b4565b60006111cd606461118685601461127c565b600b549091506111e89086906001600160a01b0316836110b4565b60006111fa606461118686601461127c565b600c549091506112159087906001600160a01b0316836110b4565b600d5461123d9087906001600160a01b0316610ec58461123787818b8b6110a8565b906110a8565b60006112476105b8565b90508460106000838152602001908152602001600020600082825461126c91906116fa565b9091555094979650505050505050565b6000610d908284611729565b600060208083528351808285015260005b818110156112b557858101830151858201604001528201611299565b818111156112c7576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b03811681146112f457600080fd5b919050565b6000806040838503121561130c57600080fd5b611315836112dd565b946020939093013593505050565b60006020828403121561133557600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561136c57815187529582019590820190600101611350565b509495945050505050565b60408152600061138a604083018561133c565b828103602084015261139c818561133c565b95945050505050565b6000602082840312156113b757600080fd5b610d90826112dd565b6000806000606084860312156113d557600080fd5b6113de846112dd565b92506113ec602085016112dd565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261142357600080fd5b8135602067ffffffffffffffff80831115611440576114406113fc565b8260051b604051601f19603f83011681018181108482111715611465576114656113fc565b60405293845285810183019383810192508785111561148357600080fd5b83870191505b848210156114a95761149a826112dd565b83529183019190830190611489565b979650505050505050565b600080600080608085870312156114ca57600080fd5b6114d3856112dd565b93506114e1602086016112dd565b92506114ef604086016112dd565b9150606085013567ffffffffffffffff81111561150b57600080fd5b61151787828801611412565b91505092959194509250565b6000806040838503121561153657600080fd5b823567ffffffffffffffff81111561154d57600080fd5b61155985828601611412565b9250506020830135801515811461156f57600080fd5b809150509250929050565b6000806040838503121561158d57600080fd5b50508035926020909101359150565b600080604083850312156115af57600080fd5b6115b8836112dd565b91506115c6602084016112dd565b90509250929050565b6000604082840312156115e157600080fd5b82601f8301126115f057600080fd5b6040516040810181811067ffffffffffffffff82111715611613576116136113fc565b806040525080604084018581111561162a57600080fd5b845b8181101561164b5761163d816112dd565b83526020928301920161162c565b509195945050505050565b600181811c9082168061166a57607f821691505b6020821081141561168b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156116d1576116d16116a7565b5060010190565b6000826116f557634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561170d5761170d6116a7565b500190565b600082821015611724576117246116a7565b500390565b6000816000190483118215151615611743576117436116a7565b50029056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cfbdc5641c8fd07e7b487e9df7dbf04addfb8b4c337994f03df5efb09f3adea664736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000063efa4800000000000000000000000000000000000000000000000000000000000015180
-----Decoded View---------------
Arg [0] : _startTime (uint256): 1676649600
Arg [1] : duration (uint256): 86400
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000063efa480
Arg [1] : 0000000000000000000000000000000000000000000000000000000000015180
Deployed Bytecode Sourcemap
26609:8015:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29872:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30764:167;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;30764:167:0;1053:187:1;28917:196:0;;;:::i;:::-;;;1391:25:1;;;1379:2;1364:18;28917:196:0;1245:177:1;27187:23:0;;;;;-1:-1:-1;;;;;27187:23:0;;;;;;-1:-1:-1;;;;;1591:32:1;;;1573:51;;1561:2;1546:18;27187:23:0;1427:203:1;29121:173:0;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;27032:42::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;30173:108;30261:12;;30173:108;;27352:23;;;;;;30943:317;;;;;;:::i;:::-;;:::i;27009:16::-;;;;;;;;;;;;27081:47;;;;;;:::i;:::-;;;;;;;;;;;;;;;;27466:42;;;;;;30074:91;30148:9;;30074:91;;30148:9;;;;3396:36:1;;3384:2;3369:18;30074:91:0;3254:184:1;27281:64:0;;;;;-1:-1:-1;;;;;27281:64:0;;;31268:214;;;;;;:::i;:::-;;:::i;28684:225::-;;;;;;:::i;:::-;;:::i;:::-;;27249:25;;;;;-1:-1:-1;;;;;27249:25:0;;;28303:373;;;;;;:::i;:::-;;:::i;27135:45::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;28116:179;;;;;;:::i;:::-;;:::i;30289:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;30390:18:0;30363:7;30390:18;;;:9;:18;;;;;;;30289:127;25722:103;;;:::i;27382:24::-;;;;;;27925:183;;;;;;:::i;:::-;;:::i;27217:25::-;;;;;-1:-1:-1;;;;;27217:25:0;;;25074:87;25120:7;25147:6;-1:-1:-1;;;;;25147:6:0;25074:87;;29971:95;;;:::i;31490:265::-;;;;;;:::i;:::-;;:::i;30424:173::-;;;;;;:::i;:::-;;:::i;29306:558::-;;;;;;:::i;:::-;;:::i;30605:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;30721:18:0;;;30694:7;30721:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;30605:151;27696:221;;;;;;:::i;:::-;;:::i;27413:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;25980:201;;;;;;:::i;:::-;;:::i;29872:91::-;29917:13;29950:5;29943:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29872:91;:::o;30764:167::-;30847:4;30864:37;30873:10;30885:7;30894:6;30864:8;:37::i;:::-;-1:-1:-1;30919:4:0;30764:167;;;;:::o;28917:196::-;28964:7;28986:8;;28996:1;28986:11;28983:24;;;-1:-1:-1;29006:1:0;;28917:196::o;28983:24::-;29020:12;29036:33;29059:9;;29036:15;:22;;:33;;;;:::i;:::-;29018:51;;;29087:18;29096:8;;29087:4;:8;;:18;;;;:::i;:::-;29080:25;;;28917:196;:::o;29121:173::-;29183:24;29209:21;29249:37;29260:17;:15;:17::i;:::-;29279:6;29249:10;:37::i;:::-;29242:44;;;;29121:173;;;:::o;30943:317::-;31049:4;31066:36;31076:6;31084:9;31095:6;31066:9;:36::i;:::-;31113:117;31122:6;31130:10;31142:87;31178:6;31142:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31142:19:0;;;;;;:11;:19;;;;;;;;31162:10;31142:31;;;;;;;;;:87;:35;:87::i;:::-;31113:8;:117::i;:::-;-1:-1:-1;31248:4:0;30943:317;;;;;:::o;31268:214::-;31382:10;31356:4;31403:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;31403:32:0;;;;;;;;;;31356:4;;31373:79;;31394:7;;31403:48;;31440:10;31403:36;:48::i;28684:225::-;28762:10;28752:21;;;;:9;:21;;;;;;;;28744:48;;;;-1:-1:-1;;;28744:48:0;;7452:2:1;28744:48:0;;;7434:21:1;7491:2;7471:18;;;7464:30;-1:-1:-1;;;7510:18:1;;;7503:44;7564:18;;28744:48:0;;;;;;;;;28837:14;;28811:12;;:24;;28828:6;28811:16;:24::i;:::-;:40;;28803:70;;;;-1:-1:-1;;;28803:70:0;;7795:2:1;28803:70:0;;;7777:21:1;7834:2;7814:18;;;7807:30;-1:-1:-1;;;7853:18:1;;;7846:46;7909:18;;28803:70:0;7593:340:1;28803:70:0;28884:17;28890:2;28894:6;28884:5;:17::i;:::-;28684:225;;:::o;28303:373::-;24960:13;:11;:13::i;:::-;28436:8:::1;:20:::0;;-1:-1:-1;;;;;28436:20:0;;::::1;-1:-1:-1::0;;;;;;28436:20:0;;::::1;;::::0;;;28467:10:::1;:24:::0;;;;::::1;::::0;;::::1;;::::0;;28502:10:::1;:24:::0;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;28436:8:::1;28537:132;28550:5;:12;28548:1;:14;28537:132;;;28609:4;28582:14;:24;28597:5;28603:1;28597:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;28582:24:0::1;-1:-1:-1::0;;;;;28582:24:0::1;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;28653:4;28628:12;:22;28641:5;28647:1;28641:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;28628:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;28628:22:0;:29;;-1:-1:-1;;28628:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28563:3;::::1;::::0;::::1;:::i;:::-;;;;28537:132;;;;28303:373:::0;;;;:::o;28116:179::-;24960:13;:11;:13::i;:::-;28206:6:::1;28202:86;28215:5;:12;28213:1;:14;28202:86;;;28272:4;28247:12;:22;28260:5;28266:1;28260:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;28247:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;28247:22:0;:29;;-1:-1:-1;;28247:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28228:3;::::1;::::0;::::1;:::i;:::-;;;;28202:86;;;;28116:179:::0;;:::o;25722:103::-;24960:13;:11;:13::i;:::-;25787:30:::1;25814:1;25787:18;:30::i;:::-;25722:103::o:0;27925:183::-;24960:13;:11;:13::i;:::-;28017:6:::1;28013:88;28026:5;:12;28024:1;:14;28013:88;;;28085:4;28058:14;:24;28073:5;28079:1;28073:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;28058:24:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;28058:24:0;:31;;-1:-1:-1;;28058:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;28039:3;::::1;::::0;::::1;:::i;:::-;;;;28013:88;;29971:95:::0;30018:13;30051:7;30044:14;;;;;:::i;31490:265::-;31583:4;31600:125;31609:10;31621:7;31630:94;31667:15;31630:94;;;;;;;;;;;;;;;;;31642:10;31630:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;31630:32:0;;;;;;;;;;;:94;:36;:94::i;30424:173::-;30510:4;30527:40;30537:10;30549:9;30560:6;30527:9;:40::i;29306:558::-;29384:24;29410:21;29443:20;29466:17;:15;:17::i;:::-;29443:40;-1:-1:-1;29509:30:0;29443:40;29526:12;29509:16;:30::i;:::-;29494:45;-1:-1:-1;29559:31:0;29583:6;29559:19;29494:45;29576:1;29559:16;:19::i;:::-;:23;;:31::i;:::-;29550:40;;29625:6;29611:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29611:21:0;;29601:31;;29664:6;29650:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29650:21:0;;29643:28;;29682:13;29710:6;29706:151;29719:6;29717:1;:8;29706:151;;;29753:19;:12;29770:1;29753:16;:19::i;:::-;29745:27;;29800:5;29787:7;29795:1;29787:10;;;;;;;;:::i;:::-;;;;;;:18;;;;;29830:8;:15;29839:5;29830:15;;;;;;;;;;;;29820:4;29825:1;29820:7;;;;;;;;:::i;:::-;;;;;;;;;;:25;29726:3;;;;:::i;:::-;;;;29706:151;;;;29432:432;;29306:558;;;;;:::o;27696:221::-;24960:13;:11;:13::i;:::-;27788:4:::1;::::0;::::1;::::0;::::1;;;27787:5;27779:28;;;::::0;-1:-1:-1;;;27779:28:0;;8544:2:1;27779:28:0::1;::::0;::::1;8526:21:1::0;8583:2;8563:18;;;8556:30;-1:-1:-1;;;8602:18:1;;;8595:40;8652:18;;27779:28:0::1;8342:334:1::0;27779:28:0::1;27828:11:::0;;-1:-1:-1;;;;;27818:22:0;;::::1;;::::0;;;:9:::1;27828:11;27818:22:::0;;;;;;;:29;;-1:-1:-1;;27818:29:0;;::::1;27843:4;27818:29:::0;;::::1;::::0;;;27868:11;;;::::1;::::0;27858:22;;::::1;::::0;;;;;:29;;;;::::1;::::0;;::::1;::::0;;27898:4:::1;:11:::0;;-1:-1:-1;;27898:11:0::1;27858:29;27898:11;::::0;;27696:221::o;25980:201::-;24960:13;:11;:13::i;:::-;-1:-1:-1;;;;;26069:22:0;::::1;26061:73;;;::::0;-1:-1:-1;;;26061:73:0;;8883:2:1;26061:73:0::1;::::0;::::1;8865:21:1::0;8922:2;8902:18;;;8895:30;8961:34;8941:18;;;8934:62;-1:-1:-1;;;9012:18:1;;;9005:36;9058:19;;26061:73:0::1;8681:402:1::0;26061:73:0::1;26145:28;26164:8;26145:18;:28::i;:::-;25980:201:::0;:::o;34065:346::-;-1:-1:-1;;;;;34167:19:0;;34159:68;;;;-1:-1:-1;;;34159:68:0;;9290:2:1;34159:68:0;;;9272:21:1;9329:2;9309:18;;;9302:30;9368:34;9348:18;;;9341:62;-1:-1:-1;;;9419:18:1;;;9412:34;9463:19;;34159:68:0;9088:400:1;34159:68:0;-1:-1:-1;;;;;34246:21:0;;34238:68;;;;-1:-1:-1;;;34238:68:0;;9695:2:1;34238:68:0;;;9677:21:1;9734:2;9714:18;;;9707:30;9773:34;9753:18;;;9746:62;-1:-1:-1;;;9824:18:1;;;9817:32;9866:19;;34238:68:0;9493:398:1;34238:68:0;-1:-1:-1;;;;;34319:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;34371:32;;1391:25:1;;;34371:32:0;;1364:18:1;34371:32:0;;;;;;;;34065:346;;;:::o;13942:194::-;14003:4;14009:7;14062:1;14058;:5;14054:28;;;-1:-1:-1;14073:5:0;;-1:-1:-1;14073:5:0;14065:17;;14054:28;-1:-1:-1;14105:4:0;;-1:-1:-1;14111:5:0;;;13942:194;;;;;;:::o;16890:98::-;16948:7;16975:5;16979:1;16975;:5;:::i;:::-;16968:12;16890:98;-1:-1:-1;;;16890:98:0:o;31763:497::-;-1:-1:-1;;;;;31869:20:0;;31861:70;;;;-1:-1:-1;;;31861:70:0;;10320:2:1;31861:70:0;;;10302:21:1;10359:2;10339:18;;;10332:30;10398:34;10378:18;;;10371:62;-1:-1:-1;;;10449:18:1;;;10442:35;10494:19;;31861:70:0;10118:401:1;31861:70:0;-1:-1:-1;;;;;31950:23:0;;31942:71;;;;-1:-1:-1;;;31942:71:0;;10726:2:1;31942:71:0;;;10708:21:1;10765:2;10745:18;;;10738:30;10804:34;10784:18;;;10777:62;-1:-1:-1;;;10855:18:1;;;10848:33;10898:19;;31942:71:0;10524:399:1;31942:71:0;-1:-1:-1;;;;;32029:22:0;;;;;;:14;:22;;;;;;;;;:49;;-1:-1:-1;;;;;;32055:23:0;;;;;;:12;:23;;;;;;;;32029:49;32026:227;;;32094:41;32109:6;32117:9;32128:6;32094:14;:41::i;32026:227::-;32166:75;32181:6;32189:9;32200:40;32211:28;32224:6;32232;32211:12;:28::i;:::-;32200:6;;:10;:40::i;:::-;32166:14;:75::i;18032:240::-;18152:7;18213:12;18205:6;;;;18197:29;;;;-1:-1:-1;;;18197:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;18248:5:0;;;18032:240::o;15753:98::-;15811:7;15838:5;15842:1;15838;:5;:::i;33253:378::-;-1:-1:-1;;;;;33337:21:0;;33329:65;;;;-1:-1:-1;;;33329:65:0;;11263:2:1;33329:65:0;;;11245:21:1;11302:2;11282:18;;;11275:30;11341:33;11321:18;;;11314:61;11392:18;;33329:65:0;11061:355:1;33329:65:0;33484:12;;:24;;33501:6;33484:16;:24::i;:::-;33469:12;:39;-1:-1:-1;;;;;33540:18:0;;;;;;:9;:18;;;;;;:30;;33563:6;33540:22;:30::i;:::-;-1:-1:-1;;;;;33519:18:0;;;;;;:9;:18;;;;;;:51;;;;33586:37;;33519:18;;;33586:37;;;;33616:6;1391:25:1;;1379:2;1364:18;;1245:177;33586:37:0;;;;;;;;33253:378;;:::o;25239:132::-;25120:7;25147:6;-1:-1:-1;;;;;25147:6:0;23705:10;25303:23;25295:68;;;;-1:-1:-1;;;25295:68:0;;11623:2:1;25295:68:0;;;11605:21:1;;;11642:18;;;11635:30;11701:34;11681:18;;;11674:62;11753:18;;25295:68:0;11421:356:1;26341:191:0;26415:16;26434:6;;-1:-1:-1;;;;;26451:17:0;;;-1:-1:-1;;;;;;26451:17:0;;;;;;26484:40;;26434:6;;;;;;;26484:40;;26415:16;26484:40;26404:128;26341:191;:::o;638:106::-;696:7;727:1;723;:5;:13;;735:1;723:13;;;-1:-1:-1;731:1:0;;638:106;-1:-1:-1;638:106:0:o;16134:98::-;16192:7;16219:5;16223:1;16219;:5;:::i;32866:379::-;33049:71;33071:6;33049:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33049:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;33029:17:0;;;;;;;:9;:17;;;;;;:91;;;;33154:20;;;;;;;:32;;33179:6;33154:24;:32::i;:::-;-1:-1:-1;;;;;33131:20:0;;;;;;;:9;:20;;;;;;;:55;;;;33202:35;;;;;;;;;;33230:6;1391:25:1;;1379:2;1364:18;;1245:177;32268:590:0;32347:11;32377:23;32396:3;32377:14;:6;32388:2;32377:10;:14::i;:::-;:18;;:23::i;:::-;32371:29;-1:-1:-1;32413:12:0;32428:20;32444:3;32428:11;32371:29;32436:2;32428:7;:11::i;:20::-;32482:8;;32413:35;;-1:-1:-1;32459:38:0;;32474:6;;-1:-1:-1;;;;;32482:8:0;32413:35;32459:14;:38::i;:::-;32510:12;32525:20;32541:3;32525:11;:3;32533:2;32525:7;:11::i;:20::-;32579:10;;32510:35;;-1:-1:-1;32556:40:0;;32571:6;;-1:-1:-1;;;;;32579:10:0;32510:35;32556:14;:40::i;:::-;32609:12;32624:20;32640:3;32624:11;:3;32632:2;32624:7;:11::i;:20::-;32678:10;;32609:35;;-1:-1:-1;32655:40:0;;32670:6;;-1:-1:-1;;;;;32678:10:0;32609:35;32655:14;:40::i;:::-;32731:4;;32708:63;;32723:6;;-1:-1:-1;;;;;32731:4:0;32737:33;32765:4;32737:23;32755:4;32737:23;:3;32745:4;32737:7;:13::i;:::-;:17;;:23::i;32708:63::-;32784:13;32800:17;:15;:17::i;:::-;32784:33;;32847:3;32828:8;:15;32837:5;32828:15;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;32268:590:0;;;-1:-1:-1;;;;;;;32268:590:0:o;16491:98::-;16549:7;16576:5;16580:1;16576;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1635:180::-;1694:6;1747:2;1735:9;1726:7;1722:23;1718:32;1715:52;;;1763:1;1760;1753:12;1715:52;-1:-1:-1;1786:23:1;;1635:180;-1:-1:-1;1635:180:1:o;1820:435::-;1873:3;1911:5;1905:12;1938:6;1933:3;1926:19;1964:4;1993:2;1988:3;1984:12;1977:19;;2030:2;2023:5;2019:14;2051:1;2061:169;2075:6;2072:1;2069:13;2061:169;;;2136:13;;2124:26;;2170:12;;;;2205:15;;;;2097:1;2090:9;2061:169;;;-1:-1:-1;2246:3:1;;1820:435;-1:-1:-1;;;;;1820:435:1:o;2260:465::-;2517:2;2506:9;2499:21;2480:4;2543:56;2595:2;2584:9;2580:18;2572:6;2543:56;:::i;:::-;2647:9;2639:6;2635:22;2630:2;2619:9;2615:18;2608:50;2675:44;2712:6;2704;2675:44;:::i;:::-;2667:52;2260:465;-1:-1:-1;;;;;2260:465:1:o;2730:186::-;2789:6;2842:2;2830:9;2821:7;2817:23;2813:32;2810:52;;;2858:1;2855;2848:12;2810:52;2881:29;2900:9;2881:29;:::i;2921:328::-;2998:6;3006;3014;3067:2;3055:9;3046:7;3042:23;3038:32;3035:52;;;3083:1;3080;3073:12;3035:52;3106:29;3125:9;3106:29;:::i;:::-;3096:39;;3154:38;3188:2;3177:9;3173:18;3154:38;:::i;:::-;3144:48;;3239:2;3228:9;3224:18;3211:32;3201:42;;2921:328;;;;;:::o;3443:127::-;3504:10;3499:3;3495:20;3492:1;3485:31;3535:4;3532:1;3525:15;3559:4;3556:1;3549:15;3575:908;3629:5;3682:3;3675:4;3667:6;3663:17;3659:27;3649:55;;3700:1;3697;3690:12;3649:55;3736:6;3723:20;3762:4;3785:18;3822:2;3818;3815:10;3812:36;;;3828:18;;:::i;:::-;3874:2;3871:1;3867:10;3906:2;3900:9;3969:2;3965:7;3960:2;3956;3952:11;3948:25;3940:6;3936:38;4024:6;4012:10;4009:22;4004:2;3992:10;3989:18;3986:46;3983:72;;;4035:18;;:::i;:::-;4071:2;4064:22;4121:18;;;4197:15;;;4193:24;;;4155:15;;;;-1:-1:-1;4229:15:1;;;4226:35;;;4257:1;4254;4247:12;4226:35;4293:2;4285:6;4281:15;4270:26;;4305:148;4321:6;4316:3;4313:15;4305:148;;;4387:23;4406:3;4387:23;:::i;:::-;4375:36;;4431:12;;;;4338;;;;4305:148;;;4471:6;3575:908;-1:-1:-1;;;;;;;3575:908:1:o;4488:571::-;4599:6;4607;4615;4623;4676:3;4664:9;4655:7;4651:23;4647:33;4644:53;;;4693:1;4690;4683:12;4644:53;4716:29;4735:9;4716:29;:::i;:::-;4706:39;;4764:38;4798:2;4787:9;4783:18;4764:38;:::i;:::-;4754:48;;4821:38;4855:2;4844:9;4840:18;4821:38;:::i;:::-;4811:48;;4910:2;4899:9;4895:18;4882:32;4937:18;4929:6;4926:30;4923:50;;;4969:1;4966;4959:12;4923:50;4992:61;5045:7;5036:6;5025:9;5021:22;4992:61;:::i;:::-;4982:71;;;4488:571;;;;;;;:::o;5064:509::-;5154:6;5162;5215:2;5203:9;5194:7;5190:23;5186:32;5183:52;;;5231:1;5228;5221:12;5183:52;5271:9;5258:23;5304:18;5296:6;5293:30;5290:50;;;5336:1;5333;5326:12;5290:50;5359:61;5412:7;5403:6;5392:9;5388:22;5359:61;:::i;:::-;5349:71;;;5470:2;5459:9;5455:18;5442:32;5517:5;5510:13;5503:21;5496:5;5493:32;5483:60;;5539:1;5536;5529:12;5483:60;5562:5;5552:15;;;5064:509;;;;;:::o;5578:248::-;5646:6;5654;5707:2;5695:9;5686:7;5682:23;5678:32;5675:52;;;5723:1;5720;5713:12;5675:52;-1:-1:-1;;5746:23:1;;;5816:2;5801:18;;;5788:32;;-1:-1:-1;5578:248:1:o;5831:260::-;5899:6;5907;5960:2;5948:9;5939:7;5935:23;5931:32;5928:52;;;5976:1;5973;5966:12;5928:52;5999:29;6018:9;5999:29;:::i;:::-;5989:39;;6047:38;6081:2;6070:9;6066:18;6047:38;:::i;:::-;6037:48;;5831:260;;;;;:::o;6096:764::-;6178:6;6231:2;6219:9;6210:7;6206:23;6202:32;6199:52;;;6247:1;6244;6237:12;6199:52;6296:7;6289:4;6278:9;6274:20;6270:34;6260:62;;6318:1;6315;6308:12;6260:62;6351:2;6345:9;6393:2;6385:6;6381:15;6462:6;6450:10;6447:22;6426:18;6414:10;6411:34;6408:62;6405:88;;;6473:18;;:::i;:::-;6513:10;6509:2;6502:22;;6544:6;6588:2;6577:9;6573:18;6614:7;6606:6;6603:19;6600:39;;;6635:1;6632;6625:12;6600:39;6659:9;6677:152;6693:6;6688:3;6685:15;6677:152;;;6761:23;6780:3;6761:23;:::i;:::-;6749:36;;6814:4;6805:14;;;;6710;6677:152;;;-1:-1:-1;6848:6:1;;6096:764;-1:-1:-1;;;;;6096:764:1:o;6865:380::-;6944:1;6940:12;;;;6987;;;7008:61;;7062:4;7054:6;7050:17;7040:27;;7008:61;7115:2;7107:6;7104:14;7084:18;7081:38;7078:161;;;7161:10;7156:3;7152:20;7149:1;7142:31;7196:4;7193:1;7186:15;7224:4;7221:1;7214:15;7078:161;;6865:380;;;:::o;7938:127::-;7999:10;7994:3;7990:20;7987:1;7980:31;8030:4;8027:1;8020:15;8054:4;8051:1;8044:15;8070:127;8131:10;8126:3;8122:20;8119:1;8112:31;8162:4;8159:1;8152:15;8186:4;8183:1;8176:15;8202:135;8241:3;-1:-1:-1;;8262:17:1;;8259:43;;;8282:18;;:::i;:::-;-1:-1:-1;8329:1:1;8318:13;;8202:135::o;9896:217::-;9936:1;9962;9952:132;;10006:10;10001:3;9997:20;9994:1;9987:31;10041:4;10038:1;10031:15;10069:4;10066:1;10059:15;9952:132;-1:-1:-1;10098:9:1;;9896:217::o;10928:128::-;10968:3;10999:1;10995:6;10992:1;10989:13;10986:39;;;11005:18;;:::i;:::-;-1:-1:-1;11041:9:1;;10928:128::o;11782:125::-;11822:4;11850:1;11847;11844:8;11841:34;;;11855:18;;:::i;:::-;-1:-1:-1;11892:9:1;;11782:125::o;11912:168::-;11952:7;12018:1;12014;12010:6;12006:14;12003:1;12000:21;11995:1;11988:9;11981:17;11977:45;11974:71;;;12025:18;;:::i;:::-;-1:-1:-1;12065:9:1;;11912:168::o
Swarm Source
ipfs://cfbdc5641c8fd07e7b487e9df7dbf04addfb8b4c337994f03df5efb09f3adea6
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.