Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 29 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Create Crowd Poo... | 13957610 | 1540 days ago | IN | 0.2 ETH | 0.05253224 | ||||
| Create Crowd Poo... | 13860150 | 1555 days ago | IN | 0.2 ETH | 0.04894605 | ||||
| Create Crowd Poo... | 13828800 | 1560 days ago | IN | 0.2 ETH | 0.02629603 | ||||
| Create Crowd Poo... | 13602502 | 1595 days ago | IN | 0.2 ETH | 0.07199847 | ||||
| Create Crowd Poo... | 13545831 | 1604 days ago | IN | 0.2 ETH | 0.09466152 | ||||
| Create Up Crowd ... | 13257570 | 1649 days ago | IN | 0.2 ETH | 0.04162387 | ||||
| Create Crowd Poo... | 13248614 | 1651 days ago | IN | 0.2 ETH | 0.03385651 | ||||
| Create Up Crowd ... | 13230693 | 1654 days ago | IN | 0.2 ETH | 0.03216488 | ||||
| Create Crowd Poo... | 13222811 | 1655 days ago | IN | 0.2 ETH | 0.04792046 | ||||
| Create Up Crowd ... | 13208339 | 1657 days ago | IN | 0.2 ETH | 0.0305966 | ||||
| Create Crowd Poo... | 13191884 | 1660 days ago | IN | 0.2 ETH | 0.15923011 | ||||
| Create Crowd Poo... | 13125250 | 1670 days ago | IN | 0.2 ETH | 0.04442415 | ||||
| Create Crowd Poo... | 13089719 | 1675 days ago | IN | 0.2 ETH | 0.05181726 | ||||
| Create Crowd Poo... | 12957276 | 1696 days ago | IN | 0.2 ETH | 0.01482883 | ||||
| Create Crowd Poo... | 12806869 | 1720 days ago | IN | 0.2 ETH | 0.00803285 | ||||
| Create Crowd Poo... | 12735338 | 1731 days ago | IN | 0.2 ETH | 0.00742564 | ||||
| Create Up Crowd ... | 12684965 | 1739 days ago | IN | 0.2 ETH | 0.03531847 | ||||
| Create Crowd Poo... | 12615742 | 1749 days ago | IN | 0.2 ETH | 0.01723173 | ||||
| Create Crowd Poo... | 12603336 | 1751 days ago | IN | 0.2 ETH | 0.00742627 | ||||
| Create Crowd Poo... | 12534980 | 1762 days ago | IN | 0.2 ETH | 0.0111406 | ||||
| Create Crowd Poo... | 12493617 | 1768 days ago | IN | 0.2 ETH | 0.02537211 | ||||
| Create Crowd Poo... | 12474540 | 1771 days ago | IN | 0.2 ETH | 0.03543121 | ||||
| Create Crowd Poo... | 12471677 | 1772 days ago | IN | 0.2 ETH | 0.0758278 | ||||
| Create Crowd Poo... | 12463813 | 1773 days ago | IN | 0.2 ETH | 0.05544131 | ||||
| Create Crowd Poo... | 12455536 | 1774 days ago | IN | 0.2 ETH | 0.03125162 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 13957610 | 1540 days ago | 0.2 ETH | ||||
| - | 13860150 | 1555 days ago | 0.2 ETH | ||||
| - | 13828800 | 1560 days ago | 0.2 ETH | ||||
| - | 13602502 | 1595 days ago | 0.2 ETH | ||||
| - | 13545831 | 1604 days ago | 0.2 ETH | ||||
| - | 13257570 | 1649 days ago | 0.2 ETH | ||||
| - | 13248614 | 1651 days ago | 0.2 ETH | ||||
| - | 13230693 | 1654 days ago | 0.2 ETH | ||||
| - | 13222811 | 1655 days ago | 0.2 ETH | ||||
| - | 13208339 | 1657 days ago | 0.2 ETH | ||||
| - | 13191884 | 1660 days ago | 0.2 ETH | ||||
| - | 13125250 | 1670 days ago | 0.2 ETH | ||||
| - | 13089719 | 1675 days ago | 0.2 ETH | ||||
| - | 12957276 | 1696 days ago | 0.2 ETH | ||||
| - | 12806869 | 1720 days ago | 0.2 ETH | ||||
| - | 12735338 | 1731 days ago | 0.2 ETH | ||||
| - | 12684965 | 1739 days ago | 0.2 ETH | ||||
| - | 12615742 | 1749 days ago | 0.2 ETH | ||||
| - | 12603336 | 1751 days ago | 0.2 ETH | ||||
| - | 12534980 | 1762 days ago | 0.2 ETH | ||||
| - | 12493617 | 1768 days ago | 0.2 ETH | ||||
| - | 12474540 | 1771 days ago | 0.2 ETH | ||||
| - | 12471677 | 1772 days ago | 0.2 ETH | ||||
| - | 12463813 | 1773 days ago | 0.2 ETH | ||||
| - | 12455536 | 1774 days ago | 0.2 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DODOCpProxy
Compiler Version
v0.6.9+commit.3e3065ac
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-04-29
*/
// File: contracts/intf/IDODOApprove.sol
/*
Copyright 2020 DODO ZOO.
SPDX-License-Identifier: Apache-2.0
*/
pragma solidity 0.6.9;
interface IDODOApprove {
function claimTokens(address token,address who,address dest,uint256 amount) external;
function getDODOProxy() external view returns (address);
}
// File: contracts/lib/InitializableOwnable.sol
/**
* @title Ownable
* @author DODO Breeder
*
* @notice Ownership related functions
*/
contract InitializableOwnable {
address public _OWNER_;
address public _NEW_OWNER_;
bool internal _INITIALIZED_;
// ============ Events ============
event OwnershipTransferPrepared(address indexed previousOwner, address indexed newOwner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
// ============ Modifiers ============
modifier notInitialized() {
require(!_INITIALIZED_, "DODO_INITIALIZED");
_;
}
modifier onlyOwner() {
require(msg.sender == _OWNER_, "NOT_OWNER");
_;
}
// ============ Functions ============
function initOwner(address newOwner) public notInitialized {
_INITIALIZED_ = true;
_OWNER_ = newOwner;
}
function transferOwnership(address newOwner) public onlyOwner {
emit OwnershipTransferPrepared(_OWNER_, newOwner);
_NEW_OWNER_ = newOwner;
}
function claimOwnership() public {
require(msg.sender == _NEW_OWNER_, "INVALID_CLAIM");
emit OwnershipTransferred(_OWNER_, _NEW_OWNER_);
_OWNER_ = _NEW_OWNER_;
_NEW_OWNER_ = address(0);
}
}
// File: contracts/SmartRoute/DODOApproveProxy.sol
interface IDODOApproveProxy {
function isAllowedProxy(address _proxy) external view returns (bool);
function claimTokens(address token,address who,address dest,uint256 amount) external;
}
/**
* @title DODOApproveProxy
* @author DODO Breeder
*
* @notice Allow different version dodoproxy to claim from DODOApprove
*/
contract DODOApproveProxy is InitializableOwnable {
// ============ Storage ============
uint256 private constant _TIMELOCK_DURATION_ = 3 days;
mapping (address => bool) public _IS_ALLOWED_PROXY_;
uint256 public _TIMELOCK_;
address public _PENDING_ADD_DODO_PROXY_;
address public immutable _DODO_APPROVE_;
// ============ Modifiers ============
modifier notLocked() {
require(
_TIMELOCK_ <= block.timestamp,
"SetProxy is timelocked"
);
_;
}
constructor(address dodoApporve) public {
_DODO_APPROVE_ = dodoApporve;
}
function init(address owner, address[] memory proxies) external {
initOwner(owner);
for(uint i = 0; i < proxies.length; i++)
_IS_ALLOWED_PROXY_[proxies[i]] = true;
}
function unlockAddProxy(address newDodoProxy) public onlyOwner {
_TIMELOCK_ = block.timestamp + _TIMELOCK_DURATION_;
_PENDING_ADD_DODO_PROXY_ = newDodoProxy;
}
function lockAddProxy() public onlyOwner {
_PENDING_ADD_DODO_PROXY_ = address(0);
_TIMELOCK_ = 0;
}
function addDODOProxy() external onlyOwner notLocked() {
_IS_ALLOWED_PROXY_[_PENDING_ADD_DODO_PROXY_] = true;
lockAddProxy();
}
function removeDODOProxy (address oldDodoProxy) public onlyOwner {
_IS_ALLOWED_PROXY_[oldDodoProxy] = false;
}
function claimTokens(
address token,
address who,
address dest,
uint256 amount
) external {
require(_IS_ALLOWED_PROXY_[msg.sender], "DODOApproveProxy:Access restricted");
IDODOApprove(_DODO_APPROVE_).claimTokens(
token,
who,
dest,
amount
);
}
function isAllowedProxy(address _proxy) external view returns (bool) {
return _IS_ALLOWED_PROXY_[_proxy];
}
}
// File: contracts/SmartRoute/intf/IDODOV2.sol
interface IDODOV2 {
//========== Common ==================
function sellBase(address to) external returns (uint256 receiveQuoteAmount);
function sellQuote(address to) external returns (uint256 receiveBaseAmount);
function getVaultReserve() external view returns (uint256 baseReserve, uint256 quoteReserve);
function _BASE_TOKEN_() external view returns (address);
function _QUOTE_TOKEN_() external view returns (address);
function getPMMStateForCall() external view returns (
uint256 i,
uint256 K,
uint256 B,
uint256 Q,
uint256 B0,
uint256 Q0,
uint256 R
);
function getUserFeeRate(address user) external view returns (uint256 lpFeeRate, uint256 mtFeeRate);
function getDODOPoolBidirection(address token0, address token1) external view returns (address[] memory, address[] memory);
//========== DODOVendingMachine ========
function createDODOVendingMachine(
address baseToken,
address quoteToken,
uint256 lpFeeRate,
uint256 i,
uint256 k,
bool isOpenTWAP
) external returns (address newVendingMachine);
function buyShares(address to) external returns (uint256,uint256,uint256);
//========== DODOPrivatePool ===========
function createDODOPrivatePool() external returns (address newPrivatePool);
function initDODOPrivatePool(
address dppAddress,
address creator,
address baseToken,
address quoteToken,
uint256 lpFeeRate,
uint256 k,
uint256 i,
bool isOpenTwap
) external;
function reset(
address operator,
uint256 newLpFeeRate,
uint256 newI,
uint256 newK,
uint256 baseOutAmount,
uint256 quoteOutAmount,
uint256 minBaseReserve,
uint256 minQuoteReserve
) external returns (bool);
function _OWNER_() external returns (address);
//========== CrowdPooling ===========
function createCrowdPooling() external returns (address payable newCrowdPooling);
function initCrowdPooling(
address cpAddress,
address creator,
address baseToken,
address quoteToken,
uint256[] memory timeLine,
uint256[] memory valueList,
bool isOpenTWAP
) external;
function bid(address to) external;
}
// 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/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/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/intf/IWETH.sol
interface IWETH {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address src,
address dst,
uint256 wad
) external returns (bool);
function deposit() external payable;
function withdraw(uint256 wad) external;
}
// File: contracts/lib/ReentrancyGuard.sol
/**
* @title ReentrancyGuard
* @author DODO Breeder
*
* @notice Protect functions from Reentrancy Attack
*/
contract ReentrancyGuard {
// https://solidity.readthedocs.io/en/latest/control-structures.html?highlight=zero-state#scoping-and-declarations
// zero-state of _ENTERED_ is false
bool private _ENTERED_;
modifier preventReentrant() {
require(!_ENTERED_, "REENTRANT");
_ENTERED_ = true;
_;
_ENTERED_ = false;
}
}
// File: contracts/SmartRoute/proxies/DODOCpProxy.sol
/**
* @title DODOCpProxy
* @author DODO Breeder
*
* @notice CrowdPooling && UpCrowdPooling Proxy
*/
contract DODOCpProxy is ReentrancyGuard {
using SafeMath for uint256;
using SafeERC20 for IERC20;
// ============ Storage ============
address constant _ETH_ADDRESS_ = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
address public immutable _WETH_;
address public immutable _DODO_APPROVE_PROXY_;
address public immutable _UPCP_FACTORY_;
address public immutable _CP_FACTORY_;
// ============ Modifiers ============
modifier judgeExpired(uint256 deadLine) {
require(deadLine >= block.timestamp, "DODOCpProxy: EXPIRED");
_;
}
fallback() external payable {}
receive() external payable {}
constructor(
address payable weth,
address cpFactory,
address upCpFactory,
address dodoApproveProxy
) public {
_WETH_ = weth;
_CP_FACTORY_ = cpFactory;
_UPCP_FACTORY_ = upCpFactory;
_DODO_APPROVE_PROXY_ = dodoApproveProxy;
}
//============ UpCrowdPooling Functions (create) ============
function createUpCrowdPooling(
address baseToken,
address quoteToken,
uint256 baseInAmount,
uint256[] memory timeLine,
uint256[] memory valueList,
bool isOpenTWAP,
uint256 deadLine
) external payable preventReentrant judgeExpired(deadLine) returns (address payable newUpCrowdPooling) {
address _baseToken = baseToken;
address _quoteToken = quoteToken == _ETH_ADDRESS_ ? _WETH_ : quoteToken;
newUpCrowdPooling = IDODOV2(_UPCP_FACTORY_).createCrowdPooling();
_deposit(
msg.sender,
newUpCrowdPooling,
_baseToken,
baseInAmount,
false
);
(bool success, ) = newUpCrowdPooling.call{value: msg.value}("");
require(success, "DODOCpProxy: Transfer failed");
IDODOV2(_UPCP_FACTORY_).initCrowdPooling(
newUpCrowdPooling,
msg.sender,
_baseToken,
_quoteToken,
timeLine,
valueList,
isOpenTWAP
);
}
//============ CrowdPooling Functions (create) ============
function createCrowdPooling(
address baseToken,
address quoteToken,
uint256 baseInAmount,
uint256[] memory timeLine,
uint256[] memory valueList,
bool isOpenTWAP,
uint256 deadLine
) external payable preventReentrant judgeExpired(deadLine) returns (address payable newCrowdPooling) {
address _baseToken = baseToken;
address _quoteToken = quoteToken == _ETH_ADDRESS_ ? _WETH_ : quoteToken;
newCrowdPooling = IDODOV2(_CP_FACTORY_).createCrowdPooling();
_deposit(
msg.sender,
newCrowdPooling,
_baseToken,
baseInAmount,
false
);
(bool success, ) = newCrowdPooling.call{value: msg.value}("");
require(success, "DODOCpProxy: Transfer failed");
IDODOV2(_CP_FACTORY_).initCrowdPooling(
newCrowdPooling,
msg.sender,
_baseToken,
_quoteToken,
timeLine,
valueList,
isOpenTWAP
);
}
//====================== internal =======================
function _deposit(
address from,
address to,
address token,
uint256 amount,
bool isETH
) internal {
if (isETH) {
if (amount > 0) {
IWETH(_WETH_).deposit{value: amount}();
if (to != address(this)) SafeERC20.safeTransfer(IERC20(_WETH_), to, amount);
}
} else {
IDODOApproveProxy(_DODO_APPROVE_PROXY_).claimTokens(token, from, to, amount);
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address payable","name":"weth","type":"address"},{"internalType":"address","name":"cpFactory","type":"address"},{"internalType":"address","name":"upCpFactory","type":"address"},{"internalType":"address","name":"dodoApproveProxy","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"_CP_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DODO_APPROVE_PROXY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_UPCP_FACTORY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_WETH_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"uint256","name":"baseInAmount","type":"uint256"},{"internalType":"uint256[]","name":"timeLine","type":"uint256[]"},{"internalType":"uint256[]","name":"valueList","type":"uint256[]"},{"internalType":"bool","name":"isOpenTWAP","type":"bool"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"name":"createCrowdPooling","outputs":[{"internalType":"address payable","name":"newCrowdPooling","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"baseToken","type":"address"},{"internalType":"address","name":"quoteToken","type":"address"},{"internalType":"uint256","name":"baseInAmount","type":"uint256"},{"internalType":"uint256[]","name":"timeLine","type":"uint256[]"},{"internalType":"uint256[]","name":"valueList","type":"uint256[]"},{"internalType":"bool","name":"isOpenTWAP","type":"bool"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"name":"createUpCrowdPooling","outputs":[{"internalType":"address payable","name":"newUpCrowdPooling","type":"address"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
61010060405234801561001157600080fd5b50604051610f24380380610f248339818101604052608081101561003457600080fd5b508051602082015160408301516060938401516001600160601b031993851b841660805291841b831660e052831b821660c05290911b1660a05260805160601c60a05160601c60c05160601c60e05160601c610e486100dc6000398061045852806105955280610ab0525080610749528061085d528061099a525080610a8c5280610bcc525080610434528061072552806108395280610ae05280610b685250610e486000f3fe6080604052600436106100595760003560e01c8063018c9fda146100625780630d4eec8f146101c85780633afe1f4c146101dd5780638fe21dec146101f2578063eb99be121461033c578063faa980e41461035157610060565b3661006057005b005b6101ac600480360360e081101561007857600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156100b257600080fd5b8201836020820111156100c457600080fd5b803590602001918460208302840111600160201b831117156100e557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561013457600080fd5b82018360208201111561014657600080fd5b803590602001918460208302840111600160201b8311171561016757600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050505080351515915060200135610366565b604080516001600160a01b039092168252519081900360200190f35b3480156101d457600080fd5b506101ac610723565b3480156101e957600080fd5b506101ac610747565b6101ac600480360360e081101561020857600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102c457600080fd5b8201836020820111156102d657600080fd5b803590602001918460208302840111600160201b831117156102f757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050508035151591506020013561076b565b34801561034857600080fd5b506101ac610a8a565b34801561035d57600080fd5b506101ac610aae565b6000805460ff16156103ab576040805162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015290519081900360640190fd5b6000805460ff191660011790558142811015610405576040805162461bcd60e51b81526020600482015260146024820152731113d113d0dc141c9bde1e4e881156141254915160621b604482015290519081900360640190fd5b8860006001600160a01b038a1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146104325789610454565b7f00000000000000000000000000000000000000000000000000000000000000005b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166389edcf146040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156104b157600080fd5b505af11580156104c5573d6000803e3d6000fd5b505050506040513d60208110156104db57600080fd5b505193506104ed3385848c6000610ad2565b6040516000906001600160a01b0386169034908381818185875af1925050503d8060008114610538576040519150601f19603f3d011682016040523d82523d6000602084013e61053d565b606091505b5050905080610593576040805162461bcd60e51b815260206004820152601c60248201527f444f444f437050726f78793a205472616e73666572206661696c656400000000604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ecfc2db0863386868e8e8e6040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001806020018060200184151515158152602001838103835286818151815260200191508051906020019060200280838360005b8381101561068657818101518382015260200161066e565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156106c55781810151838201526020016106ad565b505050509050019950505050505050505050600060405180830381600087803b1580156106f157600080fd5b505af1158015610705573d6000803e3d6000fd5b50506000805460ff1916905550949c9b505050505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805460ff16156107b0576040805162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015290519081900360640190fd5b6000805460ff19166001179055814281101561080a576040805162461bcd60e51b81526020600482015260146024820152731113d113d0dc141c9bde1e4e881156141254915160621b604482015290519081900360640190fd5b8860006001600160a01b038a1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146108375789610859565b7f00000000000000000000000000000000000000000000000000000000000000005b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166389edcf146040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b505050506040513d60208110156108e057600080fd5b505193506108f23385848c6000610ad2565b6040516000906001600160a01b0386169034908381818185875af1925050503d806000811461093d576040519150601f19603f3d011682016040523d82523d6000602084013e610942565b606091505b5050905080610998576040805162461bcd60e51b815260206004820152601c60248201527f444f444f437050726f78793a205472616e73666572206661696c656400000000604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ecfc2db0863386868e8e8e6040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001806020018060200184151515158152602001838103835286818151815260200191508051906020019060200280838360008381101561068657818101518382015260200161066e565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b8015610b93578115610b8e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b3957600080fd5b505af1158015610b4d573d6000803e3d6000fd5b505050506001600160a01b03851630149050610b8e57610b8e7f00000000000000000000000000000000000000000000000000000000000000008584610c36565b610c2f565b6040805163052f523360e11b81526001600160a01b038581166004830152878116602483015286811660448301526064820185905291517f000000000000000000000000000000000000000000000000000000000000000090921691630a5ea4669160848082019260009290919082900301818387803b158015610c1657600080fd5b505af1158015610c2a573d6000803e3d6000fd5b505050505b5050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610c88908490610c8d565b505050565b60006060836001600160a01b0316836040518082805190602001908083835b60208310610ccb5780518252601f199092019160209182019101610cac565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d2d576040519150601f19603f3d011682016040523d82523d6000602084013e610d32565b606091505b509150915081610d89576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610de257808060200190516020811015610da557600080fd5b5051610de25760405162461bcd60e51b815260040180806020018281038252602a815260200180610de9602a913960400191505060405180910390fd5b5050505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122078370a13ff1c41d2f5b69ce7161641a9bec5fbfe07eced7b34ee3d157cddf6a964736f6c63430006090033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf2500000000000000000000000078d338f9d54e9e41872e68cb1c01d9499d87ee52000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc619
Deployed Bytecode
0x6080604052600436106100595760003560e01c8063018c9fda146100625780630d4eec8f146101c85780633afe1f4c146101dd5780638fe21dec146101f2578063eb99be121461033c578063faa980e41461035157610060565b3661006057005b005b6101ac600480360360e081101561007857600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b8111156100b257600080fd5b8201836020820111156100c457600080fd5b803590602001918460208302840111600160201b831117156100e557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561013457600080fd5b82018360208201111561014657600080fd5b803590602001918460208302840111600160201b8311171561016757600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050505080351515915060200135610366565b604080516001600160a01b039092168252519081900360200190f35b3480156101d457600080fd5b506101ac610723565b3480156101e957600080fd5b506101ac610747565b6101ac600480360360e081101561020857600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561024257600080fd5b82018360208201111561025457600080fd5b803590602001918460208302840111600160201b8311171561027557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102c457600080fd5b8201836020820111156102d657600080fd5b803590602001918460208302840111600160201b831117156102f757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050508035151591506020013561076b565b34801561034857600080fd5b506101ac610a8a565b34801561035d57600080fd5b506101ac610aae565b6000805460ff16156103ab576040805162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015290519081900360640190fd5b6000805460ff191660011790558142811015610405576040805162461bcd60e51b81526020600482015260146024820152731113d113d0dc141c9bde1e4e881156141254915160621b604482015290519081900360640190fd5b8860006001600160a01b038a1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146104325789610454565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b90507f000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf256001600160a01b03166389edcf146040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156104b157600080fd5b505af11580156104c5573d6000803e3d6000fd5b505050506040513d60208110156104db57600080fd5b505193506104ed3385848c6000610ad2565b6040516000906001600160a01b0386169034908381818185875af1925050503d8060008114610538576040519150601f19603f3d011682016040523d82523d6000602084013e61053d565b606091505b5050905080610593576040805162461bcd60e51b815260206004820152601c60248201527f444f444f437050726f78793a205472616e73666572206661696c656400000000604482015290519081900360640190fd5b7f000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf256001600160a01b031663ecfc2db0863386868e8e8e6040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001806020018060200184151515158152602001838103835286818151815260200191508051906020019060200280838360005b8381101561068657818101518382015260200161066e565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156106c55781810151838201526020016106ad565b505050509050019950505050505050505050600060405180830381600087803b1580156106f157600080fd5b505af1158015610705573d6000803e3d6000fd5b50506000805460ff1916905550949c9b505050505050505050505050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b7f00000000000000000000000078d338f9d54e9e41872e68cb1c01d9499d87ee5281565b6000805460ff16156107b0576040805162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015290519081900360640190fd5b6000805460ff19166001179055814281101561080a576040805162461bcd60e51b81526020600482015260146024820152731113d113d0dc141c9bde1e4e881156141254915160621b604482015290519081900360640190fd5b8860006001600160a01b038a1673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146108375789610859565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b90507f00000000000000000000000078d338f9d54e9e41872e68cb1c01d9499d87ee526001600160a01b03166389edcf146040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156108b657600080fd5b505af11580156108ca573d6000803e3d6000fd5b505050506040513d60208110156108e057600080fd5b505193506108f23385848c6000610ad2565b6040516000906001600160a01b0386169034908381818185875af1925050503d806000811461093d576040519150601f19603f3d011682016040523d82523d6000602084013e610942565b606091505b5050905080610998576040805162461bcd60e51b815260206004820152601c60248201527f444f444f437050726f78793a205472616e73666572206661696c656400000000604482015290519081900360640190fd5b7f00000000000000000000000078d338f9d54e9e41872e68cb1c01d9499d87ee526001600160a01b031663ecfc2db0863386868e8e8e6040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001866001600160a01b03166001600160a01b03168152602001856001600160a01b03166001600160a01b03168152602001806020018060200184151515158152602001838103835286818151815260200191508051906020019060200280838360008381101561068657818101518382015260200161066e565b7f000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc61981565b7f000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf2581565b8015610b93578115610b8e577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610b3957600080fd5b505af1158015610b4d573d6000803e3d6000fd5b505050506001600160a01b03851630149050610b8e57610b8e7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28584610c36565b610c2f565b6040805163052f523360e11b81526001600160a01b038581166004830152878116602483015286811660448301526064820185905291517f000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc61990921691630a5ea4669160848082019260009290919082900301818387803b158015610c1657600080fd5b505af1158015610c2a573d6000803e3d6000fd5b505050505b5050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610c88908490610c8d565b505050565b60006060836001600160a01b0316836040518082805190602001908083835b60208310610ccb5780518252601f199092019160209182019101610cac565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d2d576040519150601f19603f3d011682016040523d82523d6000602084013e610d32565b606091505b509150915081610d89576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610de257808060200190516020811015610da557600080fd5b5051610de25760405162461bcd60e51b815260040180806020018281038252602a815260200180610de9602a913960400191505060405180910390fd5b5050505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122078370a13ff1c41d2f5b69ce7161641a9bec5fbfe07eced7b34ee3d157cddf6a964736f6c63430006090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf2500000000000000000000000078d338f9d54e9e41872e68cb1c01d9499d87ee52000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc619
-----Decoded View---------------
Arg [0] : weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : cpFactory (address): 0xE8C9A78725D0451FA19878D5f8A3dC0D55FECF25
Arg [2] : upCpFactory (address): 0x78D338F9d54E9e41872E68cB1c01d9499d87eE52
Arg [3] : dodoApproveProxy (address): 0x335aC99bb3E51BDbF22025f092Ebc1Cf2c5cC619
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 000000000000000000000000e8c9a78725d0451fa19878d5f8a3dc0d55fecf25
Arg [2] : 00000000000000000000000078d338f9d54e9e41872e68cb1c01d9499d87ee52
Arg [3] : 000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc619
Deployed Bytecode Sourcemap
15107:3920:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17356:1100;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17356:1100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17356:1100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17356:1100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17356:1100:0;;;;;;;;-1:-1:-1;17356:1100:0;;-1:-1:-1;;;;;17356:1100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17356:1100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17356:1100:0;;-1:-1:-1;;;;17356:1100:0;;;;;-1:-1:-1;17356:1100:0;;;;:::i;:::-;;;;-1:-1:-1;;;;;17356:1100:0;;;;;;;;;;;;;;15348:31;;;;;;;;;;;;;:::i;15438:39::-;;;;;;;;;;;;;:::i;16173:1108::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16173:1108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16173:1108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16173:1108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16173:1108:0;;;;;;;;-1:-1:-1;16173:1108:0;;-1:-1:-1;;;;;16173:1108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16173:1108:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16173:1108:0;;-1:-1:-1;;;;16173:1108:0;;;;;-1:-1:-1;16173:1108:0;;;;:::i;15386:45::-;;;;;;;;;;;;;:::i;15484:37::-;;;;;;;;;;;;;:::i;17356:1100::-;17671:31;14828:9;;;;14827:10;14819:32;;;;;-1:-1:-1;;;14819:32:0;;;;;;;;;;;;-1:-1:-1;;;14819:32:0;;;;;;;;;;;;;;;14862:9;:16;;-1:-1:-1;;14862:16:0;14874:4;14862:16;;;17652:8;15647:15:::1;15635:27:::0;::::1;;15627:60;;;::::0;;-1:-1:-1;;;15627:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15627:60:0;;;;;;;;;;;;;::::1;;17736:9:::0;17715:18:::2;-1:-1:-1::0;;;;;17778:27:0;::::2;15299:42;17778:27;:49;;17817:10;17778:49;;;17808:6;17778:49;17756:71;;17874:12;-1:-1:-1::0;;;;;17866:40:0::2;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;17866:42:0;;-1:-1:-1;17921:146:0::2;17944:10;17866:42:::0;17999:10;18024:12;18051:5:::2;17921:8;:146::i;:::-;18107:42;::::0;18089:12:::2;::::0;-1:-1:-1;;;;;18107:20:0;::::2;::::0;18135:9:::2;::::0;18089:12;18107:42;18089:12;18107:42;18135:9;18107:20;:42:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18088:61;;;18168:7;18160:48;;;::::0;;-1:-1:-1;;;18160:48:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;18229:12;-1:-1:-1::0;;;;;18221:38:0::2;;18274:15;18304:10;18329;18354:11;18380:8;18403:9;18427:10;18221:227;;;;;;;;;;;;;-1:-1:-1::0;;;;;18221:227:0::2;-1:-1:-1::0;;;;;18221:227:0::2;;;;;;-1:-1:-1::0;;;;;18221:227:0::2;-1:-1:-1::0;;;;;18221:227:0::2;;;;;;-1:-1:-1::0;;;;;18221:227:0::2;-1:-1:-1::0;;;;;18221:227:0::2;;;;;;-1:-1:-1::0;;;;;18221:227:0::2;-1:-1:-1::0;;;;;18221:227:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;14913:5:0;14901:17;;-1:-1:-1;;14901:17:0;;;-1:-1:-1;17356:1100:0;;;-1:-1:-1;;;;;;;;;;;;17356:1100:0:o;15348:31::-;;;:::o;15438:39::-;;;:::o;16173:1108::-;16490:33;14828:9;;;;14827:10;14819:32;;;;;-1:-1:-1;;;14819:32:0;;;;;;;;;;;;-1:-1:-1;;;14819:32:0;;;;;;;;;;;;;;;14862:9;:16;;-1:-1:-1;;14862:16:0;14874:4;14862:16;;;16471:8;15647:15:::1;15635:27:::0;::::1;;15627:60;;;::::0;;-1:-1:-1;;;15627:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15627:60:0;;;;;;;;;;;;;::::1;;16557:9:::0;16536:18:::2;-1:-1:-1::0;;;;;16599:27:0;::::2;15299:42;16599:27;:49;;16638:10;16599:49;;;16629:6;16599:49;16577:71;;16697:14;-1:-1:-1::0;;;;;16689:42:0::2;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;16689:44:0;;-1:-1:-1;16746:148:0::2;16769:10;16689:44:::0;16826:10;16851:12;16878:5:::2;16746:8;:148::i;:::-;16926:44;::::0;16908:12:::2;::::0;-1:-1:-1;;;;;16926:22:0;::::2;::::0;16956:9:::2;::::0;16908:12;16926:44;16908:12;16926:44;16956:9;16926:22;:44:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16907:63;;;16989:7;16981:48;;;::::0;;-1:-1:-1;;;16981:48:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;17050:14;-1:-1:-1::0;;;;;17042:40:0::2;;17097:17;17129:10;17154;17179:11;17205:8;17228:9;17252:10;17042:231;;;;;;;;;;;;;-1:-1:-1::0;;;;;17042:231:0::2;-1:-1:-1::0;;;;;17042:231:0::2;;;;;;-1:-1:-1::0;;;;;17042:231:0::2;-1:-1:-1::0;;;;;17042:231:0::2;;;;;;-1:-1:-1::0;;;;;17042:231:0::2;-1:-1:-1::0;;;;;17042:231:0::2;;;;;;-1:-1:-1::0;;;;;17042:231:0::2;-1:-1:-1::0;;;;;17042:231:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::2;::::0;;;::::2;::::0;::::2;;;;15386:45:::0;;;:::o;15484:37::-;;;:::o;18529:495::-;18692:5;18688:329;;;18718:10;;18714:183;;18755:6;-1:-1:-1;;;;;18749:21:0;;18778:6;18749:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;18810:19:0;;18824:4;18810:19;;-1:-1:-1;18806:75:0;;18831:50;18861:6;18870:2;18874:6;18831:22;:50::i;:::-;18688:329;;;18929:76;;;-1:-1:-1;;;18929:76:0;;-1:-1:-1;;;;;18929:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18947:20;18929:51;;;;;;:76;;;;;-1:-1:-1;;18929:76:0;;;;;;;;-1:-1:-1;18929:51:0;:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18688:329;18529:495;;;;;:::o;11084:211::-;11228:58;;;-1:-1:-1;;;;;11228:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11228:58:0;-1:-1:-1;;;11228:58:0;;;11201:86;;11221:5;;11201:19;:86::i;:::-;11084:211;;;:::o;12657:1046::-;13317:12;13331:23;13366:5;-1:-1:-1;;;;;13358:19:0;13378:4;13358:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13358:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13316:67;;;;13402:7;13394:52;;;;;-1:-1:-1;;;13394:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13463:17;;:21;13459:237;;13618:10;13607:30;;;;;;;;;;;;;;;-1:-1:-1;13607:30:0;13599:85;;;;-1:-1:-1;;;13599:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12657:1046;;;;:::o
Swarm Source
ipfs://78370a13ff1c41d2f5b69ce7161641a9bec5fbfe07eced7b34ee3d157cddf6a9
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 32 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.