Latest 25 from a total of 1,853 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw All | 3229792 | 1131 days ago | IN | 0 MOVR | 0.00015099 | ||||
| Withdraw All | 2679349 | 1212 days ago | IN | 0 MOVR | 0.00021058 | ||||
| Withdraw All | 2679345 | 1212 days ago | IN | 0 MOVR | 0.0002504 | ||||
| Withdraw All | 2540972 | 1232 days ago | IN | 0 MOVR | 0.0002106 | ||||
| Claim | 2540971 | 1232 days ago | IN | 0 MOVR | 0.00024058 | ||||
| Withdraw All | 2517573 | 1236 days ago | IN | 0 MOVR | 0.0002106 | ||||
| Claim | 2517570 | 1236 days ago | IN | 0 MOVR | 0.00019083 | ||||
| Claim | 2475440 | 1243 days ago | IN | 0 MOVR | 0.00006637 | ||||
| Withdraw All | 2475438 | 1243 days ago | IN | 0 MOVR | 0.0002106 | ||||
| Withdraw All | 2475436 | 1243 days ago | IN | 0 MOVR | 0.00021058 | ||||
| Claim | 2475435 | 1243 days ago | IN | 0 MOVR | 0.0001908 | ||||
| Withdraw All | 2463340 | 1245 days ago | IN | 0 MOVR | 0.00025038 | ||||
| Withdraw All | 2455678 | 1246 days ago | IN | 0 MOVR | 0.00021058 | ||||
| Withdraw All | 2455674 | 1246 days ago | IN | 0 MOVR | 0.0002106 | ||||
| Claim | 2455398 | 1246 days ago | IN | 0 MOVR | 0.00034943 | ||||
| Claim | 2455394 | 1246 days ago | IN | 0 MOVR | 0.00092689 | ||||
| Withdraw All | 2452544 | 1246 days ago | IN | 0 MOVR | 0.00021058 | ||||
| Withdraw All | 2451368 | 1247 days ago | IN | 0 MOVR | 0.0002106 | ||||
| Withdraw All | 2449164 | 1247 days ago | IN | 0 MOVR | 0.00021058 | ||||
| Claim | 2449159 | 1247 days ago | IN | 0 MOVR | 0.00024055 | ||||
| Withdraw All | 2447490 | 1247 days ago | IN | 0 MOVR | 0.0002504 | ||||
| Withdraw All | 2447369 | 1247 days ago | IN | 0 MOVR | 0.00008423 | ||||
| Withdraw All | 2447365 | 1247 days ago | IN | 0 MOVR | 0.0002106 | ||||
| Withdraw All | 2447138 | 1247 days ago | IN | 0 MOVR | 0.00025038 | ||||
| Withdraw All | 2446738 | 1247 days ago | IN | 0 MOVR | 0.0002106 |
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 1379589 | 1459 days ago | Contract Creation | 0 MOVR |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DODOMine
Compiler Version
v0.6.9+commit.3e3065ac
Contract Source Code (Solidity)
/**
*Submitted for verification at moonriver.moonscan.io on 2022-01-27
*/
/**
*Submitted for verification at moonriver.moonscan.io on 2022-01-26
*/
/**
*Submitted for verification at polygonscan.com on 2022-01-20
*/
// 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 {
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
/**
* @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
/**
* @title DecimalMath
* @author DODO Breeder
*
* @notice Functions for fixed point number with 18 decimals
*/
library DecimalMath {
using SafeMath for uint256;
uint256 internal constant ONE = 10**18;
uint256 internal constant ONE2 = 10**36;
function mulFloor(uint256 target, uint256 d) internal pure returns (uint256) {
return target.mul(d) / (10**18);
}
function mulCeil(uint256 target, uint256 d) internal pure returns (uint256) {
return target.mul(d).divCeil(10**18);
}
function divFloor(uint256 target, uint256 d) internal pure returns (uint256) {
return target.mul(10**18).div(d);
}
function divCeil(uint256 target, uint256 d) internal pure returns (uint256) {
return target.mul(10**18).divCeil(d);
}
function reciprocalFloor(uint256 target) internal pure returns (uint256) {
return uint256(10**36).div(target);
}
function reciprocalCeil(uint256 target) internal pure returns (uint256) {
return uint256(10**36).divCeil(target);
}
}
// File: contracts/intf/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);
function symbol() 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
/**
* @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/DODOToken/DODORewardVault.sol
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/DODOToken/DODOMine.sol
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.mulFloor(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.mulFloor(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.mulFloor(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.mulFloor(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.mulFloor(user.amount, pool.accDODOPerShare).sub(
user.rewardDebt
);
safeDODOTransfer(msg.sender, pending);
user.amount = user.amount.sub(_amount);
user.rewardDebt = DecimalMath.mulFloor(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.mulFloor(user.amount, pool.accDODOPerShare).sub(
user.rewardDebt
);
user.rewardDebt = DecimalMath.mulFloor(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.mulFloor(user.amount, pool.accDODOPerShare).sub(user.rewardDebt)
);
user.rewardDebt = DecimalMath.mulFloor(user.amount, pool.accDODOPerShare);
}
safeDODOTransfer(msg.sender, pending);
}
// Safe DODO transfer function
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
Contract ABI
API[{"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
608060405260006008553480156200001657600080fd5b5060405162002195380380620021958339810160408190526200003991620000f3565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3816040516200009190620000e5565b6200009d91906200012d565b604051809103906000f080158015620000ba573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b03929092169190911790556009555062000141565b6106398062001b5c83390190565b6000806040838503121562000106578182fd5b82516001600160a01b03811681146200011d578283fd5b6020939093015192949293505050565b6001600160a01b0391909116815260200190565b611a0b80620001516000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636ff1c9bc11610104578063d1058e59116100a2578063f3fef3a311610071578063f3fef3a3146103a2578063fa09e630146103b5578063fb7276f4146103c8578063fe0f3a13146103db576101da565b8063d1058e5914610361578063ec83a76a14610369578063f146b8091461037c578063f2fde38b1461038f576101da565b80638af70336116100de5780638af703361461031d57806393f1a40b146103255780639599af1314610346578063bea006e01461034e576101da565b80636ff1c9bc146102ef5780637f10179f146103025780638456db1514610315576101da565b806343b55f351161017c57806351eb05a61161014b57806351eb05a61461029e578063630b5ba1146102b1578063689d84e4146102b95780636dc2cc8c146102dc576101da565b806343b55f351461026857806347e7ef241461027b57806348cd4cb11461028e5780634e71e0c814610296576101da565b806319a78f55116101b857806319a78f551461021a5780631e83409a1461022d57806334ea5389146102425780633d16433e14610255576101da565b8063081e3eda146101df57806316048bc4146101fd57806317caf6f114610212575b600080fd5b6101e76103ee565b6040516101f491906119b0565b60405180910390f35b6102056103f4565b6040516101f49190611758565b6101e7610403565b6101e76102283660046115d7565b610409565b61024061023b3660046115bc565b610442565b005b610240610250366004611635565b610532565b6101e76102633660046115bc565b6105f2565b6101e76102763660046115bc565b610604565b61024061028936600461160b565b61065c565b6101e7610763565b610240610769565b6102406102ac36600461169d565b6107f7565b610240610931565b6102cc6102c736600461169d565b610954565b6040516101f494939291906117a9565b6101e76102ea3660046115bc565b610995565b6102406102fd3660046115bc565b6109b0565b6102406103103660046116f0565b610a27565b610205610a65565b6101e7610a74565b6103386103333660046116cd565b610a7a565b6040516101f49291906119b9565b610205610a9e565b61024061035c366004611635565b610aad565b610240610c50565b6101e76103773660046115bc565b610d46565b6101e761038a3660046115bc565b610d58565b61024061039d3660046115bc565b610f25565b6102406103b036600461160b565b610faa565b6102406103c33660046115bc565b6110cf565b6101e76103d63660046115bc565b6110e7565b6101e76103e93660046115d7565b61113b565b60045490565b6000546001600160a01b031681565b60085481565b60008061041584610604565b60009081526006602090815260408083206001600160a01b03871684529091529020549150505b92915050565b600061044d82610604565b6000818152600660209081526040808320338452909152902054909150158061049457506004818154811061047e57fe5b9060005260206000209060040201600101546000145b1561049f575061052f565b6000600482815481106104ae57fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506104df836107f7565b600061050782600101546104fb84600001548660030154611286565b9063ffffffff6112b016565b905061051b82600001548460030154611286565b600183015561052a33826112d8565b505050505b50565b6000546001600160a01b031633146105655760405162461bcd60e51b815260040161055c906118a1565b60405180910390fd5b801561057357610573610931565b600061057e84610604565b90506105c3836105b76004848154811061059457fe5b9060005260206000209060040201600101546008546112b090919063ffffffff16565b9063ffffffff6113be16565b60088190555082600482815481106105d757fe5b90600052602060002090600402016001018190555050505050565b60056020526000908152604090205481565b6001600160a01b038116600090815260056020526040812054829061063b5760405162461bcd60e51b815260040161055c906118c4565b50506001600160a01b03166000908152600560205260409020546000190190565b600061066783610604565b905060006004828154811061067857fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506106a9836107f7565b8054156106da5760006106cc82600101546104fb84600001548660030154611286565b90506106d833826112d8565b505b81546106f7906001600160a01b031633308763ffffffff6113ea16565b8054610709908563ffffffff6113be16565b808255600383015461071b9190611286565b6001820155604051839033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15906107549088906119b0565b60405180910390a35050505050565b60095481565b6001546001600160a01b031633146107935760405162461bcd60e51b815260040161055c906117cf565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006004828154811061080657fe5b9060005260206000209060040201905080600201544311610827575061052f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610857903090600401611758565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116b5565b9050806108bb57504360029091015561052f565b60006109006008546108f485600101546108e86003546108e88960020154436112b090919063ffffffff16565b9063ffffffff61144816565b9063ffffffff61148216565b905061092061090f82846114ac565b60038501549063ffffffff6113be16565b600384015550504360029091015550565b60045460005b8181101561095057610948816107f7565b600101610937565b5050565b6004818154811061096157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6001600160a01b031660009081526007602052604090205490565b60006109bb82610604565b90506000600482815481106109cc57fe5b60009182526020808320858452600682526040808520338087529352909320805460049093029093018054909450610a17926001600160a01b0391909116919063ffffffff6114ca16565b6000808255600190910155505050565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161055c906118a1565b8015610a5f57610a5f610931565b50600355565b6001546001600160a01b031681565b60035481565b60066020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b6001600160a01b038316600090815260056020526040902054839015610ae55760405162461bcd60e51b815260040161055c9061195d565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161055c906118a1565b8115610b1d57610b1d610931565b60006009544311610b3057600954610b32565b435b600854909150610b48908563ffffffff6113be16565b600855604080516080810182526001600160a01b0396871680825260208083019788528284019485526000606084018181526004805460018101825581845295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96820296870180546001600160a01b03191691909d1617909b5598517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c85015594517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d84015596517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e909201919091559554958252600590945292909220929092555050565b6004546000805b82811015610d3b5760008181526006602090815260408083203384529091529020541580610ca3575060048181548110610c8d57fe5b9060005260206000209060040201600101546000145b15610cad57610d33565b600060048281548110610cbc57fe5b60009182526020808320858452600682526040808520338652909252922060049091029091019150610ced836107f7565b610d17610d0a82600101546104fb84600001548660030154611286565b859063ffffffff6113be16565b9350610d2b81600001548360030154611286565b600190910155505b600101610c57565b5061095033826112d8565b60076020526000908152604090205481565b60045460009081805b82811015610f1d5760008181526006602090815260408083206001600160a01b03891684529091529020541580610db6575060048181548110610da057fe5b9060005260206000209060040201600101546000145b15610dc057610f15565b600060048281548110610dcf57fe5b600091825260208083208584526006825260408085206001600160a01b038c81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a0823191610e3291309101611758565b60206040518083038186803b158015610e4a57600080fd5b505afa158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8291906116b5565b9050836002015443118015610e9657508015155b15610ee8576000610ec86008546108f487600101546108e86003546108e88b60020154436112b090919063ffffffff16565b9050610ee4610ed782846114ac565b849063ffffffff6113be16565b9250505b610f0e610f0184600101546104fb866000015486611286565b879063ffffffff6113be16565b9550505050505b600101610d61565b509392505050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161055c906118a1565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fb583610604565b9050600060048281548110610fc657fe5b60009182526020808320858452600682526040808520338652909252922080546004909202909201925084111561100f5760405162461bcd60e51b815260040161055c90611876565b611018836107f7565b600061103482600101546104fb84600001548660030154611286565b905061104033826112d8565b8154611052908663ffffffff6112b016565b80835560038401546110649190611286565b60018301558254611085906001600160a01b0316338763ffffffff6114ca16565b83336001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040516110bf91906119b0565b60405180910390a3505050505050565b60006110db8233610409565b90506109508282610faa565b6000806110f383610604565b905060006004828154811061110457fe5b906000526020600020906004020190506111336008546108f4836001015460035461144890919063ffffffff16565b949350505050565b60008061114784610604565b905060006004828154811061115857fe5b600091825260208083208584526006825260408085206001600160a01b038a81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a08231916111bb91309101611758565b60206040518083038186803b1580156111d357600080fd5b505afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b91906116b5565b905083600201544311801561121f57508015155b156112645760006112516008546108f487600101546108e86003546108e88b60020154436112b090919063ffffffff16565b9050611260610ed782846114ac565b9250505b61127a83600101546104fb856000015485611286565b98975050505050505050565b6000670de0b6b3a76400006112a1848463ffffffff61144816565b816112a857fe5b049392505050565b6000828211156112d25760405162461bcd60e51b815260040161055c90611853565b50900390565b6002546040516310b3879160e11b81526001600160a01b03909116906321670f229061130a9085908590600401611790565b600060405180830381600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b5050506001600160a01b03831660009081526007602052604090205461136591508263ffffffff6113be16565b6001600160a01b038316600081815260076020526040908190209290925590517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4906113b29084906119b0565b60405180910390a25050565b6000828201838110156113e35760405162461bcd60e51b815260040161055c906118f0565b9392505050565b611442846323b872dd60e01b85858560405160240161140b9392919061176c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114ee565b50505050565b6000826114575750600061043c565b8282028284828161146457fe5b04146113e35760405162461bcd60e51b815260040161055c9061198d565b60008082116114a35760405162461bcd60e51b815260040161055c9061182b565b8183816112a857fe5b60006113e3826108f485670de0b6b3a764000063ffffffff61144816565b6114e98363a9059cbb60e01b848460405160240161140b929190611790565b505050565b60006060836001600160a01b03168360405161150a919061171f565b6000604051808303816000865af19150503d8060008114611547576040519150601f19603f3d011682016040523d82523d6000602084013e61154c565b606091505b50915091508161156e5760405162461bcd60e51b815260040161055c906117f6565b80511561144257808060200190518101906115899190611681565b6114425760405162461bcd60e51b815260040161055c90611913565b80356001600160a01b038116811461043c57600080fd5b6000602082840312156115cd578081fd5b6113e383836115a5565b600080604083850312156115e9578081fd5b6115f384846115a5565b915061160284602085016115a5565b90509250929050565b6000806040838503121561161d578182fd5b61162784846115a5565b946020939093013593505050565b600080600060608486031215611649578081fd5b83356001600160a01b038116811461165f578182fd5b9250602084013591506040840135611676816119c7565b809150509250925092565b600060208284031215611692578081fd5b81516113e3816119c7565b6000602082840312156116ae578081fd5b5035919050565b6000602082840312156116c6578081fd5b5051919050565b600080604083850312156116df578182fd5b8235915061160284602085016115a5565b60008060408385031215611702578182fd5b823591506020830135611714816119c7565b809150509250929050565b60008251815b8181101561173f5760208186018101518583015201611725565b8181111561174d5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601190820152700eed2e8d0c8e4c2ee40e8dede40daeac6d607b1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b602080825260129082015271131408151bdad95b88139bdd08115e1a5cdd60721b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b602080825260169082015275131408151bdad95b88105b1c9958591e48115e1a5cdd60521b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b918252602082015260400190565b801515811461052f57600080fdfea2646970667358221220a8bd723ed688f56f7b65ca2821868b375cd1667655d9ad125c2ac974e7ab1ee364736f6c63430006090033608060405234801561001057600080fd5b5060405161063938038061063983398101604081905261002f9161009d565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b0319166001600160a01b03929092169190911790556100cb565b6000602082840312156100ae578081fd5b81516001600160a01b03811681146100c4578182fd5b9392505050565b61055f806100da6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806316048bc41461006757806321670f22146100855780634e71e0c81461009a57806375123ff9146100a25780638456db15146100aa578063f2fde38b146100b2575b600080fd5b61006f6100c5565b60405161007c9190610433565b60405180910390f35b6100986100933660046103b0565b6100d4565b005b610098610128565b61006f6101b6565b61006f6101c5565b6100986100c036600461038e565b6101d4565b6000546001600160a01b031681565b6000546001600160a01b031633146101075760405162461bcd60e51b81526004016100fe906104bc565b60405180910390fd5b600254610124906001600160a01b0316838363ffffffff61025916565b5050565b6001546001600160a01b031633146101525760405162461bcd60e51b81526004016100fe90610460565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146101fe5760405162461bcd60e51b81526004016100fe906104bc565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6102af8363a9059cbb60e01b8484604051602401610278929190610447565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526102b4565b505050565b60006060836001600160a01b0316836040516102d091906103fa565b6000604051808303816000865af19150503d806000811461030d576040519150601f19603f3d011682016040523d82523d6000602084013e610312565b606091505b5091509150816103345760405162461bcd60e51b81526004016100fe90610487565b80511561036b578080602001905181019061034f91906103da565b61036b5760405162461bcd60e51b81526004016100fe906104df565b50505050565b80356001600160a01b038116811461038857600080fd5b92915050565b60006020828403121561039f578081fd5b6103a98383610371565b9392505050565b600080604083850312156103c2578081fd5b6103cc8484610371565b946020939093013593505050565b6000602082840312156103eb578081fd5b815180151581146103a9578182fd5b60008251815b8181101561041a5760208186018101518583015201610400565b818111156104285782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b60608201526080019056fea26469706673582212207db8a939598119439cad8a5fbc2c960bb37b3935ba122acca18c6b5e1471b67664736f6c6343000609003300000000000000000000000098878b06940ae243284ca214f92bb71a2b032b8a00000000000000000000000000000000000000000000000000000000001527d7
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636ff1c9bc11610104578063d1058e59116100a2578063f3fef3a311610071578063f3fef3a3146103a2578063fa09e630146103b5578063fb7276f4146103c8578063fe0f3a13146103db576101da565b8063d1058e5914610361578063ec83a76a14610369578063f146b8091461037c578063f2fde38b1461038f576101da565b80638af70336116100de5780638af703361461031d57806393f1a40b146103255780639599af1314610346578063bea006e01461034e576101da565b80636ff1c9bc146102ef5780637f10179f146103025780638456db1514610315576101da565b806343b55f351161017c57806351eb05a61161014b57806351eb05a61461029e578063630b5ba1146102b1578063689d84e4146102b95780636dc2cc8c146102dc576101da565b806343b55f351461026857806347e7ef241461027b57806348cd4cb11461028e5780634e71e0c814610296576101da565b806319a78f55116101b857806319a78f551461021a5780631e83409a1461022d57806334ea5389146102425780633d16433e14610255576101da565b8063081e3eda146101df57806316048bc4146101fd57806317caf6f114610212575b600080fd5b6101e76103ee565b6040516101f491906119b0565b60405180910390f35b6102056103f4565b6040516101f49190611758565b6101e7610403565b6101e76102283660046115d7565b610409565b61024061023b3660046115bc565b610442565b005b610240610250366004611635565b610532565b6101e76102633660046115bc565b6105f2565b6101e76102763660046115bc565b610604565b61024061028936600461160b565b61065c565b6101e7610763565b610240610769565b6102406102ac36600461169d565b6107f7565b610240610931565b6102cc6102c736600461169d565b610954565b6040516101f494939291906117a9565b6101e76102ea3660046115bc565b610995565b6102406102fd3660046115bc565b6109b0565b6102406103103660046116f0565b610a27565b610205610a65565b6101e7610a74565b6103386103333660046116cd565b610a7a565b6040516101f49291906119b9565b610205610a9e565b61024061035c366004611635565b610aad565b610240610c50565b6101e76103773660046115bc565b610d46565b6101e761038a3660046115bc565b610d58565b61024061039d3660046115bc565b610f25565b6102406103b036600461160b565b610faa565b6102406103c33660046115bc565b6110cf565b6101e76103d63660046115bc565b6110e7565b6101e76103e93660046115d7565b61113b565b60045490565b6000546001600160a01b031681565b60085481565b60008061041584610604565b60009081526006602090815260408083206001600160a01b03871684529091529020549150505b92915050565b600061044d82610604565b6000818152600660209081526040808320338452909152902054909150158061049457506004818154811061047e57fe5b9060005260206000209060040201600101546000145b1561049f575061052f565b6000600482815481106104ae57fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506104df836107f7565b600061050782600101546104fb84600001548660030154611286565b9063ffffffff6112b016565b905061051b82600001548460030154611286565b600183015561052a33826112d8565b505050505b50565b6000546001600160a01b031633146105655760405162461bcd60e51b815260040161055c906118a1565b60405180910390fd5b801561057357610573610931565b600061057e84610604565b90506105c3836105b76004848154811061059457fe5b9060005260206000209060040201600101546008546112b090919063ffffffff16565b9063ffffffff6113be16565b60088190555082600482815481106105d757fe5b90600052602060002090600402016001018190555050505050565b60056020526000908152604090205481565b6001600160a01b038116600090815260056020526040812054829061063b5760405162461bcd60e51b815260040161055c906118c4565b50506001600160a01b03166000908152600560205260409020546000190190565b600061066783610604565b905060006004828154811061067857fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506106a9836107f7565b8054156106da5760006106cc82600101546104fb84600001548660030154611286565b90506106d833826112d8565b505b81546106f7906001600160a01b031633308763ffffffff6113ea16565b8054610709908563ffffffff6113be16565b808255600383015461071b9190611286565b6001820155604051839033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15906107549088906119b0565b60405180910390a35050505050565b60095481565b6001546001600160a01b031633146107935760405162461bcd60e51b815260040161055c906117cf565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006004828154811061080657fe5b9060005260206000209060040201905080600201544311610827575061052f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610857903090600401611758565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116b5565b9050806108bb57504360029091015561052f565b60006109006008546108f485600101546108e86003546108e88960020154436112b090919063ffffffff16565b9063ffffffff61144816565b9063ffffffff61148216565b905061092061090f82846114ac565b60038501549063ffffffff6113be16565b600384015550504360029091015550565b60045460005b8181101561095057610948816107f7565b600101610937565b5050565b6004818154811061096157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6001600160a01b031660009081526007602052604090205490565b60006109bb82610604565b90506000600482815481106109cc57fe5b60009182526020808320858452600682526040808520338087529352909320805460049093029093018054909450610a17926001600160a01b0391909116919063ffffffff6114ca16565b6000808255600190910155505050565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161055c906118a1565b8015610a5f57610a5f610931565b50600355565b6001546001600160a01b031681565b60035481565b60066020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b6001600160a01b038316600090815260056020526040902054839015610ae55760405162461bcd60e51b815260040161055c9061195d565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161055c906118a1565b8115610b1d57610b1d610931565b60006009544311610b3057600954610b32565b435b600854909150610b48908563ffffffff6113be16565b600855604080516080810182526001600160a01b0396871680825260208083019788528284019485526000606084018181526004805460018101825581845295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96820296870180546001600160a01b03191691909d1617909b5598517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c85015594517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d84015596517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e909201919091559554958252600590945292909220929092555050565b6004546000805b82811015610d3b5760008181526006602090815260408083203384529091529020541580610ca3575060048181548110610c8d57fe5b9060005260206000209060040201600101546000145b15610cad57610d33565b600060048281548110610cbc57fe5b60009182526020808320858452600682526040808520338652909252922060049091029091019150610ced836107f7565b610d17610d0a82600101546104fb84600001548660030154611286565b859063ffffffff6113be16565b9350610d2b81600001548360030154611286565b600190910155505b600101610c57565b5061095033826112d8565b60076020526000908152604090205481565b60045460009081805b82811015610f1d5760008181526006602090815260408083206001600160a01b03891684529091529020541580610db6575060048181548110610da057fe5b9060005260206000209060040201600101546000145b15610dc057610f15565b600060048281548110610dcf57fe5b600091825260208083208584526006825260408085206001600160a01b038c81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a0823191610e3291309101611758565b60206040518083038186803b158015610e4a57600080fd5b505afa158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8291906116b5565b9050836002015443118015610e9657508015155b15610ee8576000610ec86008546108f487600101546108e86003546108e88b60020154436112b090919063ffffffff16565b9050610ee4610ed782846114ac565b849063ffffffff6113be16565b9250505b610f0e610f0184600101546104fb866000015486611286565b879063ffffffff6113be16565b9550505050505b600101610d61565b509392505050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161055c906118a1565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fb583610604565b9050600060048281548110610fc657fe5b60009182526020808320858452600682526040808520338652909252922080546004909202909201925084111561100f5760405162461bcd60e51b815260040161055c90611876565b611018836107f7565b600061103482600101546104fb84600001548660030154611286565b905061104033826112d8565b8154611052908663ffffffff6112b016565b80835560038401546110649190611286565b60018301558254611085906001600160a01b0316338763ffffffff6114ca16565b83336001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040516110bf91906119b0565b60405180910390a3505050505050565b60006110db8233610409565b90506109508282610faa565b6000806110f383610604565b905060006004828154811061110457fe5b906000526020600020906004020190506111336008546108f4836001015460035461144890919063ffffffff16565b949350505050565b60008061114784610604565b905060006004828154811061115857fe5b600091825260208083208584526006825260408085206001600160a01b038a81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a08231916111bb91309101611758565b60206040518083038186803b1580156111d357600080fd5b505afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b91906116b5565b905083600201544311801561121f57508015155b156112645760006112516008546108f487600101546108e86003546108e88b60020154436112b090919063ffffffff16565b9050611260610ed782846114ac565b9250505b61127a83600101546104fb856000015485611286565b98975050505050505050565b6000670de0b6b3a76400006112a1848463ffffffff61144816565b816112a857fe5b049392505050565b6000828211156112d25760405162461bcd60e51b815260040161055c90611853565b50900390565b6002546040516310b3879160e11b81526001600160a01b03909116906321670f229061130a9085908590600401611790565b600060405180830381600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b5050506001600160a01b03831660009081526007602052604090205461136591508263ffffffff6113be16565b6001600160a01b038316600081815260076020526040908190209290925590517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4906113b29084906119b0565b60405180910390a25050565b6000828201838110156113e35760405162461bcd60e51b815260040161055c906118f0565b9392505050565b611442846323b872dd60e01b85858560405160240161140b9392919061176c565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114ee565b50505050565b6000826114575750600061043c565b8282028284828161146457fe5b04146113e35760405162461bcd60e51b815260040161055c9061198d565b60008082116114a35760405162461bcd60e51b815260040161055c9061182b565b8183816112a857fe5b60006113e3826108f485670de0b6b3a764000063ffffffff61144816565b6114e98363a9059cbb60e01b848460405160240161140b929190611790565b505050565b60006060836001600160a01b03168360405161150a919061171f565b6000604051808303816000865af19150503d8060008114611547576040519150601f19603f3d011682016040523d82523d6000602084013e61154c565b606091505b50915091508161156e5760405162461bcd60e51b815260040161055c906117f6565b80511561144257808060200190518101906115899190611681565b6114425760405162461bcd60e51b815260040161055c90611913565b80356001600160a01b038116811461043c57600080fd5b6000602082840312156115cd578081fd5b6113e383836115a5565b600080604083850312156115e9578081fd5b6115f384846115a5565b915061160284602085016115a5565b90509250929050565b6000806040838503121561161d578182fd5b61162784846115a5565b946020939093013593505050565b600080600060608486031215611649578081fd5b83356001600160a01b038116811461165f578182fd5b9250602084013591506040840135611676816119c7565b809150509250925092565b600060208284031215611692578081fd5b81516113e3816119c7565b6000602082840312156116ae578081fd5b5035919050565b6000602082840312156116c6578081fd5b5051919050565b600080604083850312156116df578182fd5b8235915061160284602085016115a5565b60008060408385031215611702578182fd5b823591506020830135611714816119c7565b809150509250929050565b60008251815b8181101561173f5760208186018101518583015201611725565b8181111561174d5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601190820152700eed2e8d0c8e4c2ee40e8dede40daeac6d607b1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b602080825260129082015271131408151bdad95b88139bdd08115e1a5cdd60721b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b602080825260169082015275131408151bdad95b88105b1c9958591e48115e1a5cdd60521b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b918252602082015260400190565b801515811461052f57600080fdfea2646970667358221220a8bd723ed688f56f7b65ca2821868b375cd1667655d9ad125c2ac974e7ab1ee364736f6c63430006090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000098878b06940ae243284ca214f92bb71a2b032b8a00000000000000000000000000000000000000000000000000000000001527d7
-----Decoded View---------------
Arg [0] : _dodoToken (address): 0x98878B06940aE243284CA214f92Bb71a2b032B8A
Arg [1] : _startBlock (uint256): 1386455
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000098878b06940ae243284ca214f92bb71a2b032b8a
Arg [1] : 00000000000000000000000000000000000000000000000000000000001527d7
Deployed Bytecode Sourcemap
10221:11992:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12910:96;;;:::i;:::-;;;;;;;;;;;;;;;;460:22;;;:::i;:::-;;;;;;;;12017:34;;;:::i;13164:183::-;;;;;;;;;:::i;20554:617::-;;;;;;;;;:::i;:::-;;14088:390;;;;;;;;;:::i;11692:50::-;;;;;;;;;:::i;13014:142::-;;;;;;;;;:::i;18461:754::-;;;;;;;;;:::i;12108:25::-;;;:::i;1251:230::-;;;:::i;17620:719::-;;;;;;;;;:::i;17363:181::-;;;:::i;11658:27::-;;;;;;;;;:::i;:::-;;;;;;;;;;;16855:121;;;;;;;;;:::i;20202:344::-;;;;;;;;;:::i;14486:197::-;;;;;;;;;:::i;489:26::-;;;:::i;11595:27::-;;;:::i;11800:64::-;;;;;;;;;:::i;:::-;;;;;;;;;11558:30;;;:::i;13399:681::-;;;;;;;;;:::i;21179:749::-;;;:::i;11871:49::-;;;;;;;;;:::i;15613:1234::-;;;;;;;;;:::i;1078:165::-;;;;;;;;;:::i;19223:741::-;;;;;;;;;:::i;19972:159::-;;;;;;;;;:::i;16984:247::-;;;;;;;;;:::i;14740:865::-;;;;;;;;;:::i;12910:96::-;12982:9;:16;12910:96;:::o;460:22::-;;;-1:-1:-1;;;;;460:22:0;;:::o;12017:34::-;;;;:::o;13164:183::-;13244:7;13264:11;13278:16;13285:8;13278:6;:16::i;:::-;13312:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;13312:20:0;;;;;;;;;:27;;-1:-1:-1;;13164:183:0;;;;;:::o;20554:617::-;20605:11;20619:16;20626:8;20619:6;:16::i;:::-;20650:13;;;;:8;:13;;;;;;;;20664:10;20650:25;;;;;;;:32;20605:30;;-1:-1:-1;20650:37:0;;:71;;;20691:9;20701:3;20691:14;;;;;;;;;;;;;;;;;;:25;;;20720:1;20691:30;20650:71;20646:122;;;20738:7;;;20646:122;20778:21;20802:9;20812:3;20802:14;;;;;;;;;;;;;;;;20851:13;;;:8;:13;;;;;;20865:10;20851:25;;;;;;;20802:14;;;;;;;;-1:-1:-1;20887:15:0;20860:3;20887:10;:15::i;:::-;20913;20931:100;21005:4;:15;;;20931:55;20952:4;:11;;;20965:4;:20;;;20931;:55::i;:::-;:59;:100;:59;:100;:::i;:::-;20913:118;;21060:55;21081:4;:11;;;21094:4;:20;;;21060;:55::i;:::-;21042:15;;;:73;21126:37;21143:10;21155:7;21126:16;:37::i;:::-;20554:617;;;;;;:::o;14088:390::-;856:7;;-1:-1:-1;;;;;856:7:0;842:10;:21;834:43;;;;-1:-1:-1;;;834:43:0;;;;;;;;;;;;;;;;;14231:11:::1;14227:61;;;14259:17;:15;:17::i;:::-;14298:11;14312:16;14319:8;14312:6;:16::i;:::-;14298:30;;14357:63;14408:11;14357:46;14377:9;14387:3;14377:14;;;;;;;;;;;;;;;;;;:25;;;14357:15;;:19;;:46;;;;:::i;:::-;:50:::0;:63:::1;:50;:63;:::i;:::-;14339:15;:81;;;;14459:11;14431:9;14441:3;14431:14;;;;;;;;;;;;;;;;;;:25;;:39;;;;888:1;14088:390:::0;;;:::o;11692:50::-;;;;;;;;;;;;;:::o;13014:142::-;-1:-1:-1;;;;;12643:24:0;;13092:7;12643:24;;;:15;:24;;;;;;13073:8;;12635:59;;;;-1:-1:-1;;;12635:59:0;;;;;;;;;-1:-1:-1;;;;;;;13119:25:0::1;;::::0;;;:15:::1;:25;::::0;;;;;-1:-1:-1;;13119:29:0;;13014:142::o;18461:754::-;18531:11;18545:16;18552:8;18545:6;:16::i;:::-;18531:30;;18572:21;18596:9;18606:3;18596:14;;;;;;;;;;;;;;;;18645:13;;;:8;:13;;;;;;18659:10;18645:25;;;;;;;18596:14;;;;;;;;-1:-1:-1;18681:15:0;18654:3;18681:10;:15::i;:::-;18711:11;;:15;18707:226;;18743:15;18761:108;18839:4;:15;;;18761:55;18782:4;:11;;;18795:4;:20;;;18761;:55::i;:108::-;18743:126;;18884:37;18901:10;18913:7;18884:16;:37::i;:::-;18707:226;;18950:12;;18943:82;;-1:-1:-1;;;;;18950:12:0;18989:10;19010:4;19017:7;18943:82;:37;:82;:::i;:::-;19050:11;;:24;;19066:7;19050:24;:15;:24;:::i;:::-;19036:38;;;19137:20;;;;19103:55;;19036:38;19103:20;:55::i;:::-;19085:15;;;:73;19174:33;;19194:3;;19182:10;;19174:33;;;;19199:7;;19174:33;;;;;;;;;;18461:754;;;;;:::o;12108:25::-;;;;:::o;1251:230::-;1319:11;;-1:-1:-1;;;;;1319:11:0;1305:10;:25;1297:51;;;;-1:-1:-1;;;1297:51:0;;;;;;;;;1394:11;;;1385:7;;1364:42;;-1:-1:-1;;;;;1394:11:0;;;;1385:7;;;;1364:42;;;1427:11;;;;1417:21;;-1:-1:-1;;;;;;1417:21:0;;;-1:-1:-1;;;;;1427:11:0;;1417:21;;;;1449:24;;;1251:230::o;17620:719::-;17672:21;17696:9;17706:4;17696:15;;;;;;;;;;;;;;;;;;17672:39;;17742:4;:20;;;17726:12;:36;17722:75;;17779:7;;;17722:75;17833:12;;17826:45;;-1:-1:-1;;;17826:45:0;;17807:16;;-1:-1:-1;;;;;17833:12:0;;17826:30;;:45;;17865:4;;17826:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17807:64;-1:-1:-1;17886:13:0;17882:102;;-1:-1:-1;17939:12:0;17916:20;;;;:35;17966:7;;17882:102;17994:18;18015:168;18167:15;;18015:133;18132:4;:15;;;18015:98;18100:12;;18015:66;18060:4;:20;;;18015:26;:44;;:66;;;;:::i;:::-;:84;:98;:84;:98;:::i;:133::-;:151;:168;:151;:168;:::i;:::-;17994:189;;18217:68;18242:42;18263:10;18275:8;18242:20;:42::i;:::-;18217:20;;;;;:68;:24;:68;:::i;:::-;18194:20;;;:91;-1:-1:-1;;18319:12:0;18296:20;;;;:35;17620:719;:::o;17363:181::-;17425:9;:16;17408:14;17452:85;17480:6;17474:3;:12;17452:85;;;17510:15;17521:3;17510:10;:15::i;:::-;17488:5;;17452:85;;;;17363:181;:::o;11658:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11658:27:0;;;;-1:-1:-1;11658:27:0;;;:::o;16855:121::-;-1:-1:-1;;;;;16947:21:0;16920:7;16947:21;;;:14;:21;;;;;;;16855:121::o;20202:344::-;20265:11;20279:16;20286:8;20279:6;:16::i;:::-;20265:30;;20306:21;20330:9;20340:3;20330:14;;;;;;;;;;;;;;;;20379:13;;;:8;:13;;;;;;20393:10;20379:25;;;;;;;;20470:11;;20330:14;;;;;;;20422:12;;20330:14;;-1:-1:-1;20415:67:0;;-1:-1:-1;;;;;20422:12:0;;;;;20393:10;20415:67;:33;:67;:::i;:::-;20507:1;20493:15;;;20519;;;;:19;-1:-1:-1;;;20202:344:0:o;14486:197::-;856:7;;-1:-1:-1;;;;;856:7:0;842:10;:21;834:43;;;;-1:-1:-1;;;834:43:0;;;;;;;;;14580:11:::1;14576:61;;;14608:17;:15;:17::i;:::-;-1:-1:-1::0;14647:12:0::1;:28:::0;14486:197::o;489:26::-;;;-1:-1:-1;;;;;489:26:0;;:::o;11595:27::-;;;;:::o;11800:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11558:30::-;;;-1:-1:-1;;;;;11558:30:0;;:::o;13399:681::-;-1:-1:-1;;;;;12783:24:0;;;;;;:15;:24;;;;;;13533:8;;12783:29;12775:64;;;;-1:-1:-1;;;12775:64:0;;;;;;;;;856:7:::1;::::0;-1:-1:-1;;;;;856:7:0::1;842:10;:21;834:43;;;;-1:-1:-1::0;;;834:43:0::1;;;;;;;;;13568:11:::2;13564:61;;;13596:17;:15;:17::i;:::-;13635:23;13676:10;;13661:12;:25;:53;;13704:10;;13661:53;;;13689:12;13661:53;13743:15;::::0;13635:79;;-1:-1:-1;13743:32:0::2;::::0;13763:11;13743:32:::2;:19;:32;:::i;:::-;13725:15;:50:::0;13815:191:::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;13815:191:0;;::::2;::::0;;;::::2;::::0;;::::2;::::0;;;;;;;;;-1:-1:-1;13815:191:0;;;;;;13786:9:::2;:231:::0;;::::2;::::0;::::2;::::0;;;;;;;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;;13786:231:0::2;::::0;;;::::2;;::::0;;;;;;;;;;;;;;;;;;;;;;;;;14056:16;;14028:25;;;:15:::2;:25:::0;;;;;;;:44;;;;-1:-1:-1;;13399:681:0:o;21179:749::-;21234:9;:16;21217:14;;21291:582;21319:6;21313:3;:12;21291:582;;;21353:13;;;;:8;:13;;;;;;;;21367:10;21353:25;;;;;;;:32;:37;;:71;;;21394:9;21404:3;21394:14;;;;;;;;;;;;;;;;;;:25;;;21423:1;21394:30;21353:71;21349:132;;;21445:8;;21349:132;21495:21;21519:9;21529:3;21519:14;;;;;;;;;;;;;;;;21572:13;;;:8;:13;;;;;;21586:10;21572:25;;;;;;;21519:14;;;;;;;;-1:-1:-1;21612:15:0;21581:3;21612:10;:15::i;:::-;21652:121;21682:76;21742:4;:15;;;21682:55;21703:4;:11;;;21716:4;:20;;;21682;:55::i;:76::-;21652:7;;:121;:11;:121;:::i;:::-;21642:131;;21806:55;21827:4;:11;;;21840:4;:20;;;21806;:55::i;:::-;21788:15;;;;:73;-1:-1:-1;21291:582:0;21327:5;;21291:582;;;;21883:37;21900:10;21912:7;21883:16;:37::i;11871:49::-;;;;;;;;;;;;;:::o;15613:1234::-;15717:9;:16;15680:7;;;;15778:1033;15806:6;15800:3;:12;15778:1033;;;15840:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;15840:20:0;;;;;;;;;:27;:32;;:66;;;15876:9;15886:3;15876:14;;;;;;;;;;;;;;;;;;:25;;;15905:1;15876:30;15840:66;15836:127;;;15927:8;;15836:127;15977:21;16001:9;16011:3;16001:14;;;;;;;;;;;;;;;;16054:13;;;:8;:13;;;;;;-1:-1:-1;;;;;16054:20:0;;;;;;;;;;16001:14;;;;;;;16115:20;;;;16176:12;;16169:45;;-1:-1:-1;;;16169:45:0;;16001:14;;-1:-1:-1;16054:20:0;;16115;;16001:14;;16176:12;;;;;16169:30;;:45;;16208:4;;16169:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16150:64;;16248:4;:20;;;16233:12;:35;:52;;;;-1:-1:-1;16272:13:0;;;16233:52;16229:422;;;16306:18;16327:208;16519:15;;16327:165;16476:4;:15;;;16327:122;16436:12;;16327:82;16388:4;:20;;;16327:34;:60;;:82;;;;:::i;:208::-;16306:229;;16572:63;16592:42;16613:10;16625:8;16592:20;:42::i;:::-;16572:15;;:63;:19;:63;:::i;:::-;16554:81;;16229:422;;16679:120;16713:71;16768:4;:15;;;16713:50;16734:4;:11;;;16747:15;16713:20;:50::i;:71::-;16679:11;;:120;:15;:120;:::i;:::-;16665:134;;15778:1033;;;;;15814:5;;15778:1033;;;-1:-1:-1;16828:11:0;15613:1234;-1:-1:-1;;;15613:1234:0:o;1078:165::-;856:7;;-1:-1:-1;;;;;856:7:0;842:10;:21;834:43;;;;-1:-1:-1;;;834:43:0;;;;;;;;;1184:7:::1;::::0;;1158:44:::1;::::0;-1:-1:-1;;;;;1158:44:0;;::::1;::::0;1184:7;::::1;::::0;1158:44:::1;::::0;::::1;1213:11;:22:::0;;-1:-1:-1;;;;;;1213:22:0::1;-1:-1:-1::0;;;;;1213:22:0;;;::::1;::::0;;;::::1;::::0;;1078:165::o;19223:741::-;19294:11;19308:16;19315:8;19308:6;:16::i;:::-;19294:30;;19335:21;19359:9;19369:3;19359:14;;;;;;;;;;;;;;;;19408:13;;;:8;:13;;;;;;19422:10;19408:25;;;;;;;19452:11;;19359:14;;;;;;;;-1:-1:-1;19452:22:0;-1:-1:-1;19452:22:0;19444:52;;;;-1:-1:-1;;;19444:52:0;;;;;;;;;19507:15;19518:3;19507:10;:15::i;:::-;19533;19551:100;19625:4;:15;;;19551:55;19572:4;:11;;;19585:4;:20;;;19551;:55::i;:100::-;19533:118;;19662:37;19679:10;19691:7;19662:16;:37::i;:::-;19724:11;;:24;;19740:7;19724:24;:15;:24;:::i;:::-;19710:38;;;19811:20;;;;19777:55;;19710:38;19777:20;:55::i;:::-;19759:15;;;:73;19850:12;;19843:63;;-1:-1:-1;;;;;19850:12:0;19885:10;19898:7;19843:63;:33;:63;:::i;:::-;19943:3;19931:10;-1:-1:-1;;;;;19922:34:0;;19948:7;19922:34;;;;;;;;;;;;;;;19223:741;;;;;;:::o;19972:159::-;20029:15;20047:38;20064:8;20074:10;20047:16;:38::i;:::-;20029:56;;20096:27;20105:8;20115:7;20096:8;:27::i;16984:247::-;17052:7;17072:11;17086:16;17093:8;17086:6;:16::i;:::-;17072:30;;17113:21;17137:9;17147:3;17137:14;;;;;;;;;;;;;;;;;;17113:38;;17169:54;17207:15;;17169:33;17186:4;:15;;;17169:12;;:16;;:33;;;;:::i;:54::-;17162:61;16984:247;-1:-1:-1;;;;16984:247:0:o;14740:865::-;14822:7;14842:11;14856:16;14863:8;14856:6;:16::i;:::-;14842:30;;14883:21;14907:9;14917:3;14907:14;;;;;;;;;;;;;;;;14956:13;;;:8;:13;;;;;;-1:-1:-1;;;;;14956:20:0;;;;;;;;;;14907:14;;;;;;;15013:20;;;;15070:12;;15063:45;;-1:-1:-1;;;15063:45:0;;14907:14;;-1:-1:-1;14956:20:0;;15013;;14907:14;;15070:12;;;;;15063:30;;:45;;15102:4;;15063:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15044:64;;15138:4;:20;;;15123:12;:35;:52;;;;-1:-1:-1;15162:13:0;;;15123:52;15119:390;;;15192:18;15213:188;15385:15;;15213:149;15346:4;:15;;;15213:110;15310:12;;15213:74;15266:4;:20;;;15213:30;:52;;:74;;;;:::i;:188::-;15192:209;;15434:63;15454:42;15475:10;15487:8;15454:20;:42::i;15434:63::-;15416:81;;15119:390;;15526:71;15581:4;:15;;;15526:50;15547:4;:11;;;15560:15;15526:20;:50::i;:71::-;15519:78;14740:865;-1:-1:-1;;;;;;;;14740:865:0:o;3204:127::-;3272:7;3316:6;3299:13;:6;3310:1;3299:13;:10;:13;:::i;:::-;:24;;;;;;;3204:127;-1:-1:-1;;;3204:127:0:o;2357:137::-;2415:7;2448:1;2443;:6;;2435:28;;;;-1:-1:-1;;;2435:28:0;;;;;;;;;-1:-1:-1;2481:5:0;;;2357:137::o;21972:238::-;22065:15;;22048:54;;-1:-1:-1;;;22048:54:0;;-1:-1:-1;;;;;22065:15:0;;;;22048:40;;:54;;22089:3;;22094:7;;22048:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;22135:19:0;;;;;;:14;:19;;;;;;:32;;-1:-1:-1;22159:7:0;22135:32;:23;:32;:::i;:::-;-1:-1:-1;;;;;22113:19:0;;;;;;:14;:19;;;;;;;:54;;;;22183:19;;;;;;22194:7;;22183:19;;;;;;;;;;21972:238;;:::o;2502:161::-;2560:7;2592:5;;;2616:6;;;;2608:28;;;;-1:-1:-1;;;2608:28:0;;;;;;;;;2654:1;2502:161;-1:-1:-1;;;2502:161:0:o;7287:285::-;7431:133;7465:5;7508:27;;;7537:4;7543:2;7547:5;7485:68;;;;;;;;;;;;;;;-1:-1:-1;;7485:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;7485:68:0;-1:-1:-1;;;;;;7485:68:0;;;;;;;;;;7431:19;:133::i;:::-;7287:285;;;;:::o;1678:226::-;1736:7;1760:6;1756:47;;-1:-1:-1;1790:1:0;1783:8;;1756:47;1827:5;;;1831:1;1827;:5;:1;1851:5;;;;;:10;1843:32;;;;-1:-1:-1;;;1843:32:0;;;;;;;;1912:141;1970:7;2002:1;1998;:5;1990:32;;;;-1:-1:-1;;;1990:32:0;;;;;;;;;2044:1;2040;:5;;;;3478:128;3546:7;3573:25;3596:1;3573:18;:6;3584;3573:18;:10;:18;:::i;7068:211::-;7185:86;7205:5;7235:23;;;7260:2;7264:5;7212:58;;;;;;;;;;7185:86;7068:211;;;:::o;8641:1046::-;9301:12;9315:23;9350:5;-1:-1:-1;;;;;9342:19:0;9362:4;9342:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9300:67;;;;9386:7;9378:52;;;;-1:-1:-1;;;9378:52:0;;;;;;;;;9447:17;;:21;9443:237;;9602:10;9591:30;;;;;;;;;;;;;;9583:85;;;;-1:-1:-1;;;9583:85:0;;;;;;;;5:130:-1;72:20;;-1:-1;;;;;15711:54;;16192:35;;16182:2;;16241:1;;16231: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;;;;;15711:54;;16192:35;;16182:2;;-1:-1;;16231:12;16182: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;;;;;;7923:271;;3974:5;15093:12;-1:-1;15929:101;15943:6;15940:1;15937:13;15929:101;;;4118:4;16010:11;;;;;16004:18;15991:11;;;15984:39;15958:10;15929:101;;;16045:6;16042:1;16039:13;16036:2;;;-1:-1;16101:6;16096:3;16092:16;16085:27;16036:2;-1:-1;4149:16;;;;;8057:137;-1:-1;;8057:137;8201:222;-1:-1;;;;;15711:54;;;;3765:37;;8328:2;8313:18;;8299:124;8430:444;-1:-1;;;;;15711:54;;;3765:37;;15711:54;;;;8777:2;8762:18;;3765:37;8860:2;8845:18;;7874:37;;;;8613:2;8598:18;;8584:290;8881:333;-1:-1;;;;;15711:54;;;;3765:37;;9200:2;9185:18;;7874:37;9036:2;9021:18;;9007:207;9221:556;-1:-1;;;;;15711:54;;;;3765:37;;9597:2;9582:18;;7874:37;;;;9680:2;9665:18;;7874:37;9763:2;9748:18;;7874:37;9432:3;9417:19;;9403:374;9784:416;9984:2;9998:47;;;4402:2;9969:18;;;15391:19;-1:-1;;;15431:14;;;4418:36;4473:12;;;9955:245;10207:416;10407:2;10421:47;;;10392:18;;;15391:19;4760:34;15431:14;;;4740:55;4814:12;;;10378:245;10630:416;10830:2;10844:47;;;5065:2;10815:18;;;15391:19;-1:-1;;;15431:14;;;5081:37;5137:12;;;10801:245;11053:416;11253:2;11267:47;;;5388:1;11238:18;;;15391:19;-1:-1;;;15431:14;;;5403:32;5454:12;;;11224:245;11476:416;11676:2;11690:47;;;5705:2;11661:18;;;15391:19;-1:-1;;;15431:14;;;5721:40;5780:12;;;11647:245;11899:416;12099:2;12113:47;;;6031:1;12084:18;;;15391:19;-1:-1;;;15431:14;;;6046:32;6097:12;;;12070:245;12322:416;12522:2;12536:47;;;6348:2;12507:18;;;15391:19;-1:-1;;;15431:14;;;6364:41;6424:12;;;12493:245;12745:416;12945:2;12959:47;;;6675:1;12930:18;;;15391:19;-1:-1;;;15431:14;;;6690:32;6741:12;;;12916:245;13168:416;13368:2;13382:47;;;6992:2;13353:18;;;15391:19;7028:34;15431:14;;;7008:55;-1:-1;;;7083:12;;;7076:34;7129:12;;;13339:245;13591:416;13791:2;13805:47;;;7380:2;13776:18;;;15391:19;-1:-1;;;15431:14;;;7396:45;7460:12;;;13762:245;14014:416;14214:2;14228:47;;;7711:1;14199:18;;;15391:19;-1:-1;;;15431:14;;;7726:32;7777:12;;;14185:245;14437:222;7874:37;;;14564:2;14549:18;;14535:124;14666:333;7874:37;;;14985:2;14970:18;;7874:37;14821:2;14806:18;;14792:207;16257:111;16338:5;15623:13;15616:21;16316:5;16313:32;16303:2;;16359:1;;16349:12
Swarm Source
ipfs://7db8a939598119439cad8a5fbc2c960bb37b3935ba122acca18c6b5e1471b676
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in MOVR
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.