More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
5 addresses found via
Latest 25 from a total of 44,095 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Claim | 18754923 | 11 hrs 46 mins ago | IN | 0 ETH | 0.00221609 | ||||
Claim | 18754918 | 11 hrs 47 mins ago | IN | 0 ETH | 0.00225963 | ||||
Withdraw | 18745628 | 1 day 19 hrs ago | IN | 0 ETH | 0.00375831 | ||||
Withdraw | 18739519 | 2 days 15 hrs ago | IN | 0 ETH | 0.00431583 | ||||
Withdraw All | 18737900 | 2 days 21 hrs ago | IN | 0 ETH | 0.00472504 | ||||
Withdraw All | 18737217 | 2 days 23 hrs ago | IN | 0 ETH | 0.00523246 | ||||
Withdraw | 18734956 | 3 days 6 hrs ago | IN | 0 ETH | 0.00551124 | ||||
Claim | 18734863 | 3 days 7 hrs ago | IN | 0 ETH | 0.00454764 | ||||
Withdraw | 18725101 | 4 days 16 hrs ago | IN | 0 ETH | 0.00756017 | ||||
Claim | 18723237 | 4 days 22 hrs ago | IN | 0 ETH | 0.00570903 | ||||
Deposit | 18722888 | 4 days 23 hrs ago | IN | 0 ETH | 0.00738366 | ||||
Deposit | 18722875 | 4 days 23 hrs ago | IN | 0 ETH | 0.00770389 | ||||
Withdraw | 18705231 | 7 days 10 hrs ago | IN | 0 ETH | 0.00315282 | ||||
Deposit | 18699562 | 8 days 5 hrs ago | IN | 0 ETH | 0.00467635 | ||||
Claim | 18699029 | 8 days 7 hrs ago | IN | 0 ETH | 0.00308571 | ||||
Withdraw | 18691373 | 9 days 9 hrs ago | IN | 0 ETH | 0.00355978 | ||||
Withdraw | 18691327 | 9 days 9 hrs ago | IN | 0 ETH | 0.00359306 | ||||
Claim | 18691262 | 9 days 9 hrs ago | IN | 0 ETH | 0.00279809 | ||||
Claim | 18691259 | 9 days 9 hrs ago | IN | 0 ETH | 0.00358509 | ||||
Deposit | 18690880 | 9 days 11 hrs ago | IN | 0 ETH | 0.00448693 | ||||
Deposit | 18690562 | 9 days 12 hrs ago | IN | 0 ETH | 0.00367722 | ||||
Deposit | 18684406 | 10 days 8 hrs ago | IN | 0 ETH | 0.00617902 | ||||
Deposit | 18681037 | 10 days 20 hrs ago | IN | 0 ETH | 0.00403581 | ||||
Claim | 18680552 | 10 days 21 hrs ago | IN | 0 ETH | 0.00343796 | ||||
Claim | 18680548 | 10 days 21 hrs ago | IN | 0 ETH | 0.00418257 |
Latest 1 internal transaction
Advanced mode:
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
10970196 | 1165 days 8 hrs ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
DODOMine
Compiler Version
v0.6.9+commit.3e3065ac
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-01 */ // File: contracts/lib/Ownable.sol /* Copyright 2020 DODO ZOO. SPDX-License-Identifier: Apache-2.0 */ pragma solidity 0.6.9; pragma experimental ABIEncoderV2; /** * @title Ownable * @author DODO Breeder * * @notice Ownership related functions */ contract Ownable { address public _OWNER_; address public _NEW_OWNER_; // ============ Events ============ event OwnershipTransferPrepared(address indexed previousOwner, address indexed newOwner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // ============ Modifiers ============ modifier onlyOwner() { require(msg.sender == _OWNER_, "NOT_OWNER"); _; } // ============ Functions ============ constructor() internal { _OWNER_ = msg.sender; emit OwnershipTransferred(address(0), _OWNER_); } function transferOwnership(address newOwner) external onlyOwner { require(newOwner != address(0), "INVALID_OWNER"); emit OwnershipTransferPrepared(_OWNER_, newOwner); _NEW_OWNER_ = newOwner; } function claimOwnership() external { require(msg.sender == _NEW_OWNER_, "INVALID_CLAIM"); emit OwnershipTransferred(_OWNER_, _NEW_OWNER_); _OWNER_ = _NEW_OWNER_; _NEW_OWNER_ = address(0); } } // File: contracts/lib/SafeMath.sol /* Copyright 2020 DODO ZOO. */ /** * @title SafeMath * @author DODO Breeder * * @notice Math operations with safety checks that revert on error */ library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "MUL_ERROR"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "DIVIDING_ERROR"); return a / b; } function divCeil(uint256 a, uint256 b) internal pure returns (uint256) { uint256 quotient = div(a, b); uint256 remainder = a - quotient * b; if (remainder > 0) { return quotient + 1; } else { return quotient; } } function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SUB_ERROR"); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "ADD_ERROR"); return c; } function sqrt(uint256 x) internal pure returns (uint256 y) { uint256 z = x / 2 + 1; y = x; while (z < y) { y = z; z = (x / z + z) / 2; } } } // File: contracts/lib/DecimalMath.sol /* Copyright 2020 DODO ZOO. */ /** * @title DecimalMath * @author DODO Breeder * * @notice Functions for fixed point number with 18 decimals */ library DecimalMath { using SafeMath for uint256; uint256 constant ONE = 10**18; function mul(uint256 target, uint256 d) internal pure returns (uint256) { return target.mul(d) / ONE; } function mulCeil(uint256 target, uint256 d) internal pure returns (uint256) { return target.mul(d).divCeil(ONE); } function divFloor(uint256 target, uint256 d) internal pure returns (uint256) { return target.mul(ONE).div(d); } function divCeil(uint256 target, uint256 d) internal pure returns (uint256) { return target.mul(ONE).divCeil(d); } } // File: contracts/intf/IERC20.sol // This is a file copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function name() external view returns (string memory); /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount ) external returns (bool); } // File: contracts/lib/SafeERC20.sol /* Copyright 2020 DODO ZOO. This is a simplified version of OpenZepplin's SafeERC20 library */ /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn( token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value) ); } function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. // A Solidity high level call has three parts: // 1. The target address is checked to verify it contains contract code // 2. The call itself is made, and success asserted // 3. The return value is decoded, which in turn checks the size of the returned data. // solhint-disable-next-line max-line-length // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = address(token).call(data); require(success, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } // File: contracts/token/DODORewardVault.sol /* Copyright 2020 DODO ZOO. */ interface IDODORewardVault { function reward(address to, uint256 amount) external; } contract DODORewardVault is Ownable { using SafeERC20 for IERC20; address public dodoToken; constructor(address _dodoToken) public { dodoToken = _dodoToken; } function reward(address to, uint256 amount) external onlyOwner { IERC20(dodoToken).safeTransfer(to, amount); } } // File: contracts/token/DODOMine.sol /* Copyright 2020 DODO ZOO. */ contract DODOMine is Ownable { using SafeMath for uint256; using SafeERC20 for IERC20; // Info of each user. struct UserInfo { uint256 amount; // How many LP tokens the user has provided. uint256 rewardDebt; // Reward debt. See explanation below. // // We do some fancy math here. Basically, any point in time, the amount of DODOs // entitled to a user but is pending to be distributed is: // // pending reward = (user.amount * pool.accDODOPerShare) - user.rewardDebt // // Whenever a user deposits or withdraws LP tokens to a pool. Here's what happens: // 1. The pool's `accDODOPerShare` (and `lastRewardBlock`) gets updated. // 2. User receives the pending reward sent to his/her address. // 3. User's `amount` gets updated. // 4. User's `rewardDebt` gets updated. } // Info of each pool. struct PoolInfo { address lpToken; // Address of LP token contract. uint256 allocPoint; // How many allocation points assigned to this pool. DODOs to distribute per block. uint256 lastRewardBlock; // Last block number that DODOs distribution occurs. uint256 accDODOPerShare; // Accumulated DODOs per share, times 1e12. See below. } address public dodoRewardVault; uint256 public dodoPerBlock; // Info of each pool. PoolInfo[] public poolInfos; mapping(address => uint256) public lpTokenRegistry; // Info of each user that stakes LP tokens. mapping(uint256 => mapping(address => UserInfo)) public userInfo; mapping(address => uint256) public realizedReward; // Total allocation points. Must be the sum of all allocation points in all pools. uint256 public totalAllocPoint = 0; // The block number when DODO mining starts. uint256 public startBlock; event Deposit(address indexed user, uint256 indexed pid, uint256 amount); event Withdraw(address indexed user, uint256 indexed pid, uint256 amount); event Claim(address indexed user, uint256 amount); constructor(address _dodoToken, uint256 _startBlock) public { dodoRewardVault = address(new DODORewardVault(_dodoToken)); startBlock = _startBlock; } // ============ Modifiers ============ modifier lpTokenExist(address lpToken) { require(lpTokenRegistry[lpToken] > 0, "LP Token Not Exist"); _; } modifier lpTokenNotExist(address lpToken) { require(lpTokenRegistry[lpToken] == 0, "LP Token Already Exist"); _; } // ============ Helper ============ function poolLength() external view returns (uint256) { return poolInfos.length; } function getPid(address _lpToken) public view lpTokenExist(_lpToken) returns (uint256) { return lpTokenRegistry[_lpToken] - 1; } function getUserLpBalance(address _lpToken, address _user) public view returns (uint256) { uint256 pid = getPid(_lpToken); return userInfo[pid][_user].amount; } // ============ Ownable ============ function addLpToken( address _lpToken, uint256 _allocPoint, bool _withUpdate ) public lpTokenNotExist(_lpToken) onlyOwner { if (_withUpdate) { massUpdatePools(); } uint256 lastRewardBlock = block.number > startBlock ? block.number : startBlock; totalAllocPoint = totalAllocPoint.add(_allocPoint); poolInfos.push( PoolInfo({ lpToken: _lpToken, allocPoint: _allocPoint, lastRewardBlock: lastRewardBlock, accDODOPerShare: 0 }) ); lpTokenRegistry[_lpToken] = poolInfos.length; } function setLpToken( address _lpToken, uint256 _allocPoint, bool _withUpdate ) public onlyOwner { if (_withUpdate) { massUpdatePools(); } uint256 pid = getPid(_lpToken); totalAllocPoint = totalAllocPoint.sub(poolInfos[pid].allocPoint).add(_allocPoint); poolInfos[pid].allocPoint = _allocPoint; } function setReward(uint256 _dodoPerBlock, bool _withUpdate) external onlyOwner { if (_withUpdate) { massUpdatePools(); } dodoPerBlock = _dodoPerBlock; } // ============ View Rewards ============ function getPendingReward(address _lpToken, address _user) external view returns (uint256) { uint256 pid = getPid(_lpToken); PoolInfo storage pool = poolInfos[pid]; UserInfo storage user = userInfo[pid][_user]; uint256 accDODOPerShare = pool.accDODOPerShare; uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this)); if (block.number > pool.lastRewardBlock && lpSupply != 0) { uint256 DODOReward = block .number .sub(pool.lastRewardBlock) .mul(dodoPerBlock) .mul(pool.allocPoint) .div(totalAllocPoint); accDODOPerShare = accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply)); } return DecimalMath.mul(user.amount, accDODOPerShare).sub(user.rewardDebt); } function getAllPendingReward(address _user) external view returns (uint256) { uint256 length = poolInfos.length; uint256 totalReward = 0; for (uint256 pid = 0; pid < length; ++pid) { if (userInfo[pid][_user].amount == 0 || poolInfos[pid].allocPoint == 0) { continue; // save gas } PoolInfo storage pool = poolInfos[pid]; UserInfo storage user = userInfo[pid][_user]; uint256 accDODOPerShare = pool.accDODOPerShare; uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this)); if (block.number > pool.lastRewardBlock && lpSupply != 0) { uint256 DODOReward = block .number .sub(pool.lastRewardBlock) .mul(dodoPerBlock) .mul(pool.allocPoint) .div(totalAllocPoint); accDODOPerShare = accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply)); } totalReward = totalReward.add( DecimalMath.mul(user.amount, accDODOPerShare).sub(user.rewardDebt) ); } return totalReward; } function getRealizedReward(address _user) external view returns (uint256) { return realizedReward[_user]; } function getDlpMiningSpeed(address _lpToken) external view returns (uint256) { uint256 pid = getPid(_lpToken); PoolInfo storage pool = poolInfos[pid]; return dodoPerBlock.mul(pool.allocPoint).div(totalAllocPoint); } // ============ Update Pools ============ // Update reward vairables for all pools. Be careful of gas spending! function massUpdatePools() public { uint256 length = poolInfos.length; for (uint256 pid = 0; pid < length; ++pid) { updatePool(pid); } } // Update reward variables of the given pool to be up-to-date. function updatePool(uint256 _pid) public { PoolInfo storage pool = poolInfos[_pid]; if (block.number <= pool.lastRewardBlock) { return; } uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this)); if (lpSupply == 0) { pool.lastRewardBlock = block.number; return; } uint256 DODOReward = block .number .sub(pool.lastRewardBlock) .mul(dodoPerBlock) .mul(pool.allocPoint) .div(totalAllocPoint); pool.accDODOPerShare = pool.accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply)); pool.lastRewardBlock = block.number; } // ============ Deposit & Withdraw & Claim ============ // Deposit & withdraw will also trigger claim function deposit(address _lpToken, uint256 _amount) public { uint256 pid = getPid(_lpToken); PoolInfo storage pool = poolInfos[pid]; UserInfo storage user = userInfo[pid][msg.sender]; updatePool(pid); if (user.amount > 0) { uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub( user.rewardDebt ); safeDODOTransfer(msg.sender, pending); } IERC20(pool.lpToken).safeTransferFrom(address(msg.sender), address(this), _amount); user.amount = user.amount.add(_amount); user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare); emit Deposit(msg.sender, pid, _amount); } function withdraw(address _lpToken, uint256 _amount) public { uint256 pid = getPid(_lpToken); PoolInfo storage pool = poolInfos[pid]; UserInfo storage user = userInfo[pid][msg.sender]; require(user.amount >= _amount, "withdraw too much"); updatePool(pid); uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt); safeDODOTransfer(msg.sender, pending); user.amount = user.amount.sub(_amount); user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare); IERC20(pool.lpToken).safeTransfer(address(msg.sender), _amount); emit Withdraw(msg.sender, pid, _amount); } function withdrawAll(address _lpToken) public { uint256 balance = getUserLpBalance(_lpToken, msg.sender); withdraw(_lpToken, balance); } // Withdraw without caring about rewards. EMERGENCY ONLY. function emergencyWithdraw(address _lpToken) public { uint256 pid = getPid(_lpToken); PoolInfo storage pool = poolInfos[pid]; UserInfo storage user = userInfo[pid][msg.sender]; IERC20(pool.lpToken).safeTransfer(address(msg.sender), user.amount); user.amount = 0; user.rewardDebt = 0; } function claim(address _lpToken) public { uint256 pid = getPid(_lpToken); if (userInfo[pid][msg.sender].amount == 0 || poolInfos[pid].allocPoint == 0) { return; // save gas } PoolInfo storage pool = poolInfos[pid]; UserInfo storage user = userInfo[pid][msg.sender]; updatePool(pid); uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt); user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare); safeDODOTransfer(msg.sender, pending); } function claimAll() public { uint256 length = poolInfos.length; uint256 pending = 0; for (uint256 pid = 0; pid < length; ++pid) { if (userInfo[pid][msg.sender].amount == 0 || poolInfos[pid].allocPoint == 0) { continue; // save gas } PoolInfo storage pool = poolInfos[pid]; UserInfo storage user = userInfo[pid][msg.sender]; updatePool(pid); pending = pending.add( DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt) ); user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare); } safeDODOTransfer(msg.sender, pending); } // Safe DODO transfer function, just in case if rounding error causes pool to not have enough DODOs. function safeDODOTransfer(address _to, uint256 _amount) internal { IDODORewardVault(dodoRewardVault).reward(_to, _amount); realizedReward[_to] = realizedReward[_to].add(_amount); emit Claim(_to, _amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_dodoToken","type":"address"},{"internalType":"uint256","name":"_startBlock","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferPrepared","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":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"_NEW_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_OWNER_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"addLpToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dodoPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dodoRewardVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getAllPendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"}],"name":"getDlpMiningSpeed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"},{"internalType":"address","name":"_user","type":"address"}],"name":"getPendingReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"}],"name":"getPid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getRealizedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"},{"internalType":"address","name":"_user","type":"address"}],"name":"getUserLpBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lpTokenRegistry","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfos","outputs":[{"internalType":"address","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlock","type":"uint256"},{"internalType":"uint256","name":"accDODOPerShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"realizedReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"setLpToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_dodoPerBlock","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"setReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","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":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lpToken","type":"address"}],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405260006008553480156200001657600080fd5b506040516200222f3803806200222f8339810160408190526200003991620000f3565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3816040516200009190620000e5565b6200009d91906200012d565b604051809103906000f080158015620000ba573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b03929092169190911790556009555062000141565b6106868062001ba983390190565b6000806040838503121562000106578182fd5b82516001600160a01b03811681146200011d578283fd5b6020939093015192949293505050565b6001600160a01b0391909116815260200190565b611a5880620001516000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636ff1c9bc11610104578063d1058e59116100a2578063f3fef3a311610071578063f3fef3a3146103a2578063fa09e630146103b5578063fb7276f4146103c8578063fe0f3a13146103db576101da565b8063d1058e5914610361578063ec83a76a14610369578063f146b8091461037c578063f2fde38b1461038f576101da565b80638af70336116100de5780638af703361461031d57806393f1a40b146103255780639599af1314610346578063bea006e01461034e576101da565b80636ff1c9bc146102ef5780637f10179f146103025780638456db1514610315576101da565b806343b55f351161017c57806351eb05a61161014b57806351eb05a61461029e578063630b5ba1146102b1578063689d84e4146102b95780636dc2cc8c146102dc576101da565b806343b55f351461026857806347e7ef241461027b57806348cd4cb11461028e5780634e71e0c814610296576101da565b806319a78f55116101b857806319a78f551461021a5780631e83409a1461022d57806334ea5389146102425780633d16433e14610255576101da565b8063081e3eda146101df57806316048bc4146101fd57806317caf6f114610212575b600080fd5b6101e76103ee565b6040516101f491906119fd565b60405180910390f35b6102056103f4565b6040516101f4919061177e565b6101e7610403565b6101e76102283660046115fd565b610409565b61024061023b3660046115e2565b610442565b005b61024061025036600461165b565b610532565b6101e76102633660046115e2565b6105f2565b6101e76102763660046115e2565b610604565b610240610289366004611631565b61065c565b6101e7610763565b610240610769565b6102406102ac3660046116c3565b6107f7565b610240610931565b6102cc6102c73660046116c3565b610954565b6040516101f494939291906117cf565b6101e76102ea3660046115e2565b610995565b6102406102fd3660046115e2565b6109b0565b610240610310366004611716565b610a27565b610205610a65565b6101e7610a74565b6103386103333660046116f3565b610a7a565b6040516101f4929190611a06565b610205610a9e565b61024061035c36600461165b565b610aad565b610240610c50565b6101e76103773660046115e2565b610d46565b6101e761038a3660046115e2565b610d58565b61024061039d3660046115e2565b610f25565b6102406103b0366004611631565b610fd0565b6102406103c33660046115e2565b6110f5565b6101e76103d63660046115e2565b61110d565b6101e76103e93660046115fd565b611161565b60045490565b6000546001600160a01b031681565b60085481565b60008061041584610604565b60009081526006602090815260408083206001600160a01b03871684529091529020549150505b92915050565b600061044d82610604565b6000818152600660209081526040808320338452909152902054909150158061049457506004818154811061047e57fe5b9060005260206000209060040201600101546000145b1561049f575061052f565b6000600482815481106104ae57fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506104df836107f7565b600061050782600101546104fb846000015486600301546112ac565b9063ffffffff6112d616565b905061051b826000015484600301546112ac565b600183015561052a33826112fe565b505050505b50565b6000546001600160a01b031633146105655760405162461bcd60e51b815260040161055c906118ee565b60405180910390fd5b801561057357610573610931565b600061057e84610604565b90506105c3836105b76004848154811061059457fe5b9060005260206000209060040201600101546008546112d690919063ffffffff16565b9063ffffffff6113e416565b60088190555082600482815481106105d757fe5b90600052602060002090600402016001018190555050505050565b60056020526000908152604090205481565b6001600160a01b038116600090815260056020526040812054829061063b5760405162461bcd60e51b815260040161055c90611911565b50506001600160a01b03166000908152600560205260409020546000190190565b600061066783610604565b905060006004828154811061067857fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506106a9836107f7565b8054156106da5760006106cc82600101546104fb846000015486600301546112ac565b90506106d833826112fe565b505b81546106f7906001600160a01b031633308763ffffffff61141016565b8054610709908563ffffffff6113e416565b808255600383015461071b91906112ac565b6001820155604051839033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15906107549088906119fd565b60405180910390a35050505050565b60095481565b6001546001600160a01b031633146107935760405162461bcd60e51b815260040161055c906117f5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006004828154811061080657fe5b9060005260206000209060040201905080600201544311610827575061052f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a082319061085790309060040161177e565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116db565b9050806108bb57504360029091015561052f565b60006109006008546108f485600101546108e86003546108e88960020154436112d690919063ffffffff16565b9063ffffffff61146e16565b9063ffffffff6114a816565b905061092061090f82846114d2565b60038501549063ffffffff6113e416565b600384015550504360029091015550565b60045460005b8181101561095057610948816107f7565b600101610937565b5050565b6004818154811061096157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6001600160a01b031660009081526007602052604090205490565b60006109bb82610604565b90506000600482815481106109cc57fe5b60009182526020808320858452600682526040808520338087529352909320805460049093029093018054909450610a17926001600160a01b0391909116919063ffffffff6114f016565b6000808255600190910155505050565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161055c906118ee565b8015610a5f57610a5f610931565b50600355565b6001546001600160a01b031681565b60035481565b60066020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b6001600160a01b038316600090815260056020526040902054839015610ae55760405162461bcd60e51b815260040161055c906119aa565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161055c906118ee565b8115610b1d57610b1d610931565b60006009544311610b3057600954610b32565b435b600854909150610b48908563ffffffff6113e416565b600855604080516080810182526001600160a01b0396871680825260208083019788528284019485526000606084018181526004805460018101825581845295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96820296870180546001600160a01b03191691909d1617909b5598517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c85015594517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d84015596517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e909201919091559554958252600590945292909220929092555050565b6004546000805b82811015610d3b5760008181526006602090815260408083203384529091529020541580610ca3575060048181548110610c8d57fe5b9060005260206000209060040201600101546000145b15610cad57610d33565b600060048281548110610cbc57fe5b60009182526020808320858452600682526040808520338652909252922060049091029091019150610ced836107f7565b610d17610d0a82600101546104fb846000015486600301546112ac565b859063ffffffff6113e416565b9350610d2b816000015483600301546112ac565b600190910155505b600101610c57565b5061095033826112fe565b60076020526000908152604090205481565b60045460009081805b82811015610f1d5760008181526006602090815260408083206001600160a01b03891684529091529020541580610db6575060048181548110610da057fe5b9060005260206000209060040201600101546000145b15610dc057610f15565b600060048281548110610dcf57fe5b600091825260208083208584526006825260408085206001600160a01b038c81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a0823191610e329130910161177e565b60206040518083038186803b158015610e4a57600080fd5b505afa158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8291906116db565b9050836002015443118015610e9657508015155b15610ee8576000610ec86008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050610ee4610ed782846114d2565b849063ffffffff6113e416565b9250505b610f0e610f0184600101546104fb8660000154866112ac565b879063ffffffff6113e416565b9550505050505b600101610d61565b509392505050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161055c906118ee565b6001600160a01b038116610f755760405162461bcd60e51b815260040161055c9061189c565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fdb83610604565b9050600060048281548110610fec57fe5b6000918252602080832085845260068252604080852033865290925292208054600490920290920192508411156110355760405162461bcd60e51b815260040161055c906118c3565b61103e836107f7565b600061105a82600101546104fb846000015486600301546112ac565b905061106633826112fe565b8154611078908663ffffffff6112d616565b808355600384015461108a91906112ac565b600183015582546110ab906001600160a01b0316338763ffffffff6114f016565b83336001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040516110e591906119fd565b60405180910390a3505050505050565b60006111018233610409565b90506109508282610fd0565b60008061111983610604565b905060006004828154811061112a57fe5b906000526020600020906004020190506111596008546108f4836001015460035461146e90919063ffffffff16565b949350505050565b60008061116d84610604565b905060006004828154811061117e57fe5b600091825260208083208584526006825260408085206001600160a01b038a81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a08231916111e19130910161177e565b60206040518083038186803b1580156111f957600080fd5b505afa15801561120d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123191906116db565b905083600201544311801561124557508015155b1561128a5760006112776008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050611286610ed782846114d2565b9250505b6112a083600101546104fb8560000154856112ac565b98975050505050505050565b6000670de0b6b3a76400006112c7848463ffffffff61146e16565b816112ce57fe5b049392505050565b6000828211156112f85760405162461bcd60e51b815260040161055c90611879565b50900390565b6002546040516310b3879160e11b81526001600160a01b03909116906321670f229061133090859085906004016117b6565b600060405180830381600087803b15801561134a57600080fd5b505af115801561135e573d6000803e3d6000fd5b5050506001600160a01b03831660009081526007602052604090205461138b91508263ffffffff6113e416565b6001600160a01b038316600081815260076020526040908190209290925590517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4906113d89084906119fd565b60405180910390a25050565b6000828201838110156114095760405162461bcd60e51b815260040161055c9061193d565b9392505050565b611468846323b872dd60e01b85858560405160240161143193929190611792565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611514565b50505050565b60008261147d5750600061043c565b8282028284828161148a57fe5b04146114095760405162461bcd60e51b815260040161055c906119da565b60008082116114c95760405162461bcd60e51b815260040161055c90611851565b8183816112ce57fe5b6000611409826108f485670de0b6b3a764000063ffffffff61146e16565b61150f8363a9059cbb60e01b84846040516024016114319291906117b6565b505050565b60006060836001600160a01b0316836040516115309190611745565b6000604051808303816000865af19150503d806000811461156d576040519150601f19603f3d011682016040523d82523d6000602084013e611572565b606091505b5091509150816115945760405162461bcd60e51b815260040161055c9061181c565b80511561146857808060200190518101906115af91906116a7565b6114685760405162461bcd60e51b815260040161055c90611960565b80356001600160a01b038116811461043c57600080fd5b6000602082840312156115f3578081fd5b61140983836115cb565b6000806040838503121561160f578081fd5b61161984846115cb565b915061162884602085016115cb565b90509250929050565b60008060408385031215611643578182fd5b61164d84846115cb565b946020939093013593505050565b60008060006060848603121561166f578081fd5b83356001600160a01b0381168114611685578182fd5b925060208401359150604084013561169c81611a14565b809150509250925092565b6000602082840312156116b8578081fd5b815161140981611a14565b6000602082840312156116d4578081fd5b5035919050565b6000602082840312156116ec578081fd5b5051919050565b60008060408385031215611705578182fd5b8235915061162884602085016115cb565b60008060408385031215611728578182fd5b82359150602083013561173a81611a14565b809150509250929050565b60008251815b81811015611765576020818601810151858301520161174b565b818111156117735782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601190820152700eed2e8d0c8e4c2ee40e8dede40daeac6d607b1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b602080825260129082015271131408151bdad95b88139bdd08115e1a5cdd60721b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b602080825260169082015275131408151bdad95b88105b1c9958591e48115e1a5cdd60521b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b918252602082015260400190565b801515811461052f57600080fdfea26469706673582212206c675aca2f7bd412a47ccd1526055642b4bf5d7b4ab34cd5e419bd7223e0ca9664736f6c63430006090033608060405234801561001057600080fd5b5060405161068638038061068683398101604081905261002f9161009d565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b0319166001600160a01b03929092169190911790556100cb565b6000602082840312156100ae578081fd5b81516001600160a01b03811681146100c4578182fd5b9392505050565b6105ac806100da6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806316048bc41461006757806321670f22146100855780634e71e0c81461009a57806375123ff9146100a25780638456db15146100aa578063f2fde38b146100b2575b600080fd5b61006f6100c5565b60405161007c9190610459565b60405180910390f35b6100986100933660046103d6565b6100d4565b005b610098610128565b61006f6101b6565b61006f6101c5565b6100986100c03660046103b4565b6101d4565b6000546001600160a01b031681565b6000546001600160a01b031633146101075760405162461bcd60e51b81526004016100fe90610509565b60405180910390fd5b600254610124906001600160a01b0316838363ffffffff61027f16565b5050565b6001546001600160a01b031633146101525760405162461bcd60e51b81526004016100fe90610486565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146101fe5760405162461bcd60e51b81526004016100fe90610509565b6001600160a01b0381166102245760405162461bcd60e51b81526004016100fe906104e2565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6102d58363a9059cbb60e01b848460405160240161029e92919061046d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526102da565b505050565b60006060836001600160a01b0316836040516102f69190610420565b6000604051808303816000865af19150503d8060008114610333576040519150601f19603f3d011682016040523d82523d6000602084013e610338565b606091505b50915091508161035a5760405162461bcd60e51b81526004016100fe906104ad565b80511561039157808060200190518101906103759190610400565b6103915760405162461bcd60e51b81526004016100fe9061052c565b50505050565b80356001600160a01b03811681146103ae57600080fd5b92915050565b6000602082840312156103c5578081fd5b6103cf8383610397565b9392505050565b600080604083850312156103e8578081fd5b6103f28484610397565b946020939093013593505050565b600060208284031215610411578081fd5b815180151581146103cf578182fd5b60008251815b818110156104405760208186018101518583015201610426565b8181111561044e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b60608201526080019056fea2646970667358221220ef58be852af0c74d1fffbe345875ca42a7e339c35b79546168f52cb1dc23fe5764736f6c6343000609003300000000000000000000000043dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd0000000000000000000000000000000000000000000000000000000000a77b00
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636ff1c9bc11610104578063d1058e59116100a2578063f3fef3a311610071578063f3fef3a3146103a2578063fa09e630146103b5578063fb7276f4146103c8578063fe0f3a13146103db576101da565b8063d1058e5914610361578063ec83a76a14610369578063f146b8091461037c578063f2fde38b1461038f576101da565b80638af70336116100de5780638af703361461031d57806393f1a40b146103255780639599af1314610346578063bea006e01461034e576101da565b80636ff1c9bc146102ef5780637f10179f146103025780638456db1514610315576101da565b806343b55f351161017c57806351eb05a61161014b57806351eb05a61461029e578063630b5ba1146102b1578063689d84e4146102b95780636dc2cc8c146102dc576101da565b806343b55f351461026857806347e7ef241461027b57806348cd4cb11461028e5780634e71e0c814610296576101da565b806319a78f55116101b857806319a78f551461021a5780631e83409a1461022d57806334ea5389146102425780633d16433e14610255576101da565b8063081e3eda146101df57806316048bc4146101fd57806317caf6f114610212575b600080fd5b6101e76103ee565b6040516101f491906119fd565b60405180910390f35b6102056103f4565b6040516101f4919061177e565b6101e7610403565b6101e76102283660046115fd565b610409565b61024061023b3660046115e2565b610442565b005b61024061025036600461165b565b610532565b6101e76102633660046115e2565b6105f2565b6101e76102763660046115e2565b610604565b610240610289366004611631565b61065c565b6101e7610763565b610240610769565b6102406102ac3660046116c3565b6107f7565b610240610931565b6102cc6102c73660046116c3565b610954565b6040516101f494939291906117cf565b6101e76102ea3660046115e2565b610995565b6102406102fd3660046115e2565b6109b0565b610240610310366004611716565b610a27565b610205610a65565b6101e7610a74565b6103386103333660046116f3565b610a7a565b6040516101f4929190611a06565b610205610a9e565b61024061035c36600461165b565b610aad565b610240610c50565b6101e76103773660046115e2565b610d46565b6101e761038a3660046115e2565b610d58565b61024061039d3660046115e2565b610f25565b6102406103b0366004611631565b610fd0565b6102406103c33660046115e2565b6110f5565b6101e76103d63660046115e2565b61110d565b6101e76103e93660046115fd565b611161565b60045490565b6000546001600160a01b031681565b60085481565b60008061041584610604565b60009081526006602090815260408083206001600160a01b03871684529091529020549150505b92915050565b600061044d82610604565b6000818152600660209081526040808320338452909152902054909150158061049457506004818154811061047e57fe5b9060005260206000209060040201600101546000145b1561049f575061052f565b6000600482815481106104ae57fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506104df836107f7565b600061050782600101546104fb846000015486600301546112ac565b9063ffffffff6112d616565b905061051b826000015484600301546112ac565b600183015561052a33826112fe565b505050505b50565b6000546001600160a01b031633146105655760405162461bcd60e51b815260040161055c906118ee565b60405180910390fd5b801561057357610573610931565b600061057e84610604565b90506105c3836105b76004848154811061059457fe5b9060005260206000209060040201600101546008546112d690919063ffffffff16565b9063ffffffff6113e416565b60088190555082600482815481106105d757fe5b90600052602060002090600402016001018190555050505050565b60056020526000908152604090205481565b6001600160a01b038116600090815260056020526040812054829061063b5760405162461bcd60e51b815260040161055c90611911565b50506001600160a01b03166000908152600560205260409020546000190190565b600061066783610604565b905060006004828154811061067857fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506106a9836107f7565b8054156106da5760006106cc82600101546104fb846000015486600301546112ac565b90506106d833826112fe565b505b81546106f7906001600160a01b031633308763ffffffff61141016565b8054610709908563ffffffff6113e416565b808255600383015461071b91906112ac565b6001820155604051839033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15906107549088906119fd565b60405180910390a35050505050565b60095481565b6001546001600160a01b031633146107935760405162461bcd60e51b815260040161055c906117f5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006004828154811061080657fe5b9060005260206000209060040201905080600201544311610827575061052f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a082319061085790309060040161177e565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116db565b9050806108bb57504360029091015561052f565b60006109006008546108f485600101546108e86003546108e88960020154436112d690919063ffffffff16565b9063ffffffff61146e16565b9063ffffffff6114a816565b905061092061090f82846114d2565b60038501549063ffffffff6113e416565b600384015550504360029091015550565b60045460005b8181101561095057610948816107f7565b600101610937565b5050565b6004818154811061096157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6001600160a01b031660009081526007602052604090205490565b60006109bb82610604565b90506000600482815481106109cc57fe5b60009182526020808320858452600682526040808520338087529352909320805460049093029093018054909450610a17926001600160a01b0391909116919063ffffffff6114f016565b6000808255600190910155505050565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161055c906118ee565b8015610a5f57610a5f610931565b50600355565b6001546001600160a01b031681565b60035481565b60066020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b6001600160a01b038316600090815260056020526040902054839015610ae55760405162461bcd60e51b815260040161055c906119aa565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161055c906118ee565b8115610b1d57610b1d610931565b60006009544311610b3057600954610b32565b435b600854909150610b48908563ffffffff6113e416565b600855604080516080810182526001600160a01b0396871680825260208083019788528284019485526000606084018181526004805460018101825581845295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96820296870180546001600160a01b03191691909d1617909b5598517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c85015594517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d84015596517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e909201919091559554958252600590945292909220929092555050565b6004546000805b82811015610d3b5760008181526006602090815260408083203384529091529020541580610ca3575060048181548110610c8d57fe5b9060005260206000209060040201600101546000145b15610cad57610d33565b600060048281548110610cbc57fe5b60009182526020808320858452600682526040808520338652909252922060049091029091019150610ced836107f7565b610d17610d0a82600101546104fb846000015486600301546112ac565b859063ffffffff6113e416565b9350610d2b816000015483600301546112ac565b600190910155505b600101610c57565b5061095033826112fe565b60076020526000908152604090205481565b60045460009081805b82811015610f1d5760008181526006602090815260408083206001600160a01b03891684529091529020541580610db6575060048181548110610da057fe5b9060005260206000209060040201600101546000145b15610dc057610f15565b600060048281548110610dcf57fe5b600091825260208083208584526006825260408085206001600160a01b038c81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a0823191610e329130910161177e565b60206040518083038186803b158015610e4a57600080fd5b505afa158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8291906116db565b9050836002015443118015610e9657508015155b15610ee8576000610ec86008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050610ee4610ed782846114d2565b849063ffffffff6113e416565b9250505b610f0e610f0184600101546104fb8660000154866112ac565b879063ffffffff6113e416565b9550505050505b600101610d61565b509392505050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161055c906118ee565b6001600160a01b038116610f755760405162461bcd60e51b815260040161055c9061189c565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fdb83610604565b9050600060048281548110610fec57fe5b6000918252602080832085845260068252604080852033865290925292208054600490920290920192508411156110355760405162461bcd60e51b815260040161055c906118c3565b61103e836107f7565b600061105a82600101546104fb846000015486600301546112ac565b905061106633826112fe565b8154611078908663ffffffff6112d616565b808355600384015461108a91906112ac565b600183015582546110ab906001600160a01b0316338763ffffffff6114f016565b83336001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040516110e591906119fd565b60405180910390a3505050505050565b60006111018233610409565b90506109508282610fd0565b60008061111983610604565b905060006004828154811061112a57fe5b906000526020600020906004020190506111596008546108f4836001015460035461146e90919063ffffffff16565b949350505050565b60008061116d84610604565b905060006004828154811061117e57fe5b600091825260208083208584526006825260408085206001600160a01b038a81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a08231916111e19130910161177e565b60206040518083038186803b1580156111f957600080fd5b505afa15801561120d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123191906116db565b905083600201544311801561124557508015155b1561128a5760006112776008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050611286610ed782846114d2565b9250505b6112a083600101546104fb8560000154856112ac565b98975050505050505050565b6000670de0b6b3a76400006112c7848463ffffffff61146e16565b816112ce57fe5b049392505050565b6000828211156112f85760405162461bcd60e51b815260040161055c90611879565b50900390565b6002546040516310b3879160e11b81526001600160a01b03909116906321670f229061133090859085906004016117b6565b600060405180830381600087803b15801561134a57600080fd5b505af115801561135e573d6000803e3d6000fd5b5050506001600160a01b03831660009081526007602052604090205461138b91508263ffffffff6113e416565b6001600160a01b038316600081815260076020526040908190209290925590517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4906113d89084906119fd565b60405180910390a25050565b6000828201838110156114095760405162461bcd60e51b815260040161055c9061193d565b9392505050565b611468846323b872dd60e01b85858560405160240161143193929190611792565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611514565b50505050565b60008261147d5750600061043c565b8282028284828161148a57fe5b04146114095760405162461bcd60e51b815260040161055c906119da565b60008082116114c95760405162461bcd60e51b815260040161055c90611851565b8183816112ce57fe5b6000611409826108f485670de0b6b3a764000063ffffffff61146e16565b61150f8363a9059cbb60e01b84846040516024016114319291906117b6565b505050565b60006060836001600160a01b0316836040516115309190611745565b6000604051808303816000865af19150503d806000811461156d576040519150601f19603f3d011682016040523d82523d6000602084013e611572565b606091505b5091509150816115945760405162461bcd60e51b815260040161055c9061181c565b80511561146857808060200190518101906115af91906116a7565b6114685760405162461bcd60e51b815260040161055c90611960565b80356001600160a01b038116811461043c57600080fd5b6000602082840312156115f3578081fd5b61140983836115cb565b6000806040838503121561160f578081fd5b61161984846115cb565b915061162884602085016115cb565b90509250929050565b60008060408385031215611643578182fd5b61164d84846115cb565b946020939093013593505050565b60008060006060848603121561166f578081fd5b83356001600160a01b0381168114611685578182fd5b925060208401359150604084013561169c81611a14565b809150509250925092565b6000602082840312156116b8578081fd5b815161140981611a14565b6000602082840312156116d4578081fd5b5035919050565b6000602082840312156116ec578081fd5b5051919050565b60008060408385031215611705578182fd5b8235915061162884602085016115cb565b60008060408385031215611728578182fd5b82359150602083013561173a81611a14565b809150509250929050565b60008251815b81811015611765576020818601810151858301520161174b565b818111156117735782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601190820152700eed2e8d0c8e4c2ee40e8dede40daeac6d607b1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b602080825260129082015271131408151bdad95b88139bdd08115e1a5cdd60721b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b602080825260169082015275131408151bdad95b88105b1c9958591e48115e1a5cdd60521b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b918252602082015260400190565b801515811461052f57600080fdfea26469706673582212206c675aca2f7bd412a47ccd1526055642b4bf5d7b4ab34cd5e419bd7223e0ca9664736f6c63430006090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000043dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd0000000000000000000000000000000000000000000000000000000000a77b00
-----Decoded View---------------
Arg [0] : _dodoToken (address): 0x43Dfc4159D86F3A37A5A4B3D4580b888ad7d4DDd
Arg [1] : _startBlock (uint256): 10976000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000043dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd
Arg [1] : 0000000000000000000000000000000000000000000000000000000000a77b00
Deployed Bytecode Sourcemap
10139:11964:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12828:96;;;:::i;:::-;;;;;;;;;;;;;;;;308:22;;;:::i;:::-;;;;;;;;11935:34;;;:::i;13082:183::-;;;;;;;;;:::i;20418:583::-;;;;;;;;;:::i;:::-;;14006:390;;;;;;;;;:::i;11610:50::-;;;;;;;;;:::i;12932:142::-;;;;;;;;;:::i;18369:744::-;;;;;;;;;:::i;12026:25::-;;;:::i;1158:230::-;;;:::i;17528:719::-;;;;;;;;;:::i;17271:181::-;;;:::i;11576:27::-;;;;;;;;;:::i;:::-;;;;;;;;;;;16763:121;;;;;;;;;:::i;20066:344::-;;;;;;;;;:::i;14404:197::-;;;;;;;;;:::i;337:26::-;;;:::i;11513:27::-;;;:::i;11718:64::-;;;;;;;;;:::i;:::-;;;;;;;;;11476:30;;;:::i;13317:681::-;;;;;;;;;:::i;21009:739::-;;;:::i;11789:49::-;;;;;;;;;:::i;15526:1229::-;;;;;;;;;:::i;926:224::-;;;;;;;;;:::i;19121:707::-;;;;;;;;;:::i;19836:159::-;;;;;;;;;:::i;16892:247::-;;;;;;;;;:::i;14658:860::-;;;;;;;;;:::i;12828:96::-;12900:9;:16;12828:96;:::o;308:22::-;;;-1:-1:-1;;;;;308:22:0;;:::o;11935:34::-;;;;:::o;13082:183::-;13162:7;13182:11;13196:16;13203:8;13196:6;:16::i;:::-;13230:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;13230:20:0;;;;;;;;;:27;;-1:-1:-1;;13082:183:0;;;;;:::o;20418:583::-;20469:11;20483:16;20490:8;20483:6;:16::i;:::-;20514:13;;;;:8;:13;;;;;;;;20528:10;20514:25;;;;;;;:32;20469:30;;-1:-1:-1;20514:37:0;;:71;;;20555:9;20565:3;20555:14;;;;;;;;;;;;;;;;;;:25;;;20584:1;20555:30;20514:71;20510:122;;;20602:7;;;20510:122;20642:21;20666:9;20676:3;20666:14;;;;;;;;;;;;;;;;20715:13;;;:8;:13;;;;;;20729:10;20715:25;;;;;;;20666:14;;;;;;;;-1:-1:-1;20751:15:0;20724:3;20751:10;:15::i;:::-;20777;20795:71;20850:4;:15;;;20795:50;20811:4;:11;;;20824:4;:20;;;20795:15;:50::i;:::-;:54;:71;:54;:71;:::i;:::-;20777:89;;20895:50;20911:4;:11;;;20924:4;:20;;;20895:15;:50::i;:::-;20877:15;;;:68;20956:37;20973:10;20985:7;20956:16;:37::i;:::-;20418:583;;;;;;:::o;14006:390::-;704:7;;-1:-1:-1;;;;;704:7:0;690:10;:21;682:43;;;;-1:-1:-1;;;682:43:0;;;;;;;;;;;;;;;;;14149:11:::1;14145:61;;;14177:17;:15;:17::i;:::-;14216:11;14230:16;14237:8;14230:6;:16::i;:::-;14216:30;;14275:63;14326:11;14275:46;14295:9;14305:3;14295:14;;;;;;;;;;;;;;;;;;:25;;;14275:15;;:19;;:46;;;;:::i;:::-;:50:::0;:63:::1;:50;:63;:::i;:::-;14257:15;:81;;;;14377:11;14349:9;14359:3;14349:14;;;;;;;;;;;;;;;;;;:25;;:39;;;;736:1;14006:390:::0;;;:::o;11610:50::-;;;;;;;;;;;;;:::o;12932:142::-;-1:-1:-1;;;;;12561:24:0;;13010:7;12561:24;;;:15;:24;;;;;;12991:8;;12553:59;;;;-1:-1:-1;;;12553:59:0;;;;;;;;;-1:-1:-1;;;;;;;13037:25:0::1;;::::0;;;:15:::1;:25;::::0;;;;;-1:-1:-1;;13037:29:0;;12932:142::o;18369:744::-;18439:11;18453:16;18460:8;18453:6;:16::i;:::-;18439:30;;18480:21;18504:9;18514:3;18504:14;;;;;;;;;;;;;;;;18553:13;;;:8;:13;;;;;;18567:10;18553:25;;;;;;;18504:14;;;;;;;;-1:-1:-1;18589:15:0;18562:3;18589:10;:15::i;:::-;18619:11;;:15;18615:221;;18651:15;18669:103;18742:4;:15;;;18669:50;18685:4;:11;;;18698:4;:20;;;18669:15;:50::i;:103::-;18651:121;;18787:37;18804:10;18816:7;18787:16;:37::i;:::-;18615:221;;18853:12;;18846:82;;-1:-1:-1;;;;;18853:12:0;18892:10;18913:4;18920:7;18846:82;:37;:82;:::i;:::-;18953:11;;:24;;18969:7;18953:24;:15;:24;:::i;:::-;18939:38;;;19035:20;;;;19006:50;;18939:38;19006:15;:50::i;:::-;18988:15;;;:68;19072:33;;19092:3;;19080:10;;19072:33;;;;19097:7;;19072:33;;;;;;;;;;18369:744;;;;;:::o;12026:25::-;;;;:::o;1158:230::-;1226:11;;-1:-1:-1;;;;;1226:11:0;1212:10;:25;1204:51;;;;-1:-1:-1;;;1204:51:0;;;;;;;;;1301:11;;;1292:7;;1271:42;;-1:-1:-1;;;;;1301:11:0;;;;1292:7;;;;1271:42;;;1334:11;;;;1324:21;;-1:-1:-1;;;;;;1324:21:0;;;-1:-1:-1;;;;;1334:11:0;;1324:21;;;;1356:24;;;1158:230::o;17528:719::-;17580:21;17604:9;17614:4;17604:15;;;;;;;;;;;;;;;;;;17580:39;;17650:4;:20;;;17634:12;:36;17630:75;;17687:7;;;17630:75;17741:12;;17734:45;;-1:-1:-1;;;17734:45:0;;17715:16;;-1:-1:-1;;;;;17741:12:0;;17734:30;;:45;;17773:4;;17734:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17715:64;-1:-1:-1;17794:13:0;17790:102;;-1:-1:-1;17847:12:0;17824:20;;;;:35;17874:7;;17790:102;17902:18;17923:168;18075:15;;17923:133;18040:4;:15;;;17923:98;18008:12;;17923:66;17968:4;:20;;;17923:26;:44;;:66;;;;:::i;:::-;:84;:98;:84;:98;:::i;:133::-;:151;:168;:151;:168;:::i;:::-;17902:189;;18125:68;18150:42;18171:10;18183:8;18150:20;:42::i;:::-;18125:20;;;;;:68;:24;:68;:::i;:::-;18102:20;;;:91;-1:-1:-1;;18227:12:0;18204:20;;;;:35;17528:719;:::o;17271:181::-;17333:9;:16;17316:14;17360:85;17388:6;17382:3;:12;17360:85;;;17418:15;17429:3;17418:10;:15::i;:::-;17396:5;;17360:85;;;;17271:181;:::o;11576:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11576:27:0;;;;-1:-1:-1;11576:27:0;;;:::o;16763:121::-;-1:-1:-1;;;;;16855:21:0;16828:7;16855:21;;;:14;:21;;;;;;;16763:121::o;20066:344::-;20129:11;20143:16;20150:8;20143:6;:16::i;:::-;20129:30;;20170:21;20194:9;20204:3;20194:14;;;;;;;;;;;;;;;;20243:13;;;:8;:13;;;;;;20257:10;20243:25;;;;;;;;20334:11;;20194:14;;;;;;;20286:12;;20194:14;;-1:-1:-1;20279:67:0;;-1:-1:-1;;;;;20286:12:0;;;;;20257:10;20279:67;:33;:67;:::i;:::-;20371:1;20357:15;;;20383;;;;:19;-1:-1:-1;;;20066:344:0:o;14404:197::-;704:7;;-1:-1:-1;;;;;704:7:0;690:10;:21;682:43;;;;-1:-1:-1;;;682:43:0;;;;;;;;;14498:11:::1;14494:61;;;14526:17;:15;:17::i;:::-;-1:-1:-1::0;14565:12:0::1;:28:::0;14404:197::o;337:26::-;;;-1:-1:-1;;;;;337:26:0;;:::o;11513:27::-;;;;:::o;11718:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11476:30::-;;;-1:-1:-1;;;;;11476:30:0;;:::o;13317:681::-;-1:-1:-1;;;;;12701:24:0;;;;;;:15;:24;;;;;;13451:8;;12701:29;12693:64;;;;-1:-1:-1;;;12693:64:0;;;;;;;;;704:7:::1;::::0;-1:-1:-1;;;;;704:7:0::1;690:10;:21;682:43;;;;-1:-1:-1::0;;;682:43:0::1;;;;;;;;;13486:11:::2;13482:61;;;13514:17;:15;:17::i;:::-;13553:23;13594:10;;13579:12;:25;:53;;13622:10;;13579:53;;;13607:12;13579:53;13661:15;::::0;13553:79;;-1:-1:-1;13661:32:0::2;::::0;13681:11;13661:32:::2;:19;:32;:::i;:::-;13643:15;:50:::0;13733:191:::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;13733:191:0;;::::2;::::0;;;::::2;::::0;;::::2;::::0;;;;;;;;;-1:-1:-1;13733:191:0;;;;;;13704:9:::2;:231:::0;;::::2;::::0;::::2;::::0;;;;;;;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;;13704:231:0::2;::::0;;;::::2;;::::0;;;;;;;;;;;;;;;;;;;;;;;;;13974:16;;13946:25;;;:15:::2;:25:::0;;;;;;;:44;;;;-1:-1:-1;;13317:681:0:o;21009:739::-;21064:9;:16;21047:14;;21121:572;21149:6;21143:3;:12;21121:572;;;21183:13;;;;:8;:13;;;;;;;;21197:10;21183:25;;;;;;;:32;:37;;:71;;;21224:9;21234:3;21224:14;;;;;;;;;;;;;;;;;;:25;;;21253:1;21224:30;21183:71;21179:132;;;21275:8;;21179:132;21325:21;21349:9;21359:3;21349:14;;;;;;;;;;;;;;;;21402:13;;;:8;:13;;;;;;21416:10;21402:25;;;;;;;21349:14;;;;;;;;-1:-1:-1;21442:15:0;21411:3;21442:10;:15::i;:::-;21482:116;21512:71;21567:4;:15;;;21512:50;21528:4;:11;;;21541:4;:20;;;21512:15;:50::i;:71::-;21482:7;;:116;:11;:116;:::i;:::-;21472:126;;21631:50;21647:4;:11;;;21660:4;:20;;;21631:15;:50::i;:::-;21613:15;;;;:68;-1:-1:-1;21121:572:0;21157:5;;21121:572;;;;21703:37;21720:10;21732:7;21703:16;:37::i;11789:49::-;;;;;;;;;;;;;:::o;15526:1229::-;15630:9;:16;15593:7;;;;15691:1028;15719:6;15713:3;:12;15691:1028;;;15753:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;15753:20:0;;;;;;;;;:27;:32;;:66;;;15789:9;15799:3;15789:14;;;;;;;;;;;;;;;;;;:25;;;15818:1;15789:30;15753:66;15749:127;;;15840:8;;15749:127;15890:21;15914:9;15924:3;15914:14;;;;;;;;;;;;;;;;15967:13;;;:8;:13;;;;;;-1:-1:-1;;;;;15967:20:0;;;;;;;;;;15914:14;;;;;;;16028:20;;;;16089:12;;16082:45;;-1:-1:-1;;;16082:45:0;;15914:14;;-1:-1:-1;15967:20:0;;16028;;15914:14;;16089:12;;;;;16082:30;;:45;;16121:4;;16082:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16063:64;;16161:4;:20;;;16146:12;:35;:52;;;;-1:-1:-1;16185:13:0;;;16146:52;16142:422;;;16219:18;16240:208;16432:15;;16240:165;16389:4;:15;;;16240:122;16349:12;;16240:82;16301:4;:20;;;16240:34;:60;;:82;;;;:::i;:208::-;16219:229;;16485:63;16505:42;16526:10;16538:8;16505:20;:42::i;:::-;16485:15;;:63;:19;:63;:::i;:::-;16467:81;;16142:422;;16592:115;16626:66;16676:4;:15;;;16626:45;16642:4;:11;;;16655:15;16626;:45::i;:66::-;16592:11;;:115;:15;:115;:::i;:::-;16578:129;;15691:1028;;;;;15727:5;;15691:1028;;;-1:-1:-1;16736:11:0;15526:1229;-1:-1:-1;;;15526:1229:0:o;926:224::-;704:7;;-1:-1:-1;;;;;704:7:0;690:10;:21;682:43;;;;-1:-1:-1;;;682:43:0;;;;;;;;;-1:-1:-1;;;;;1009:22:0;::::1;1001:48;;;;-1:-1:-1::0;;;1001:48:0::1;;;;;;;;;1091:7;::::0;;1065:44:::1;::::0;-1:-1:-1;;;;;1065:44:0;;::::1;::::0;1091:7;::::1;::::0;1065:44:::1;::::0;::::1;1120:11;:22:::0;;-1:-1:-1;;;;;;1120:22:0::1;-1:-1:-1::0;;;;;1120:22:0;;;::::1;::::0;;;::::1;::::0;;926:224::o;19121:707::-;19192:11;19206:16;19213:8;19206:6;:16::i;:::-;19192:30;;19233:21;19257:9;19267:3;19257:14;;;;;;;;;;;;;;;;19306:13;;;:8;:13;;;;;;19320:10;19306:25;;;;;;;19350:11;;19257:14;;;;;;;;-1:-1:-1;19350:22:0;-1:-1:-1;19350:22:0;19342:52;;;;-1:-1:-1;;;19342:52:0;;;;;;;;;19405:15;19416:3;19405:10;:15::i;:::-;19431;19449:71;19504:4;:15;;;19449:50;19465:4;:11;;;19478:4;:20;;;19449:15;:50::i;:71::-;19431:89;;19531:37;19548:10;19560:7;19531:16;:37::i;:::-;19593:11;;:24;;19609:7;19593:24;:15;:24;:::i;:::-;19579:38;;;19675:20;;;;19646:50;;19579:38;19646:15;:50::i;:::-;19628:15;;;:68;19714:12;;19707:63;;-1:-1:-1;;;;;19714:12:0;19749:10;19762:7;19707:63;:33;:63;:::i;:::-;19807:3;19795:10;-1:-1:-1;;;;;19786:34:0;;19812:7;19786:34;;;;;;;;;;;;;;;19121:707;;;;;;:::o;19836:159::-;19893:15;19911:38;19928:8;19938:10;19911:16;:38::i;:::-;19893:56;;19960:27;19969:8;19979:7;19960:8;:27::i;16892:247::-;16960:7;16980:11;16994:16;17001:8;16994:6;:16::i;:::-;16980:30;;17021:21;17045:9;17055:3;17045:14;;;;;;;;;;;;;;;;;;17021:38;;17077:54;17115:15;;17077:33;17094:4;:15;;;17077:12;;:16;;:33;;;;:::i;:54::-;17070:61;16892:247;-1:-1:-1;;;;16892:247:0:o;14658:860::-;14740:7;14760:11;14774:16;14781:8;14774:6;:16::i;:::-;14760:30;;14801:21;14825:9;14835:3;14825:14;;;;;;;;;;;;;;;;14874:13;;;:8;:13;;;;;;-1:-1:-1;;;;;14874:20:0;;;;;;;;;;14825:14;;;;;;;14931:20;;;;14988:12;;14981:45;;-1:-1:-1;;;14981:45:0;;14825:14;;-1:-1:-1;14874:20:0;;14931;;14825:14;;14988:12;;;;;14981:30;;:45;;15020:4;;14981:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14962:64;;15056:4;:20;;;15041:12;:35;:52;;;;-1:-1:-1;15080:13:0;;;15041:52;15037:390;;;15110:18;15131:188;15303:15;;15131:149;15264:4;:15;;;15131:110;15228:12;;15131:74;15184:4;:20;;;15131:30;:52;;:74;;;;:::i;:188::-;15110:209;;15352:63;15372:42;15393:10;15405:8;15372:20;:42::i;15352:63::-;15334:81;;15037:390;;15444:66;15494:4;:15;;;15444:45;15460:4;:11;;;15473:15;15444;:45::i;:66::-;15437:73;14658:860;-1:-1:-1;;;;;;;;14658:860:0:o;3148:117::-;3211:7;3133:6;3238:13;:6;3249:1;3238:13;:10;:13;:::i;:::-;:19;;;;;;;3148:117;-1:-1:-1;;;3148:117:0:o;2310:137::-;2368:7;2401:1;2396;:6;;2388:28;;;;-1:-1:-1;;;2388:28:0;;;;;;;;;-1:-1:-1;2434:5:0;;;2310:137::o;21862:238::-;21955:15;;21938:54;;-1:-1:-1;;;21938:54:0;;-1:-1:-1;;;;;21955:15:0;;;;21938:40;;:54;;21979:3;;21984:7;;21938:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;22025:19:0;;;;;;:14;:19;;;;;;:32;;-1:-1:-1;22049:7:0;22025:32;:23;:32;:::i;:::-;-1:-1:-1;;;;;22003:19:0;;;;;;:14;:19;;;;;;;:54;;;;22073:19;;;;;;22084:7;;22073:19;;;;;;;;;;21862:238;;:::o;2455:161::-;2513:7;2545:5;;;2569:6;;;;2561:28;;;;-1:-1:-1;;;2561:28:0;;;;;;;;;2607:1;2455:161;-1:-1:-1;;;2455:161:0:o;7125:285::-;7269:133;7303:5;7346:27;;;7375:4;7381:2;7385:5;7323:68;;;;;;;;;;;;;;;-1:-1:-1;;7323:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;7323:68:0;-1:-1:-1;;;;;;7323:68:0;;;;;;;;;;7269:19;:133::i;:::-;7125:285;;;;:::o;1631:226::-;1689:7;1713:6;1709:47;;-1:-1:-1;1743:1:0;1736:8;;1709:47;1780:5;;;1784:1;1780;:5;:1;1804:5;;;;;:10;1796:32;;;;-1:-1:-1;;;1796:32:0;;;;;;;;1865:141;1923:7;1955:1;1951;:5;1943:32;;;;-1:-1:-1;;;1943:32:0;;;;;;;;;1997:1;1993;:5;;;;3409:125;3477:7;3504:22;3524:1;3504:15;:6;3133;3504:15;:10;:15;:::i;6906:211::-;7023:86;7043:5;7073:23;;;7098:2;7102:5;7050:58;;;;;;;;;;7023:86;6906:211;;;:::o;8479:1046::-;9139:12;9153:23;9188:5;-1:-1:-1;;;;;9180:19:0;9200:4;9180:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9138:67;;;;9224:7;9216:52;;;;-1:-1:-1;;;9216:52:0;;;;;;;;;9285:17;;:21;9281:237;;9440:10;9429:30;;;;;;;;;;;;;;9421:85;;;;-1:-1:-1;;;9421:85:0;;;;;;;;5:130:-1;72:20;;-1:-1;;;;;16456:54;;16937:35;;16927:2;;16986:1;;16976:12;686:241;;790:2;778:9;769:7;765:23;761:32;758:2;;;-1:-1;;796:12;758:2;858:53;903:7;879:22;858:53;;934:366;;;1055:2;1043:9;1034:7;1030:23;1026:32;1023:2;;;-1:-1;;1061:12;1023:2;1123:53;1168:7;1144:22;1123:53;;;1113:63;;1231:53;1276:7;1213:2;1256:9;1252:22;1231:53;;;1221:63;;1017:283;;;;;;1307:366;;;1428:2;1416:9;1407:7;1403:23;1399:32;1396:2;;;-1:-1;;1434:12;1396:2;1496:53;1541:7;1517:22;1496:53;;;1486:63;1586:2;1625:22;;;;475:20;;-1:-1;;;1390:283;1680:485;;;;1815:2;1803:9;1794:7;1790:23;1786:32;1783:2;;;-1:-1;;1821:12;1783:2;72:20;;-1:-1;;;;;16456:54;;16937:35;;16927:2;;-1:-1;;16976:12;16927:2;1873:63;-1:-1;1973:2;2012:22;;475:20;;-1:-1;2081:2;2117:22;;206:20;231:30;206:20;231:30;;;2089:60;;;;1777:388;;;;;;2172:257;;2284:2;2272:9;2263:7;2259:23;2255:32;2252:2;;;-1:-1;;2290:12;2252:2;354:6;348:13;366:30;390:5;366:30;;2436:241;;2540:2;2528:9;2519:7;2515:23;2511:32;2508:2;;;-1:-1;;2546:12;2508:2;-1:-1;475:20;;2502:175;-1:-1;2502:175;2684:263;;2799:2;2787:9;2778:7;2774:23;2770:32;2767:2;;;-1:-1;;2805:12;2767:2;-1:-1;623:13;;2761:186;-1:-1;2761:186;2954:366;;;3075:2;3063:9;3054:7;3050:23;3046:32;3043:2;;;-1:-1;;3081:12;3043:2;488:6;475:20;3133:63;;3251:53;3296:7;3233:2;3276:9;3272:22;3251:53;;3327:360;;;3445:2;3433:9;3424:7;3420:23;3416:32;3413:2;;;-1:-1;;3451:12;3413:2;488:6;475:20;3503:63;;3603:2;3643:9;3639:22;206:20;231:30;255:5;231:30;;;3611:60;;;;3407:280;;;;;;8245:271;;3974:5;15838:12;-1:-1;16674:101;16688:6;16685:1;16682:13;16674:101;;;4118:4;16755:11;;;;;16749:18;16736:11;;;16729:39;16703:10;16674:101;;;16790:6;16787:1;16784:13;16781:2;;;-1:-1;16846:6;16841:3;16837:16;16830:27;16781:2;-1:-1;4149:16;;;;;8379:137;-1:-1;;8379:137;8523:222;-1:-1;;;;;16456:54;;;;3765:37;;8650:2;8635:18;;8621:124;8752:444;-1:-1;;;;;16456:54;;;3765:37;;16456:54;;;;9099:2;9084:18;;3765:37;9182:2;9167:18;;8196:37;;;;8935:2;8920:18;;8906:290;9203:333;-1:-1;;;;;16456:54;;;;3765:37;;9522:2;9507:18;;8196:37;9358:2;9343:18;;9329:207;9543:556;-1:-1;;;;;16456:54;;;;3765:37;;9919:2;9904:18;;8196:37;;;;10002:2;9987:18;;8196:37;10085:2;10070:18;;8196:37;9754:3;9739:19;;9725:374;10106:416;10306:2;10320:47;;;4402:2;10291:18;;;16136:19;-1:-1;;;16176:14;;;4418:36;4473:12;;;10277:245;10529:416;10729:2;10743:47;;;10714:18;;;16136:19;4760:34;16176:14;;;4740:55;4814:12;;;10700:245;10952:416;11152:2;11166:47;;;5065:2;11137:18;;;16136:19;-1:-1;;;16176:14;;;5081:37;5137:12;;;11123:245;11375:416;11575:2;11589:47;;;5388:1;11560:18;;;16136:19;-1:-1;;;16176:14;;;5403:32;5454:12;;;11546:245;11798:416;11998:2;12012:47;;;5705:2;11983:18;;;16136:19;-1:-1;;;16176:14;;;5721:36;5776:12;;;11969:245;12221:416;12421:2;12435:47;;;6027:2;12406:18;;;16136:19;-1:-1;;;16176:14;;;6043:40;6102:12;;;12392:245;12644:416;12844:2;12858:47;;;6353:1;12829:18;;;16136:19;-1:-1;;;16176:14;;;6368:32;6419:12;;;12815:245;13067:416;13267:2;13281:47;;;6670:2;13252:18;;;16136:19;-1:-1;;;16176:14;;;6686:41;6746:12;;;13238:245;13490:416;13690:2;13704:47;;;6997:1;13675:18;;;16136:19;-1:-1;;;16176:14;;;7012:32;7063:12;;;13661:245;13913:416;14113:2;14127:47;;;7314:2;14098:18;;;16136:19;7350:34;16176:14;;;7330:55;-1:-1;;;7405:12;;;7398:34;7451:12;;;14084:245;14336:416;14536:2;14550:47;;;7702:2;14521:18;;;16136:19;-1:-1;;;16176:14;;;7718:45;7782:12;;;14507:245;14759:416;14959:2;14973:47;;;8033:1;14944:18;;;16136:19;-1:-1;;;16176:14;;;8048:32;8099:12;;;14930:245;15182:222;8196:37;;;15309:2;15294:18;;15280:124;15411:333;8196:37;;;15730:2;15715:18;;8196:37;15566:2;15551:18;;15537:207;17002:111;17083:5;16368:13;16361:21;17061:5;17058:32;17048:2;;17104:1;;17094:12
Swarm Source
ipfs://ef58be852af0c74d1fffbe345875ca42a7e339c35b79546168f52cb1dc23fe57
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ Download: CSV Export ]
[ 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.