Feature Tip: Add private address tag to any address under My Name Tag !
Latest 25 from a total of 2,528 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Reset DODO Priva... | 24550583 | 6 hrs ago | IN | 0 ETH | 0.00000907 | ||||
| Create DODO Priv... | 24549268 | 11 hrs ago | IN | 0 ETH | 0.00135781 | ||||
| Create DODO Priv... | 24549229 | 11 hrs ago | IN | 0 ETH | 0.00137393 | ||||
| Create DODO Priv... | 24549161 | 11 hrs ago | IN | 0 ETH | 0.00136523 | ||||
| Create DODO Priv... | 24549104 | 11 hrs ago | IN | 0 ETH | 0.00142814 | ||||
| Reset DODO Priva... | 24543184 | 31 hrs ago | IN | 0 ETH | 0.0000162 | ||||
| Reset DODO Priva... | 24542910 | 32 hrs ago | IN | 0 ETH | 0.00002332 | ||||
| Reset DODO Priva... | 24537709 | 2 days ago | IN | 0 ETH | 0.0000245 | ||||
| Create DODO Priv... | 24534570 | 2 days ago | IN | 0 ETH | 0.00011584 | ||||
| Create DODO Priv... | 24519416 | 4 days ago | IN | 0.00000001 ETH | 0.00009342 | ||||
| Reset DODO Priva... | 24512866 | 5 days ago | IN | 0 ETH | 0.00002693 | ||||
| Create DODO Priv... | 24507940 | 6 days ago | IN | 0 ETH | 0.00008978 | ||||
| Reset DODO Priva... | 24506075 | 6 days ago | IN | 0 ETH | 0.00002206 | ||||
| Create DODO Priv... | 24493059 | 8 days ago | IN | 0 ETH | 0.00009347 | ||||
| Create DODO Priv... | 24485927 | 9 days ago | IN | 0 ETH | 0.00141123 | ||||
| Create DODO Priv... | 24482801 | 9 days ago | IN | 0 ETH | 0.00122879 | ||||
| Reset DODO Priva... | 24478322 | 10 days ago | IN | 0 ETH | 0.00001824 | ||||
| Reset DODO Priva... | 24478100 | 10 days ago | IN | 0 ETH | 0.00002351 | ||||
| Create DODO Priv... | 24466893 | 11 days ago | IN | 0.0000001 ETH | 0.000119 | ||||
| Reset DODO Priva... | 24464296 | 12 days ago | IN | 0 ETH | 0.00001397 | ||||
| Create DODO Priv... | 24459222 | 13 days ago | IN | 0.00000001 ETH | 0.00008257 | ||||
| Create DODO Priv... | 24456534 | 13 days ago | IN | 0 ETH | 0.00124949 | ||||
| Create DODO Priv... | 24454074 | 13 days ago | IN | 0 ETH | 0.00125652 | ||||
| Reset DODO Priva... | 24452747 | 13 days ago | IN | 0 ETH | 0.00002068 | ||||
| Reset DODO Priva... | 24452743 | 13 days ago | IN | 0 ETH | 0.00001997 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Deposit | 24534570 | 2 days ago | 0 ETH | ||||
| Deposit | 24519416 | 4 days ago | 0.00000001 ETH | ||||
| Deposit | 24507940 | 6 days ago | 0 ETH | ||||
| Deposit | 24466893 | 11 days ago | 0.0000001 ETH | ||||
| Deposit | 24459222 | 13 days ago | 0.00000001 ETH | ||||
| Deposit | 24432381 | 16 days ago | 0.000001 ETH | ||||
| Deposit | 24428275 | 17 days ago | 0.0000001 ETH | ||||
| Deposit | 24424705 | 17 days ago | 0.00001 ETH | ||||
| Deposit | 24423748 | 17 days ago | 0.09 ETH | ||||
| Deposit | 24414272 | 19 days ago | 0.00000001 ETH | ||||
| Deposit | 24411206 | 19 days ago | 0.0000001 ETH | ||||
| Deposit | 24394618 | 22 days ago | 0.00000001 ETH | ||||
| Deposit | 24375291 | 24 days ago | 0.00000001 ETH | ||||
| Deposit | 24375263 | 24 days ago | 0 ETH | ||||
| Deposit | 24270609 | 39 days ago | 2 ETH | ||||
| Deposit | 24267030 | 39 days ago | 0.2 ETH | ||||
| Deposit | 24260404 | 40 days ago | 0.000001 ETH | ||||
| Deposit | 24184154 | 51 days ago | 0.5 ETH | ||||
| Deposit | 24181241 | 51 days ago | 0.0000001 ETH | ||||
| Deposit | 24180543 | 51 days ago | 0.000001 ETH | ||||
| Deposit | 24152196 | 55 days ago | 0.000001 ETH | ||||
| Deposit | 24137948 | 57 days ago | 0.00000001 ETH | ||||
| Deposit | 24136434 | 58 days ago | 0.0000001 ETH | ||||
| Deposit | 24123330 | 59 days ago | 0.0001 ETH | ||||
| Deposit | 24121787 | 60 days ago | 0.000001 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DODODppProxy
Compiler Version
v0.6.9+commit.3e3065ac
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-10-11
*/
// 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/DODODppProxy.sol
/**
* @title DODODppProxy
* @author DODO Breeder
*
* @notice DODO Private Pool Proxy
*/
contract DODODppProxy 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 _DPP_FACTORY_;
// ============ Modifiers ============
modifier judgeExpired(uint256 deadLine) {
require(deadLine >= block.timestamp, "DODOCpProxy: EXPIRED");
_;
}
fallback() external payable {}
receive() external payable {}
constructor(
address payable weth,
address dodoApproveProxy,
address dppFactory
) public {
_WETH_ = weth;
_DODO_APPROVE_PROXY_ = dodoApproveProxy;
_DPP_FACTORY_ = dppFactory;
}
function createDODOPrivatePool(
address baseToken,
address quoteToken,
uint256 baseInAmount,
uint256 quoteInAmount,
uint256 lpFeeRate,
uint256 i,
uint256 k,
bool isOpenTwap,
uint256 deadLine
)
external
payable
preventReentrant
judgeExpired(deadLine)
returns (address newPrivatePool)
{
newPrivatePool = IDODOV2(_DPP_FACTORY_).createDODOPrivatePool();
address _baseToken = baseToken;
address _quoteToken = quoteToken;
_deposit(msg.sender, newPrivatePool, _baseToken, baseInAmount, _baseToken == _ETH_ADDRESS_);
_deposit(
msg.sender,
newPrivatePool,
_quoteToken,
quoteInAmount,
_quoteToken == _ETH_ADDRESS_
);
if (_baseToken == _ETH_ADDRESS_) _baseToken = _WETH_;
if (_quoteToken == _ETH_ADDRESS_) _quoteToken = _WETH_;
IDODOV2(_DPP_FACTORY_).initDODOPrivatePool(
newPrivatePool,
msg.sender,
_baseToken,
_quoteToken,
lpFeeRate,
k,
i,
isOpenTwap
);
}
function resetDODOPrivatePool(
address dppAddress,
uint256[] memory paramList, //0 - newLpFeeRate, 1 - newI, 2 - newK
uint256[] memory amountList, //0 - baseInAmount, 1 - quoteInAmount, 2 - baseOutAmount, 3- quoteOutAmount
uint8 flag, // 0 - ERC20, 1 - baseInETH, 2 - quoteInETH, 3 - baseOutETH, 4 - quoteOutETH
uint256 minBaseReserve,
uint256 minQuoteReserve,
uint256 deadLine
) external payable preventReentrant judgeExpired(deadLine) {
_deposit(
msg.sender,
dppAddress,
IDODOV2(dppAddress)._BASE_TOKEN_(),
amountList[0],
flag == 1
);
_deposit(
msg.sender,
dppAddress,
IDODOV2(dppAddress)._QUOTE_TOKEN_(),
amountList[1],
flag == 2
);
require(IDODOV2(IDODOV2(dppAddress)._OWNER_()).reset(
msg.sender,
paramList[0],
paramList[1],
paramList[2],
amountList[2],
amountList[3],
minBaseReserve,
minQuoteReserve
), "Reset Failed");
_withdraw(msg.sender, IDODOV2(dppAddress)._BASE_TOKEN_(), amountList[2], flag == 3);
_withdraw(msg.sender, IDODOV2(dppAddress)._QUOTE_TOKEN_(), amountList[3], flag == 4);
}
//====================== 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);
}
}
function _withdraw(
address payable to,
address token,
uint256 amount,
bool isETH
) internal {
if (isETH) {
if (amount > 0) {
IWETH(_WETH_).withdraw(amount);
to.transfer(amount);
}
} else {
if (amount > 0) {
SafeERC20.safeTransfer(IERC20(token), 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":"dodoApproveProxy","type":"address"},{"internalType":"address","name":"dppFactory","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"_DODO_APPROVE_PROXY_","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_DPP_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":"quoteInAmount","type":"uint256"},{"internalType":"uint256","name":"lpFeeRate","type":"uint256"},{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"uint256","name":"k","type":"uint256"},{"internalType":"bool","name":"isOpenTwap","type":"bool"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"name":"createDODOPrivatePool","outputs":[{"internalType":"address","name":"newPrivatePool","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"dppAddress","type":"address"},{"internalType":"uint256[]","name":"paramList","type":"uint256[]"},{"internalType":"uint256[]","name":"amountList","type":"uint256[]"},{"internalType":"uint8","name":"flag","type":"uint8"},{"internalType":"uint256","name":"minBaseReserve","type":"uint256"},{"internalType":"uint256","name":"minQuoteReserve","type":"uint256"},{"internalType":"uint256","name":"deadLine","type":"uint256"}],"name":"resetDODOPrivatePool","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60e060405234801561001057600080fd5b50604051610f66380380610f668339818101604052606081101561003357600080fd5b50805160208201516040909201516001600160601b0319606092831b811660805292821b831660a052901b1660c05260805160601c60a05160601c60c05160601c610ea76100bf6000398061032052806104e65280610a13525080610a375280610b5352508061025d528061042852806104725280610a675280610aef5280610bcb5250610ea76000f3fe60806040526004361061004e5760003560e01c80630d4eec8f146100575780630d9be5001461008857806312ff148d146100e6578063b730d15014610231578063eb99be121461024657610055565b3661005557005b005b34801561006357600080fd5b5061006c61025b565b604080516001600160a01b039092168252519081900360200190f35b61006c600480360361012081101561009f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060c08101359060e0810135151590610100013561027f565b610055600480360360e08110156100fc57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184602083028401116401000000008311171561015b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156101ab57600080fd5b8201836020820111156101bd57600080fd5b803590602001918460208302840111640100000000831117156101df57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505060ff8335169350505060208101359060408101359060600135610564565b34801561023d57600080fd5b5061006c610a11565b34801561025257600080fd5b5061006c610a35565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000805460ff16156102c4576040805162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015290519081900360640190fd5b6000805460ff19166001179055814281101561031e576040805162461bcd60e51b81526020600482015260146024820152731113d113d0dc141c9bde1e4e881156141254915160621b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166309b8adb86040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561037957600080fd5b505af115801561038d573d6000803e3d6000fd5b505050506040513d60208110156103a357600080fd5b505191508a8a6103d53385848e6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610a59565b6104013385838d6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610a59565b6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561044a577f000000000000000000000000000000000000000000000000000000000000000091505b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561049257507f00000000000000000000000000000000000000000000000000000000000000005b6040805162caf77f60e51b81526001600160a01b03868116600483015233602483015284811660448301528381166064830152608482018c905260a482018a905260c482018b905288151560e483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163195eefe0916101048082019260009290919082900301818387803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b50506000805460ff1916905550939d9c50505050505050505050505050565b60005460ff16156105a8576040805162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015290519081900360640190fd5b6000805460ff191660011790558042811015610602576040805162461bcd60e51b81526020600482015260146024820152731113d113d0dc141c9bde1e4e881156141254915160621b604482015290519081900360640190fd5b61068d33898a6001600160a01b0316634a248d2a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561064057600080fd5b505afa158015610654573d6000803e3d6000fd5b505050506040513d602081101561066a57600080fd5b505189518a9060009061067957fe5b60200260200101518960ff16600114610a59565b61071a33898a6001600160a01b031663d4b970466040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cb57600080fd5b505afa1580156106df573d6000803e3d6000fd5b505050506040513d60208110156106f557600080fd5b505189518a90600190811061070657fe5b60200260200101518960ff16600214610a59565b876001600160a01b03166316048bc46040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561075557600080fd5b505af1158015610769573d6000803e3d6000fd5b505050506040513d602081101561077f57600080fd5b505187516001600160a01b0390911690638ff3928c9033908a906000906107a257fe5b60200260200101518a6001815181106107b757fe5b60200260200101518b6002815181106107cc57fe5b60200260200101518b6002815181106107e157fe5b60200260200101518c6003815181106107f657fe5b60200260200101518b8b6040518963ffffffff1660e01b815260040180896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185815260200184815260200183815260200182815260200198505050505050505050602060405180830381600087803b15801561087957600080fd5b505af115801561088d573d6000803e3d6000fd5b505050506040513d60208110156108a357600080fd5b50516108e5576040805162461bcd60e51b815260206004820152600c60248201526b14995cd95d0811985a5b195960a21b604482015290519081900360640190fd5b61097133896001600160a01b0316634a248d2a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561092257600080fd5b505afa158015610936573d6000803e3d6000fd5b505050506040513d602081101561094c57600080fd5b505188518990600290811061095d57fe5b60200260200101518860ff16600314610bbd565b6109fd33896001600160a01b031663d4b970466040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ae57600080fd5b505afa1580156109c2573d6000803e3d6000fd5b505050506040513d60208110156109d857600080fd5b50518851899060039081106109e957fe5b60200260200101518860ff16600414610bbd565b50506000805460ff19169055505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b8015610b1a578115610b15577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ac057600080fd5b505af1158015610ad4573d6000803e3d6000fd5b505050506001600160a01b03851630149050610b1557610b157f00000000000000000000000000000000000000000000000000000000000000008584610c9b565b610bb6565b6040805163052f523360e11b81526001600160a01b038581166004830152878116602483015286811660448301526064820185905291517f000000000000000000000000000000000000000000000000000000000000000090921691630a5ea4669160848082019260009290919082900301818387803b158015610b9d57600080fd5b505af1158015610bb1573d6000803e3d6000fd5b505050505b5050505050565b8015610c84578115610c7f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c2f57600080fd5b505af1158015610c43573d6000803e3d6000fd5b50506040516001600160a01b038716925084156108fc02915084906000818181858888f19350505050158015610c7d573d6000803e3d6000fd5b505b610c95565b8115610c9557610c95838584610c9b565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ced908490610cf2565b505050565b60006060836001600160a01b0316836040518082805190602001908083835b60208310610d305780518252601f199092019160209182019101610d11565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d92576040519150601f19603f3d011682016040523d82523d6000602084013e610d97565b606091505b509150915081610dee576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610c9557808060200190516020811015610e0a57600080fd5b5051610c955760405162461bcd60e51b815260040180806020018281038252602a815260200180610e48602a913960400191505060405180910390fdfe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212205d0b20148aa6c0d4eae357d2744adbc08781188f0b705b9f1869a6861109d9a664736f6c63430006090033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc6190000000000000000000000005336ede8f971339f6c0e304c66ba16f1296a2fbe
Deployed Bytecode
0x60806040526004361061004e5760003560e01c80630d4eec8f146100575780630d9be5001461008857806312ff148d146100e6578063b730d15014610231578063eb99be121461024657610055565b3661005557005b005b34801561006357600080fd5b5061006c61025b565b604080516001600160a01b039092168252519081900360200190f35b61006c600480360361012081101561009f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060c08101359060e0810135151590610100013561027f565b610055600480360360e08110156100fc57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184602083028401116401000000008311171561015b57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156101ab57600080fd5b8201836020820111156101bd57600080fd5b803590602001918460208302840111640100000000831117156101df57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505060ff8335169350505060208101359060408101359060600135610564565b34801561023d57600080fd5b5061006c610a11565b34801561025257600080fd5b5061006c610a35565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6000805460ff16156102c4576040805162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015290519081900360640190fd5b6000805460ff19166001179055814281101561031e576040805162461bcd60e51b81526020600482015260146024820152731113d113d0dc141c9bde1e4e881156141254915160621b604482015290519081900360640190fd5b7f0000000000000000000000005336ede8f971339f6c0e304c66ba16f1296a2fbe6001600160a01b03166309b8adb86040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561037957600080fd5b505af115801561038d573d6000803e3d6000fd5b505050506040513d60208110156103a357600080fd5b505191508a8a6103d53385848e6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610a59565b6104013385838d6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610a59565b6001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561044a577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291505b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561049257507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b6040805162caf77f60e51b81526001600160a01b03868116600483015233602483015284811660448301528381166064830152608482018c905260a482018a905260c482018b905288151560e483015291517f0000000000000000000000005336ede8f971339f6c0e304c66ba16f1296a2fbe9092169163195eefe0916101048082019260009290919082900301818387803b15801561053157600080fd5b505af1158015610545573d6000803e3d6000fd5b50506000805460ff1916905550939d9c50505050505050505050505050565b60005460ff16156105a8576040805162461bcd60e51b815260206004820152600960248201526814915153951490539560ba1b604482015290519081900360640190fd5b6000805460ff191660011790558042811015610602576040805162461bcd60e51b81526020600482015260146024820152731113d113d0dc141c9bde1e4e881156141254915160621b604482015290519081900360640190fd5b61068d33898a6001600160a01b0316634a248d2a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561064057600080fd5b505afa158015610654573d6000803e3d6000fd5b505050506040513d602081101561066a57600080fd5b505189518a9060009061067957fe5b60200260200101518960ff16600114610a59565b61071a33898a6001600160a01b031663d4b970466040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cb57600080fd5b505afa1580156106df573d6000803e3d6000fd5b505050506040513d60208110156106f557600080fd5b505189518a90600190811061070657fe5b60200260200101518960ff16600214610a59565b876001600160a01b03166316048bc46040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561075557600080fd5b505af1158015610769573d6000803e3d6000fd5b505050506040513d602081101561077f57600080fd5b505187516001600160a01b0390911690638ff3928c9033908a906000906107a257fe5b60200260200101518a6001815181106107b757fe5b60200260200101518b6002815181106107cc57fe5b60200260200101518b6002815181106107e157fe5b60200260200101518c6003815181106107f657fe5b60200260200101518b8b6040518963ffffffff1660e01b815260040180896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185815260200184815260200183815260200182815260200198505050505050505050602060405180830381600087803b15801561087957600080fd5b505af115801561088d573d6000803e3d6000fd5b505050506040513d60208110156108a357600080fd5b50516108e5576040805162461bcd60e51b815260206004820152600c60248201526b14995cd95d0811985a5b195960a21b604482015290519081900360640190fd5b61097133896001600160a01b0316634a248d2a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561092257600080fd5b505afa158015610936573d6000803e3d6000fd5b505050506040513d602081101561094c57600080fd5b505188518990600290811061095d57fe5b60200260200101518860ff16600314610bbd565b6109fd33896001600160a01b031663d4b970466040518163ffffffff1660e01b815260040160206040518083038186803b1580156109ae57600080fd5b505afa1580156109c2573d6000803e3d6000fd5b505050506040513d60208110156109d857600080fd5b50518851899060039081106109e957fe5b60200260200101518860ff16600414610bbd565b50506000805460ff19169055505050505050565b7f0000000000000000000000005336ede8f971339f6c0e304c66ba16f1296a2fbe81565b7f000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc61981565b8015610b1a578115610b15577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015610ac057600080fd5b505af1158015610ad4573d6000803e3d6000fd5b505050506001600160a01b03851630149050610b1557610b157f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28584610c9b565b610bb6565b6040805163052f523360e11b81526001600160a01b038581166004830152878116602483015286811660448301526064820185905291517f000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc61990921691630a5ea4669160848082019260009290919082900301818387803b158015610b9d57600080fd5b505af1158015610bb1573d6000803e3d6000fd5b505050505b5050505050565b8015610c84578115610c7f577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c2f57600080fd5b505af1158015610c43573d6000803e3d6000fd5b50506040516001600160a01b038716925084156108fc02915084906000818181858888f19350505050158015610c7d573d6000803e3d6000fd5b505b610c95565b8115610c9557610c95838584610c9b565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610ced908490610cf2565b505050565b60006060836001600160a01b0316836040518082805190602001908083835b60208310610d305780518252601f199092019160209182019101610d11565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610d92576040519150601f19603f3d011682016040523d82523d6000602084013e610d97565b606091505b509150915081610dee576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115610c9557808060200190516020811015610e0a57600080fd5b5051610c955760405162461bcd60e51b815260040180806020018281038252602a815260200180610e48602a913960400191505060405180910390fdfe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212205d0b20148aa6c0d4eae357d2744adbc08781188f0b705b9f1869a6861109d9a664736f6c63430006090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc6190000000000000000000000005336ede8f971339f6c0e304c66ba16f1296a2fbe
-----Decoded View---------------
Arg [0] : weth (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
Arg [1] : dodoApproveProxy (address): 0x335aC99bb3E51BDbF22025f092Ebc1Cf2c5cC619
Arg [2] : dppFactory (address): 0x5336edE8F971339F6c0e304c66ba16F1296A2Fbe
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Arg [1] : 000000000000000000000000335ac99bb3e51bdbf22025f092ebc1cf2c5cc619
Arg [2] : 0000000000000000000000005336ede8f971339f6c0e304c66ba16f1296a2fbe
Deployed Bytecode Sourcemap
15090:4554:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15332:31;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;15332:31:0;;;;;;;;;;;;;;15983:1252;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;15983:1252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;17243:1382::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17243:1382:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17243:1382:0;;;;;;;;-1:-1:-1;17243:1382:0;;-1:-1:-1;;17243:1382:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17243:1382:0;;-1:-1:-1;;17243:1382:0;;;;;-1:-1:-1;;;17243:1382:0;;;;;;;;;;;;;;:::i;15422:38::-;;;;;;;;;;;;;:::i;15370:45::-;;;;;;;;;;;;;:::i;15332:31::-;;;:::o;15983:1252::-;16373:22;14826:9;;;;14825:10;14817:32;;;;;-1:-1:-1;;;14817:32:0;;;;;;;;;;;;-1:-1:-1;;;14817:32:0;;;;;;;;;;;;;;;14860:9;:16;;-1:-1:-1;;14860:16:0;14872:4;14860:16;;;16345:8;15586:15:::1;15574:27:::0;::::1;;15566:60;;;::::0;;-1:-1:-1;;;15566:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15566:60:0;;;;;;;;;;;;;::::1;;16438:13:::2;-1:-1:-1::0;;;;;16430:44:0::2;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;16430:46:0;;-1:-1:-1;16510:9:0;16552:10;16573:91:::2;16582:10;16430:46:::0;16510:9;16622:12;-1:-1:-1;;;;;16636:27:0;::::2;15283:42;16636:27;16573:8;:91::i;:::-;16675:170;16698:10;16723:14:::0;16752:11;16778:13;-1:-1:-1;;;;;16806:28:0;::::2;15283:42;16806:28;16675:8;:170::i;:::-;-1:-1:-1::0;;;;;16862:27:0;::::2;15283:42;16862:27;16858:52;;;16904:6;16891:19;;16858:52;-1:-1:-1::0;;;;;16925:28:0;::::2;15283:42;16925:28;16921:54;;;-1:-1:-1::0;16969:6:0::2;16921:54;16988:239;::::0;;-1:-1:-1;;;16988:239:0;;-1:-1:-1;;;;;16988:239:0;;::::2;;::::0;::::2;::::0;17074:10:::2;16988:239:::0;;;;;;::::2;::::0;;;;;;::::2;::::0;;;;;;;;;;;;;;;;;;;;;;;::::2;;::::0;;;;;;16996:13:::2;16988:42:::0;;::::2;::::0;::::2;::::0;:239;;;;;-1:-1:-1;;16988:239:0;;;;;;;;-1:-1:-1;16988:42:0;:239;::::2;;::::0;::::2;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;14911:5:0;14899:17;;-1:-1:-1;;14899:17:0;;;-1:-1:-1;15983:1252:0;;;-1:-1:-1;;;;;;;;;;;;;15983:1252:0:o;17243:1382::-;14826:9;;;;14825:10;14817:32;;;;;-1:-1:-1;;;14817:32:0;;;;;;;;;;;;-1:-1:-1;;;14817:32:0;;;;;;;;;;;;;;;14860:9;:16;;-1:-1:-1;;14860:16:0;14872:4;14860:16;;;17739:8;15586:15:::1;15574:27:::0;::::1;;15566:60;;;::::0;;-1:-1:-1;;;15566:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15566:60:0;;;;;;;;;;;;;::::1;;17760:170:::2;17783:10;17808;17841;-1:-1:-1::0;;;;;17833:32:0::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;17833:34:0;17882:13;;:10;;17893:1:::2;::::0;17882:13:::2;;;;;;;;;;17910:4;:9;;17918:1;17910:9;17760:8;:170::i;:::-;17941:171;17964:10;17989;18022;-1:-1:-1::0;;;;;18014:33:0::2;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;18014:35:0;18064:13;;:10;;18075:1:::2;::::0;18064:13;::::2;;;;;;;;;;;18092:4;:9;;18100:1;18092:9;17941:8;:171::i;:::-;18149:10;-1:-1:-1::0;;;;;18141:27:0::2;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;18141:29:0;18217:12;;-1:-1:-1;;;;;18133:44:0;;::::2;::::0;::::2;::::0;18192:10:::2;::::0;18217:9;;18227:1:::2;::::0;18217:12:::2;;;;;;;;;;18244:9;18254:1;18244:12;;;;;;;;;;;;;;18271:9;18281:1;18271:12;;;;;;;;;;;;;;18298:10;18309:1;18298:13;;;;;;;;;;;;;;18326:10;18337:1;18326:13;;;;;;;;;;;;;;18354:14;18383:15;18133:276;;;;;;;;;;;;;-1:-1:-1::0;;;;;18133:276:0::2;-1:-1:-1::0;;;;;18133:276:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;18133:276:0;18125:301:::2;;;::::0;;-1:-1:-1;;;18125:301:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;18125:301:0;;;;;;;;;;;;;::::2;;18439:83;18449:10;18469;-1:-1:-1::0;;;;;18461:32:0::2;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;18461:34:0;18497:13;;:10;;18508:1:::2;::::0;18497:13;::::2;;;;;;;;;;;18512:4;:9;;18520:1;18512:9;18439;:83::i;:::-;18533:84;18543:10;18563;-1:-1:-1::0;;;;;18555:33:0::2;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;-1:-1:-1::0;18555:35:0;18592:13;;:10;;18603:1:::2;::::0;18592:13;::::2;;;;;;;;;;;18607:4;:9;;18615:1;18607:9;18533;:84::i;:::-;-1:-1:-1::0;;14911:5:0;14899:17;;-1:-1:-1;;14899:17:0;;;-1:-1:-1;;;;;;17243:1382:0:o;15422:38::-;;;:::o;15370:45::-;;;:::o;18698:495::-;18861:5;18857:329;;;18887:10;;18883:183;;18924:6;-1:-1:-1;;;;;18918:21:0;;18947:6;18918:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;18979:19:0;;18993:4;18979:19;;-1:-1:-1;18975:75:0;;19000:50;19030:6;19039:2;19043:6;19000:22;:50::i;:::-;18857:329;;;19098:76;;;-1:-1:-1;;;19098:76:0;;-1:-1:-1;;;;;19098:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19116:20;19098:51;;;;;;:76;;;;;-1:-1:-1;;19098:76:0;;;;;;;;-1:-1:-1;19098:51:0;:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18857:329;18698:495;;;;;:::o;19201:440::-;19350:5;19346:288;;;19376:10;;19372:119;;19413:6;-1:-1:-1;;;;;19407:22:0;;19430:6;19407:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19456:19:0;;-1:-1:-1;;;;;19456:11:0;;;-1:-1:-1;19456:19:0;;;;;-1:-1:-1;19468:6:0;;19456:19;;;;19468:6;19456:11;:19;;;;;;;;;;;;;;;;;;;;;19372:119;19346:288;;;19527:10;;19523:100;;19558:49;19588:5;19596:2;19600:6;19558:22;:49::i;:::-;19201:440;;;;:::o;11082:211::-;11226:58;;;-1:-1:-1;;;;;11226:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11226:58:0;-1:-1:-1;;;11226:58:0;;;11199:86;;11219:5;;11199:19;:86::i;:::-;11082:211;;;:::o;12655:1046::-;13315:12;13329:23;13364:5;-1:-1:-1;;;;;13356:19:0;13376:4;13356:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13356:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13314:67;;;;13400:7;13392:52;;;;;-1:-1:-1;;;13392:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13461:17;;:21;13457:237;;13616:10;13605:30;;;;;;;;;;;;;;;-1:-1:-1;13605:30:0;13597:85;;;;-1:-1:-1;;;13597:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
ipfs://5d0b20148aa6c0d4eae357d2744adbc08781188f0b705b9f1869a6861109d9a6
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 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.