Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 69 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 20288267 | 18 days ago | IN | 0 ETH | 0.00017498 | ||||
Unstake | 20202751 | 30 days ago | IN | 0 ETH | 0.00019026 | ||||
Unstake | 19860264 | 78 days ago | IN | 0 ETH | 0.00064195 | ||||
Unstake | 19712138 | 98 days ago | IN | 0 ETH | 0.00189091 | ||||
Claim | 19612567 | 112 days ago | IN | 0 ETH | 0.00118023 | ||||
Unstake | 19612566 | 112 days ago | IN | 0 ETH | 0.00405802 | ||||
Claim | 19564893 | 119 days ago | IN | 0 ETH | 0.00061307 | ||||
Unstake | 19535538 | 123 days ago | IN | 0 ETH | 0.00363287 | ||||
Stake | 19523116 | 125 days ago | IN | 0 ETH | 0.0029646 | ||||
Unstake | 19520893 | 125 days ago | IN | 0 ETH | 0.00429058 | ||||
Claim | 19520858 | 125 days ago | IN | 0 ETH | 0.00152861 | ||||
Stake | 19509168 | 127 days ago | IN | 0 ETH | 0.00179583 | ||||
Claim | 19508041 | 127 days ago | IN | 0 ETH | 0.00059352 | ||||
Unstake | 19493987 | 129 days ago | IN | 0 ETH | 0.00178151 | ||||
Claim | 19464850 | 133 days ago | IN | 0 ETH | 0.00092568 | ||||
Unstake | 19464581 | 133 days ago | IN | 0 ETH | 0.00367523 | ||||
Claim | 19464580 | 133 days ago | IN | 0 ETH | 0.00114225 | ||||
Stake | 19450320 | 135 days ago | IN | 0 ETH | 0.00398897 | ||||
Stake | 19416979 | 140 days ago | IN | 0 ETH | 0.00410485 | ||||
Stake | 19409691 | 141 days ago | IN | 0 ETH | 0.00412282 | ||||
Stake | 19409610 | 141 days ago | IN | 0 ETH | 0.00351424 | ||||
Stake | 19386998 | 144 days ago | IN | 0 ETH | 0.00433123 | ||||
Claim | 19343160 | 150 days ago | IN | 0 ETH | 0.002032 | ||||
Stake | 19335158 | 151 days ago | IN | 0 ETH | 0.00933397 | ||||
Unstake | 19329739 | 152 days ago | IN | 0 ETH | 0.00579866 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
CaesarsRevenueShare
Compiler Version
v0.8.22+commit.4fc1097e
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.22; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/utils/math/SafeMath.sol"; library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); /** * @dev Multiplies two int256 variables and fails on overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } /** * @dev Division of two int256 variables and fails on overflow. */ function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } /** * @dev Subtracts two int256 variables and fails on overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } /** * @dev Adds two int256 variables and fails on overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } /** * @dev Converts to absolute value, and fails on overflow. */ function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } function toUint256Safe(int256 a) internal pure returns (uint256) { require(a >= 0); return uint256(a); } } library SafeMathUint { function toInt256Safe(uint256 a) internal pure returns (int256) { int256 b = int256(a); require(b >= 0); return b; } } interface DividendPayingContractOptionalInterface { function withdrawableDividendOf(address _owner) external view returns(uint256); function withdrawnDividendOf(address _owner) external view returns(uint256); function accumulativeDividendOf(address _owner) external view returns(uint256); } interface DividendPayingContractInterface { function dividendOf(address _owner) external view returns(uint256); function distributeDividends() external payable; function withdrawDividend() external; event DividendsDistributed( address indexed from, uint256 weiAmount ); event DividendWithdrawn( address indexed to, uint256 weiAmount ); } contract DividendPayingContract is DividendPayingContractInterface, DividendPayingContractOptionalInterface { using SafeMath for uint256; using SafeMathUint for uint256; using SafeMathInt for int256; uint256 constant internal magnitude = 2**128; uint256 internal magnifiedDividendPerShare; mapping(address => int256) internal magnifiedDividendCorrections; mapping(address => uint256) internal withdrawnDividends; mapping (address => uint256) public holderBalance; uint256 public totalBalance; uint256 public totalDividendsDistributed; receive() external payable { distributeDividends(); } function distributeDividends() public override payable { if(totalBalance > 0 && msg.value > 0){ magnifiedDividendPerShare = magnifiedDividendPerShare.add( (msg.value).mul(magnitude) / totalBalance ); emit DividendsDistributed(msg.sender, msg.value); totalDividendsDistributed = totalDividendsDistributed.add(msg.value); } } function withdrawDividend() external virtual override { _withdrawDividendOfUser(payable(msg.sender)); } function _withdrawDividendOfUser(address payable user) internal returns (uint256) { uint256 _withdrawableDividend = withdrawableDividendOf(user); if (_withdrawableDividend > 0) { withdrawnDividends[user] = withdrawnDividends[user].add(_withdrawableDividend); emit DividendWithdrawn(user, _withdrawableDividend); (bool success,) = user.call{value: _withdrawableDividend}(""); if(!success) { withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend); return 0; } return _withdrawableDividend; } return 0; } function dividendOf(address _owner) external view override returns(uint256) { return withdrawableDividendOf(_owner); } function withdrawableDividendOf(address _owner) public view override returns(uint256) { return accumulativeDividendOf(_owner).sub(withdrawnDividends[_owner]); } function withdrawnDividendOf(address _owner) external view override returns(uint256) { return withdrawnDividends[_owner]; } function accumulativeDividendOf(address _owner) public view override returns(uint256) { return magnifiedDividendPerShare.mul(holderBalance[_owner]).toInt256Safe() .add(magnifiedDividendCorrections[_owner]).toUint256Safe() / magnitude; } function _increase(address account, uint256 value) internal { magnifiedDividendCorrections[account] = magnifiedDividendCorrections[account] .sub( (magnifiedDividendPerShare.mul(value)).toInt256Safe() ); } function _reduce(address account, uint256 value) internal { magnifiedDividendCorrections[account] = magnifiedDividendCorrections[account] .add( (magnifiedDividendPerShare.mul(value)).toInt256Safe() ); } function _setBalance(address account, uint256 newBalance) internal { uint256 currentBalance = holderBalance[account]; holderBalance[account] = newBalance; if(newBalance > currentBalance) { uint256 increaseAmount = newBalance.sub(currentBalance); _increase(account, increaseAmount); totalBalance += increaseAmount; } else if(newBalance < currentBalance) { uint256 reduceAmount = currentBalance.sub(newBalance); _reduce(account, reduceAmount); totalBalance -= reduceAmount; } } } contract DividendTracker is DividendPayingContract { event Claim(address indexed account, uint256 amount, bool indexed automatic); constructor() {} function getAccount(address _account) public view returns ( address account, uint256 withdrawableDividends, uint256 totalDividends, uint256 balance) { account = _account; withdrawableDividends = withdrawableDividendOf(account); totalDividends = accumulativeDividendOf(account); balance = holderBalance[account]; } function setBalance(address payable account, uint256 newBalance) internal { _setBalance(account, newBalance); processAccount(account, true); } function processAccount(address payable account, bool automatic) internal returns (bool) { uint256 amount = _withdrawDividendOfUser(account); if(amount > 0) { emit Claim(account, amount, automatic); return true; } return false; } function getTotalDividendsDistributed() external view returns (uint256) { return totalDividendsDistributed; } function dividendTokenBalanceOf(address account) public view returns (uint256) { return holderBalance[account]; } function getNumberOfDividends() external view returns(uint256) { return totalBalance; } } contract CaesarsRevenueShare is Ownable, ReentrancyGuard, DividendTracker { IERC20 public immutable caesar; address public stakingWallet; mapping (address => uint256) public holderUnlockTime; uint256 public lockDuration; event Staked(address user, uint256 amount); event Unstaked(address user, uint256 amount); constructor(address _caesar, uint256 _lockPeriodWeeks, address _stakingWallet) { require(_caesar != address(0), "cannot be 0 address"); caesar = IERC20(_caesar); stakingWallet = _stakingWallet; lockDuration = _lockPeriodWeeks * 1 weeks; } function stake(uint256 _amount) external nonReentrant { require(_amount > 0, "Stake amount must be greater than zero"); if(holderUnlockTime[msg.sender] == 0) { holderUnlockTime[msg.sender] = block.timestamp + lockDuration; } uint256 userAmount = holderBalance[msg.sender]; uint256 amountTransferred = 0; uint256 initialBalance = caesar.balanceOf(stakingWallet); caesar.transferFrom(address(msg.sender), stakingWallet, _amount); amountTransferred = caesar.balanceOf(stakingWallet) - initialBalance; setBalance(payable(msg.sender), userAmount + amountTransferred); emit Staked(msg.sender, _amount); } function unstake(uint256 _amount) external nonReentrant { require(_amount > 0, "Unstake amount must be greater than zero"); uint256 userAmount = holderBalance[msg.sender]; require(_amount <= userAmount, "Not enough tokens"); require(holderUnlockTime[msg.sender] <= block.timestamp, "May not withdraw early"); caesar.transferFrom(stakingWallet, address(msg.sender), _amount); setBalance(payable(msg.sender), userAmount - _amount); if(userAmount > 0){ holderUnlockTime[msg.sender] = block.timestamp + lockDuration; } else { holderUnlockTime[msg.sender] = 0; } emit Unstaked(msg.sender, _amount); } function returnBalance(address _staker) external view returns (uint256) { return holderBalance[_staker]; } function withdrawAll() public nonReentrant { uint256 userAmount = holderBalance[msg.sender]; require(userAmount > 0, "No tokens to withdraw"); require(holderUnlockTime[msg.sender] <= block.timestamp, "Withdrawal locked"); require(caesar.transfer(address(msg.sender), userAmount), "Transfer failed"); caesar.transferFrom(stakingWallet, address(msg.sender), userAmount); holderBalance[msg.sender] = 0; holderUnlockTime[msg.sender] = 0; emit Unstaked(msg.sender, userAmount); } function claim() external nonReentrant { processAccount(payable(msg.sender), false); } function withdraw(address payable recipient, uint256 amount) external onlyOwner { require(address(this).balance >= amount, "Insufficient balance in contract"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Transfer failed."); } }
// SPDX-License-Identifier: MIT // 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; } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @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); } }
// SPDX-License-Identifier: MIT // 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); }
// SPDX-License-Identifier: MIT // 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; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_caesar","type":"address"},{"internalType":"uint256","name":"_lockPeriodWeeks","type":"uint256"},{"internalType":"address","name":"_stakingWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"bool","name":"automatic","type":"bool"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"DividendWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"DividendsDistributed","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":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstaked","type":"event"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"accumulativeDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caesar","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeDividends","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"dividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"dividendTokenBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getAccount","outputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"withdrawableDividends","type":"uint256"},{"internalType":"uint256","name":"totalDividends","type":"uint256"},{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumberOfDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividendsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"_staker","type":"address"}],"name":"returnBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividendsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"withdrawableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"withdrawnDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a060405234801562000010575f80fd5b5060405162002cf338038062002cf38339818101604052810190620000369190620002c7565b620000566200004a6200016260201b60201c565b6200016960201b60201c565b600180819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620000ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c5906200037e565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062093a8082620001539190620003cb565b600a8190555050505062000415565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000259826200022e565b9050919050565b6200026b816200024d565b811462000276575f80fd5b50565b5f81519050620002898162000260565b92915050565b5f819050919050565b620002a3816200028f565b8114620002ae575f80fd5b50565b5f81519050620002c18162000298565b92915050565b5f805f60608486031215620002e157620002e06200022a565b5b5f620002f08682870162000279565b93505060206200030386828701620002b1565b9250506040620003168682870162000279565b9150509250925092565b5f82825260208201905092915050565b7f63616e6e6f7420626520302061646472657373000000000000000000000000005f82015250565b5f6200036660138362000320565b9150620003738262000330565b602082019050919050565b5f6020820190508181035f830152620003978162000358565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620003d7826200028f565b9150620003e4836200028f565b9250828202620003f4816200028f565b915082820484148315176200040e576200040d6200039e565b5b5092915050565b60805161289b620004585f395f818161096a01528181610bb601528181610ce501528181610dbf015281816110a5015281816111600152611220015261289b5ff3fe608060405260043610610184575f3560e01c8063853828b6116100d0578063a913a5f711610089578063ad7a672f11610063578063ad7a672f1461054f578063f2fde38b14610579578063f3fef3a3146105a1578063fbcbc0f1146105c957610193565b8063a913a5f71461049b578063aafd847a146104d7578063ab6ddfa81461051357610193565b8063853828b61461039157806385a6b3ae146103a75780638da5cb5b146103d157806391b89fba146103fb578063a694fc3a14610437578063a8b9d2401461045f57610193565b806330bb4cff1161013d5780636a474002116101175780636a47400214610311578063715018a61461032757806371778e7d1461033d57806380ca85601461036757610193565b806330bb4cff146102955780634e71d92d146102bf5780636843cd84146102d557610193565b806303c833021461019757806304554443146101a157806306ee6ad8146101cb578063264b2b8e146101f557806327ce0147146102315780632e17de781461026d57610193565b3661019357610191610608565b005b5f80fd5b61019f610608565b005b3480156101ac575f80fd5b506101b56106d4565b6040516101c29190611dbd565b60405180910390f35b3480156101d6575f80fd5b506101df6106da565b6040516101ec9190611e15565b60405180910390f35b348015610200575f80fd5b5061021b60048036038101906102169190611e5c565b6106ff565b6040516102289190611dbd565b60405180910390f35b34801561023c575f80fd5b5061025760048036038101906102529190611e5c565b610745565b6040516102649190611dbd565b60405180910390f35b348015610278575f80fd5b50610293600480360381019061028e9190611eb1565b61081a565b005b3480156102a0575f80fd5b506102a9610b20565b6040516102b69190611dbd565b60405180910390f35b3480156102ca575f80fd5b506102d3610b29565b005b3480156102e0575f80fd5b506102fb60048036038101906102f69190611e5c565b610b46565b6040516103089190611dbd565b60405180910390f35b34801561031c575f80fd5b50610325610b8c565b005b348015610332575f80fd5b5061033b610b98565b005b348015610348575f80fd5b50610351610bab565b60405161035e9190611dbd565b60405180910390f35b348015610372575f80fd5b5061037b610bb4565b6040516103889190611f37565b60405180910390f35b34801561039c575f80fd5b506103a5610bd8565b005b3480156103b2575f80fd5b506103bb610f44565b6040516103c89190611dbd565b60405180910390f35b3480156103dc575f80fd5b506103e5610f4a565b6040516103f29190611e15565b60405180910390f35b348015610406575f80fd5b50610421600480360381019061041c9190611e5c565b610f71565b60405161042e9190611dbd565b60405180910390f35b348015610442575f80fd5b5061045d60048036038101906104589190611eb1565b610f82565b005b34801561046a575f80fd5b5061048560048036038101906104809190611e5c565b61133f565b6040516104929190611dbd565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc9190611e5c565b61139f565b6040516104ce9190611dbd565b60405180910390f35b3480156104e2575f80fd5b506104fd60048036038101906104f89190611e5c565b6113b4565b60405161050a9190611dbd565b60405180910390f35b34801561051e575f80fd5b5061053960048036038101906105349190611e5c565b6113fa565b6040516105469190611dbd565b60405180910390f35b34801561055a575f80fd5b5061056361140f565b6040516105709190611dbd565b60405180910390f35b348015610584575f80fd5b5061059f600480360381019061059a9190611e5c565b611415565b005b3480156105ac575f80fd5b506105c760048036038101906105c29190611f8b565b611497565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190611e5c565b61158f565b6040516105ff9493929190611fc9565b60405180910390f35b5f60065411801561061857505f34115b156106d257610662600654610647700100000000000000000000000000000000346115f390919063ffffffff16565b6106519190612066565b60025461160890919063ffffffff16565b6002819055503373ffffffffffffffffffffffffffffffffffffffff167fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d78454116511346040516106ae9190611dbd565b60405180910390a26106cb3460075461160890919063ffffffff16565b6007819055505b565b600a5481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f70010000000000000000000000000000000061080961080460035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546107f66107f160055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546002546115f390919063ffffffff16565b61161d565b61163790919063ffffffff16565b61167e565b6108139190612066565b9050919050565b610822611693565b5f8111610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90612116565b60405180910390fd5b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050808211156108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df9061217e565b60405180910390fd5b4260095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f906121e6565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633856040518463ffffffff1660e01b81526004016109e693929190612204565b6020604051808303815f875af1158015610a02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a26919061226e565b50610a3c338383610a379190612299565b6116e2565b5f811115610a9857600a5442610a5291906122cc565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610adb565b5f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b7f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f753383604051610b0c9291906122ff565b60405180910390a150610b1d6116fc565b50565b5f600754905090565b610b31611693565b610b3b335f611705565b50610b446116fc565b565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b9533611780565b50565b610ba0611990565b610ba95f611a0e565b565b5f600654905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b610be0611693565b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a90612370565b60405180910390fd5b4260095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda906123d8565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d3e9291906122ff565b6020604051808303815f875af1158015610d5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7e919061226e565b610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612440565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b8152600401610e3b93929190612204565b6020604051808303815f875af1158015610e57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7b919061226e565b505f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f753382604051610f319291906122ff565b60405180910390a150610f426116fc565b565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f610f7b8261133f565b9050919050565b610f8a611693565b5f8111610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc3906124ce565b60405180910390fd5b5f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20540361106057600a544261101e91906122cc565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a0823160085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161111d9190611e15565b602060405180830381865afa158015611138573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115c9190612500565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd3360085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518463ffffffff1660e01b81526004016111dc93929190612204565b6020604051808303815f875af11580156111f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121c919061226e565b50807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a0823160085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016112989190611e15565b602060405180830381865afa1580156112b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d79190612500565b6112e19190612299565b91506112f83383856112f391906122cc565b6116e2565b7f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d33856040516113299291906122ff565b60405180910390a150505061133c6116fc565b50565b5f61139860045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461138a84610745565b611acf90919063ffffffff16565b9050919050565b6009602052805f5260405f205f915090505481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6005602052805f5260405f205f915090505481565b60065481565b61141d611990565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361148b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114829061259b565b60405180910390fd5b61149481611a0e565b50565b61149f611990565b804710156114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990612603565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516115079061264e565b5f6040518083038185875af1925050503d805f8114611541576040519150601f19603f3d011682016040523d82523d5f602084013e611546565b606091505b505090508061158a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611581906126ac565b60405180910390fd5b505050565b5f805f8084935061159f8461133f565b92506115aa84610745565b915060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490509193509193565b5f818361160091906126ca565b905092915050565b5f818361161591906122cc565b905092915050565b5f808290505f81121561162e575f80fd5b80915050919050565b5f8082846116459190612714565b90505f83121580156116575750838112155b8061166c57505f8312801561166b57508381125b5b611674575f80fd5b8091505092915050565b5f8082121561168b575f80fd5b819050919050565b6002600154036116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf9061279f565b60405180910390fd5b6002600181905550565b6116ec8282611ae4565b6116f7826001611705565b505050565b60018081905550565b5f8061171084611780565b90505f811115611775578215158473ffffffffffffffffffffffffffffffffffffffff167fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf092836040516117639190611dbd565b60405180910390a3600191505061177a565b5f9150505b92915050565b5f8061178b8361133f565b90505f811115611986576117e58160045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461160890919063ffffffff16565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff167fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d8260405161186c9190611dbd565b60405180910390a25f8373ffffffffffffffffffffffffffffffffffffffff16826040516118999061264e565b5f6040518083038185875af1925050503d805f81146118d3576040519150601f19603f3d011682016040523d82523d5f602084013e6118d8565b606091505b505090508061197c576119318260045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611acf90919063ffffffff16565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f9250505061198b565b819250505061198b565b5f9150505b919050565b611998611bf5565b73ffffffffffffffffffffffffffffffffffffffff166119b6610f4a565b73ffffffffffffffffffffffffffffffffffffffff1614611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390612807565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611adc9190612299565b905092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080821115611bad575f611b838284611acf90919063ffffffff16565b9050611b8f8482611bfc565b8060065f828254611ba091906122cc565b9250508190555050611bf0565b80821015611bef575f611bc98383611acf90919063ffffffff16565b9050611bd58482611cad565b8060065f828254611be69190612299565b92505081905550505b5b505050565b5f33905090565b611c68611c1c611c17836002546115f390919063ffffffff16565b61161d565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5e90919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b611d19611ccd611cc8836002546115f390919063ffffffff16565b61161d565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461163790919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f808284611d6c9190612825565b90505f8312158015611d7e5750838113155b80611d9357505f83128015611d9257508381135b5b611d9b575f80fd5b8091505092915050565b5f819050919050565b611db781611da5565b82525050565b5f602082019050611dd05f830184611dae565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dff82611dd6565b9050919050565b611e0f81611df5565b82525050565b5f602082019050611e285f830184611e06565b92915050565b5f80fd5b611e3b81611df5565b8114611e45575f80fd5b50565b5f81359050611e5681611e32565b92915050565b5f60208284031215611e7157611e70611e2e565b5b5f611e7e84828501611e48565b91505092915050565b611e9081611da5565b8114611e9a575f80fd5b50565b5f81359050611eab81611e87565b92915050565b5f60208284031215611ec657611ec5611e2e565b5b5f611ed384828501611e9d565b91505092915050565b5f819050919050565b5f611eff611efa611ef584611dd6565b611edc565b611dd6565b9050919050565b5f611f1082611ee5565b9050919050565b5f611f2182611f06565b9050919050565b611f3181611f17565b82525050565b5f602082019050611f4a5f830184611f28565b92915050565b5f611f5a82611dd6565b9050919050565b611f6a81611f50565b8114611f74575f80fd5b50565b5f81359050611f8581611f61565b92915050565b5f8060408385031215611fa157611fa0611e2e565b5b5f611fae85828601611f77565b9250506020611fbf85828601611e9d565b9150509250929050565b5f608082019050611fdc5f830187611e06565b611fe96020830186611dae565b611ff66040830185611dae565b6120036060830184611dae565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61207082611da5565b915061207b83611da5565b92508261208b5761208a61200c565b5b828204905092915050565b5f82825260208201905092915050565b7f556e7374616b6520616d6f756e74206d757374206265206772656174657220745f8201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b5f612100602883612096565b915061210b826120a6565b604082019050919050565b5f6020820190508181035f83015261212d816120f4565b9050919050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f612168601183612096565b915061217382612134565b602082019050919050565b5f6020820190508181035f8301526121958161215c565b9050919050565b7f4d6179206e6f74207769746864726177206561726c79000000000000000000005f82015250565b5f6121d0601683612096565b91506121db8261219c565b602082019050919050565b5f6020820190508181035f8301526121fd816121c4565b9050919050565b5f6060820190506122175f830186611e06565b6122246020830185611e06565b6122316040830184611dae565b949350505050565b5f8115159050919050565b61224d81612239565b8114612257575f80fd5b50565b5f8151905061226881612244565b92915050565b5f6020828403121561228357612282611e2e565b5b5f6122908482850161225a565b91505092915050565b5f6122a382611da5565b91506122ae83611da5565b92508282039050818111156122c6576122c5612039565b5b92915050565b5f6122d682611da5565b91506122e183611da5565b92508282019050808211156122f9576122f8612039565b5b92915050565b5f6040820190506123125f830185611e06565b61231f6020830184611dae565b9392505050565b7f4e6f20746f6b656e7320746f20776974686472617700000000000000000000005f82015250565b5f61235a601583612096565b915061236582612326565b602082019050919050565b5f6020820190508181035f8301526123878161234e565b9050919050565b7f5769746864726177616c206c6f636b65640000000000000000000000000000005f82015250565b5f6123c2601183612096565b91506123cd8261238e565b602082019050919050565b5f6020820190508181035f8301526123ef816123b6565b9050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f61242a600f83612096565b9150612435826123f6565b602082019050919050565b5f6020820190508181035f8301526124578161241e565b9050919050565b7f5374616b6520616d6f756e74206d7573742062652067726561746572207468615f8201527f6e207a65726f0000000000000000000000000000000000000000000000000000602082015250565b5f6124b8602683612096565b91506124c38261245e565b604082019050919050565b5f6020820190508181035f8301526124e5816124ac565b9050919050565b5f815190506124fa81611e87565b92915050565b5f6020828403121561251557612514611e2e565b5b5f612522848285016124ec565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612585602683612096565b91506125908261252b565b604082019050919050565b5f6020820190508181035f8301526125b281612579565b9050919050565b7f496e73756666696369656e742062616c616e636520696e20636f6e74726163745f82015250565b5f6125ed602083612096565b91506125f8826125b9565b602082019050919050565b5f6020820190508181035f83015261261a816125e1565b9050919050565b5f81905092915050565b50565b5f6126395f83612621565b91506126448261262b565b5f82019050919050565b5f6126588261262e565b9150819050919050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f612696601083612096565b91506126a182612662565b602082019050919050565b5f6020820190508181035f8301526126c38161268a565b9050919050565b5f6126d482611da5565b91506126df83611da5565b92508282026126ed81611da5565b9150828204841483151761270457612703612039565b5b5092915050565b5f819050919050565b5f61271e8261270b565b91506127298361270b565b92508282019050828112155f8312168382125f84121516171561274f5761274e612039565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612789601f83612096565b915061279482612755565b602082019050919050565b5f6020820190508181035f8301526127b68161277d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127f1602083612096565b91506127fc826127bd565b602082019050919050565b5f6020820190508181035f83015261281e816127e5565b9050919050565b5f61282f8261270b565b915061283a8361270b565b925082820390508181125f8412168282135f85121516171561285f5761285e612039565b5b9291505056fea26469706673582212204e76196fad35ae8012c1d5d50df455d88b3ccdea441556121819eff84fb171dc64736f6c63430008160033000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a08a8b6623b7823d9c6d6c19b4870df51be40ddb
Deployed Bytecode
0x608060405260043610610184575f3560e01c8063853828b6116100d0578063a913a5f711610089578063ad7a672f11610063578063ad7a672f1461054f578063f2fde38b14610579578063f3fef3a3146105a1578063fbcbc0f1146105c957610193565b8063a913a5f71461049b578063aafd847a146104d7578063ab6ddfa81461051357610193565b8063853828b61461039157806385a6b3ae146103a75780638da5cb5b146103d157806391b89fba146103fb578063a694fc3a14610437578063a8b9d2401461045f57610193565b806330bb4cff1161013d5780636a474002116101175780636a47400214610311578063715018a61461032757806371778e7d1461033d57806380ca85601461036757610193565b806330bb4cff146102955780634e71d92d146102bf5780636843cd84146102d557610193565b806303c833021461019757806304554443146101a157806306ee6ad8146101cb578063264b2b8e146101f557806327ce0147146102315780632e17de781461026d57610193565b3661019357610191610608565b005b5f80fd5b61019f610608565b005b3480156101ac575f80fd5b506101b56106d4565b6040516101c29190611dbd565b60405180910390f35b3480156101d6575f80fd5b506101df6106da565b6040516101ec9190611e15565b60405180910390f35b348015610200575f80fd5b5061021b60048036038101906102169190611e5c565b6106ff565b6040516102289190611dbd565b60405180910390f35b34801561023c575f80fd5b5061025760048036038101906102529190611e5c565b610745565b6040516102649190611dbd565b60405180910390f35b348015610278575f80fd5b50610293600480360381019061028e9190611eb1565b61081a565b005b3480156102a0575f80fd5b506102a9610b20565b6040516102b69190611dbd565b60405180910390f35b3480156102ca575f80fd5b506102d3610b29565b005b3480156102e0575f80fd5b506102fb60048036038101906102f69190611e5c565b610b46565b6040516103089190611dbd565b60405180910390f35b34801561031c575f80fd5b50610325610b8c565b005b348015610332575f80fd5b5061033b610b98565b005b348015610348575f80fd5b50610351610bab565b60405161035e9190611dbd565b60405180910390f35b348015610372575f80fd5b5061037b610bb4565b6040516103889190611f37565b60405180910390f35b34801561039c575f80fd5b506103a5610bd8565b005b3480156103b2575f80fd5b506103bb610f44565b6040516103c89190611dbd565b60405180910390f35b3480156103dc575f80fd5b506103e5610f4a565b6040516103f29190611e15565b60405180910390f35b348015610406575f80fd5b50610421600480360381019061041c9190611e5c565b610f71565b60405161042e9190611dbd565b60405180910390f35b348015610442575f80fd5b5061045d60048036038101906104589190611eb1565b610f82565b005b34801561046a575f80fd5b5061048560048036038101906104809190611e5c565b61133f565b6040516104929190611dbd565b60405180910390f35b3480156104a6575f80fd5b506104c160048036038101906104bc9190611e5c565b61139f565b6040516104ce9190611dbd565b60405180910390f35b3480156104e2575f80fd5b506104fd60048036038101906104f89190611e5c565b6113b4565b60405161050a9190611dbd565b60405180910390f35b34801561051e575f80fd5b5061053960048036038101906105349190611e5c565b6113fa565b6040516105469190611dbd565b60405180910390f35b34801561055a575f80fd5b5061056361140f565b6040516105709190611dbd565b60405180910390f35b348015610584575f80fd5b5061059f600480360381019061059a9190611e5c565b611415565b005b3480156105ac575f80fd5b506105c760048036038101906105c29190611f8b565b611497565b005b3480156105d4575f80fd5b506105ef60048036038101906105ea9190611e5c565b61158f565b6040516105ff9493929190611fc9565b60405180910390f35b5f60065411801561061857505f34115b156106d257610662600654610647700100000000000000000000000000000000346115f390919063ffffffff16565b6106519190612066565b60025461160890919063ffffffff16565b6002819055503373ffffffffffffffffffffffffffffffffffffffff167fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d78454116511346040516106ae9190611dbd565b60405180910390a26106cb3460075461160890919063ffffffff16565b6007819055505b565b600a5481565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f70010000000000000000000000000000000061080961080460035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546107f66107f160055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546002546115f390919063ffffffff16565b61161d565b61163790919063ffffffff16565b61167e565b6108139190612066565b9050919050565b610822611693565b5f8111610864576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085b90612116565b60405180910390fd5b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050808211156108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df9061217e565b60405180910390fd5b4260095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f906121e6565b60405180910390fd5b7f000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b73ffffffffffffffffffffffffffffffffffffffff166323b872dd60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633856040518463ffffffff1660e01b81526004016109e693929190612204565b6020604051808303815f875af1158015610a02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a26919061226e565b50610a3c338383610a379190612299565b6116e2565b5f811115610a9857600a5442610a5291906122cc565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610adb565b5f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b7f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f753383604051610b0c9291906122ff565b60405180910390a150610b1d6116fc565b50565b5f600754905090565b610b31611693565b610b3b335f611705565b50610b446116fc565b565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b9533611780565b50565b610ba0611990565b610ba95f611a0e565b565b5f600654905090565b7f000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b81565b610be0611693565b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8111610c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5a90612370565b60405180910390fd5b4260095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541115610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda906123d8565b60405180910390fd5b7f000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610d3e9291906122ff565b6020604051808303815f875af1158015610d5a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7e919061226e565b610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612440565b60405180910390fd5b7f000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b73ffffffffffffffffffffffffffffffffffffffff166323b872dd60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633846040518463ffffffff1660e01b8152600401610e3b93929190612204565b6020604051808303815f875af1158015610e57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7b919061226e565b505f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055507f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f753382604051610f319291906122ff565b60405180910390a150610f426116fc565b565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f610f7b8261133f565b9050919050565b610f8a611693565b5f8111610fcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc3906124ce565b60405180910390fd5b5f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20540361106057600a544261101e91906122cc565b60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f60055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f807f000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b73ffffffffffffffffffffffffffffffffffffffff166370a0823160085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161111d9190611e15565b602060405180830381865afa158015611138573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061115c9190612500565b90507f000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b73ffffffffffffffffffffffffffffffffffffffff166323b872dd3360085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518463ffffffff1660e01b81526004016111dc93929190612204565b6020604051808303815f875af11580156111f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061121c919061226e565b50807f000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b73ffffffffffffffffffffffffffffffffffffffff166370a0823160085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016112989190611e15565b602060405180830381865afa1580156112b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d79190612500565b6112e19190612299565b91506112f83383856112f391906122cc565b6116e2565b7f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d33856040516113299291906122ff565b60405180910390a150505061133c6116fc565b50565b5f61139860045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461138a84610745565b611acf90919063ffffffff16565b9050919050565b6009602052805f5260405f205f915090505481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6005602052805f5260405f205f915090505481565b60065481565b61141d611990565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361148b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114829061259b565b60405180910390fd5b61149481611a0e565b50565b61149f611990565b804710156114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990612603565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516115079061264e565b5f6040518083038185875af1925050503d805f8114611541576040519150601f19603f3d011682016040523d82523d5f602084013e611546565b606091505b505090508061158a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611581906126ac565b60405180910390fd5b505050565b5f805f8084935061159f8461133f565b92506115aa84610745565b915060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490509193509193565b5f818361160091906126ca565b905092915050565b5f818361161591906122cc565b905092915050565b5f808290505f81121561162e575f80fd5b80915050919050565b5f8082846116459190612714565b90505f83121580156116575750838112155b8061166c57505f8312801561166b57508381125b5b611674575f80fd5b8091505092915050565b5f8082121561168b575f80fd5b819050919050565b6002600154036116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf9061279f565b60405180910390fd5b6002600181905550565b6116ec8282611ae4565b6116f7826001611705565b505050565b60018081905550565b5f8061171084611780565b90505f811115611775578215158473ffffffffffffffffffffffffffffffffffffffff167fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf092836040516117639190611dbd565b60405180910390a3600191505061177a565b5f9150505b92915050565b5f8061178b8361133f565b90505f811115611986576117e58160045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461160890919063ffffffff16565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff167fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d8260405161186c9190611dbd565b60405180910390a25f8373ffffffffffffffffffffffffffffffffffffffff16826040516118999061264e565b5f6040518083038185875af1925050503d805f81146118d3576040519150601f19603f3d011682016040523d82523d5f602084013e6118d8565b606091505b505090508061197c576119318260045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611acf90919063ffffffff16565b60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f9250505061198b565b819250505061198b565b5f9150505b919050565b611998611bf5565b73ffffffffffffffffffffffffffffffffffffffff166119b6610f4a565b73ffffffffffffffffffffffffffffffffffffffff1614611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0390612807565b60405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f8183611adc9190612299565b905092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508160055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080821115611bad575f611b838284611acf90919063ffffffff16565b9050611b8f8482611bfc565b8060065f828254611ba091906122cc565b9250508190555050611bf0565b80821015611bef575f611bc98383611acf90919063ffffffff16565b9050611bd58482611cad565b8060065f828254611be69190612299565b92505081905550505b5b505050565b5f33905090565b611c68611c1c611c17836002546115f390919063ffffffff16565b61161d565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d5e90919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b611d19611ccd611cc8836002546115f390919063ffffffff16565b61161d565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461163790919063ffffffff16565b60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f808284611d6c9190612825565b90505f8312158015611d7e5750838113155b80611d9357505f83128015611d9257508381135b5b611d9b575f80fd5b8091505092915050565b5f819050919050565b611db781611da5565b82525050565b5f602082019050611dd05f830184611dae565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611dff82611dd6565b9050919050565b611e0f81611df5565b82525050565b5f602082019050611e285f830184611e06565b92915050565b5f80fd5b611e3b81611df5565b8114611e45575f80fd5b50565b5f81359050611e5681611e32565b92915050565b5f60208284031215611e7157611e70611e2e565b5b5f611e7e84828501611e48565b91505092915050565b611e9081611da5565b8114611e9a575f80fd5b50565b5f81359050611eab81611e87565b92915050565b5f60208284031215611ec657611ec5611e2e565b5b5f611ed384828501611e9d565b91505092915050565b5f819050919050565b5f611eff611efa611ef584611dd6565b611edc565b611dd6565b9050919050565b5f611f1082611ee5565b9050919050565b5f611f2182611f06565b9050919050565b611f3181611f17565b82525050565b5f602082019050611f4a5f830184611f28565b92915050565b5f611f5a82611dd6565b9050919050565b611f6a81611f50565b8114611f74575f80fd5b50565b5f81359050611f8581611f61565b92915050565b5f8060408385031215611fa157611fa0611e2e565b5b5f611fae85828601611f77565b9250506020611fbf85828601611e9d565b9150509250929050565b5f608082019050611fdc5f830187611e06565b611fe96020830186611dae565b611ff66040830185611dae565b6120036060830184611dae565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61207082611da5565b915061207b83611da5565b92508261208b5761208a61200c565b5b828204905092915050565b5f82825260208201905092915050565b7f556e7374616b6520616d6f756e74206d757374206265206772656174657220745f8201527f68616e207a65726f000000000000000000000000000000000000000000000000602082015250565b5f612100602883612096565b915061210b826120a6565b604082019050919050565b5f6020820190508181035f83015261212d816120f4565b9050919050565b7f4e6f7420656e6f75676820746f6b656e730000000000000000000000000000005f82015250565b5f612168601183612096565b915061217382612134565b602082019050919050565b5f6020820190508181035f8301526121958161215c565b9050919050565b7f4d6179206e6f74207769746864726177206561726c79000000000000000000005f82015250565b5f6121d0601683612096565b91506121db8261219c565b602082019050919050565b5f6020820190508181035f8301526121fd816121c4565b9050919050565b5f6060820190506122175f830186611e06565b6122246020830185611e06565b6122316040830184611dae565b949350505050565b5f8115159050919050565b61224d81612239565b8114612257575f80fd5b50565b5f8151905061226881612244565b92915050565b5f6020828403121561228357612282611e2e565b5b5f6122908482850161225a565b91505092915050565b5f6122a382611da5565b91506122ae83611da5565b92508282039050818111156122c6576122c5612039565b5b92915050565b5f6122d682611da5565b91506122e183611da5565b92508282019050808211156122f9576122f8612039565b5b92915050565b5f6040820190506123125f830185611e06565b61231f6020830184611dae565b9392505050565b7f4e6f20746f6b656e7320746f20776974686472617700000000000000000000005f82015250565b5f61235a601583612096565b915061236582612326565b602082019050919050565b5f6020820190508181035f8301526123878161234e565b9050919050565b7f5769746864726177616c206c6f636b65640000000000000000000000000000005f82015250565b5f6123c2601183612096565b91506123cd8261238e565b602082019050919050565b5f6020820190508181035f8301526123ef816123b6565b9050919050565b7f5472616e73666572206661696c656400000000000000000000000000000000005f82015250565b5f61242a600f83612096565b9150612435826123f6565b602082019050919050565b5f6020820190508181035f8301526124578161241e565b9050919050565b7f5374616b6520616d6f756e74206d7573742062652067726561746572207468615f8201527f6e207a65726f0000000000000000000000000000000000000000000000000000602082015250565b5f6124b8602683612096565b91506124c38261245e565b604082019050919050565b5f6020820190508181035f8301526124e5816124ac565b9050919050565b5f815190506124fa81611e87565b92915050565b5f6020828403121561251557612514611e2e565b5b5f612522848285016124ec565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612585602683612096565b91506125908261252b565b604082019050919050565b5f6020820190508181035f8301526125b281612579565b9050919050565b7f496e73756666696369656e742062616c616e636520696e20636f6e74726163745f82015250565b5f6125ed602083612096565b91506125f8826125b9565b602082019050919050565b5f6020820190508181035f83015261261a816125e1565b9050919050565b5f81905092915050565b50565b5f6126395f83612621565b91506126448261262b565b5f82019050919050565b5f6126588261262e565b9150819050919050565b7f5472616e73666572206661696c65642e000000000000000000000000000000005f82015250565b5f612696601083612096565b91506126a182612662565b602082019050919050565b5f6020820190508181035f8301526126c38161268a565b9050919050565b5f6126d482611da5565b91506126df83611da5565b92508282026126ed81611da5565b9150828204841483151761270457612703612039565b5b5092915050565b5f819050919050565b5f61271e8261270b565b91506127298361270b565b92508282019050828112155f8312168382125f84121516171561274f5761274e612039565b5b92915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f612789601f83612096565b915061279482612755565b602082019050919050565b5f6020820190508181035f8301526127b68161277d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127f1602083612096565b91506127fc826127bd565b602082019050919050565b5f6020820190508181035f83015261281e816127e5565b9050919050565b5f61282f8261270b565b915061283a8361270b565b925082820390508181125f8412168282135f85121516171561285f5761285e612039565b5b9291505056fea26469706673582212204e76196fad35ae8012c1d5d50df455d88b3ccdea441556121819eff84fb171dc64736f6c63430008160033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000a08a8b6623b7823d9c6d6c19b4870df51be40ddb
-----Decoded View---------------
Arg [0] : _caesar (address): 0x343Cf59a43BD7DDD38B7236a478139A86a26222b
Arg [1] : _lockPeriodWeeks (uint256): 1
Arg [2] : _stakingWallet (address): 0xA08a8b6623B7823d9C6D6c19b4870dF51BE40dDb
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000343cf59a43bd7ddd38b7236a478139a86a26222b
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 000000000000000000000000a08a8b6623b7823d9c6d6c19b4870df51be40ddb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.