Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 739 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Lets Withdraw_on... | 10080691 | 1636 days ago | IN | 0 ETH | 0.00473033 | ||||
Lets Withdraw_on... | 10080691 | 1636 days ago | IN | 0 ETH | 0.00473033 | ||||
Lets Withdraw_on... | 9978350 | 1652 days ago | IN | 0 ETH | 0.00194262 | ||||
Lets Withdraw_on... | 9977748 | 1652 days ago | IN | 0 ETH | 0.0010959 | ||||
Lets Withdraw_on... | 9977648 | 1652 days ago | IN | 0 ETH | 0.00112095 | ||||
Lets Withdraw_on... | 9977648 | 1652 days ago | IN | 0 ETH | 0.00113117 | ||||
Lets Withdraw_on... | 9977543 | 1652 days ago | IN | 0 ETH | 0.00198643 | ||||
Lets Withdraw_on... | 9977543 | 1652 days ago | IN | 0 ETH | 0.00096968 | ||||
Lets Withdraw_on... | 9974927 | 1652 days ago | IN | 0 ETH | 0.00725374 | ||||
Lets Withdraw_on... | 9974865 | 1652 days ago | IN | 0 ETH | 0.00212027 | ||||
Lets Withdraw_on... | 9973372 | 1653 days ago | IN | 0 ETH | 0.00951139 | ||||
Lets Withdraw_on... | 9972065 | 1653 days ago | IN | 0 ETH | 0.00259758 | ||||
Lets Withdraw_on... | 9969544 | 1653 days ago | IN | 0 ETH | 0.00206454 | ||||
Lets Withdraw_on... | 9969193 | 1653 days ago | IN | 0 ETH | 0.00829611 | ||||
Lets Withdraw_on... | 9969154 | 1653 days ago | IN | 0 ETH | 0.00269655 | ||||
Lets Withdraw_on... | 9969129 | 1653 days ago | IN | 0 ETH | 0.00662146 | ||||
Lets Withdraw_on... | 9968358 | 1653 days ago | IN | 0 ETH | 0.00249065 | ||||
Lets Withdraw_on... | 9968306 | 1653 days ago | IN | 0 ETH | 0.00294657 | ||||
Lets Withdraw_on... | 9967626 | 1653 days ago | IN | 0 ETH | 0.00201163 | ||||
Lets Withdraw_on... | 9967209 | 1653 days ago | IN | 0 ETH | 0.00496627 | ||||
Lets Withdraw_on... | 9963973 | 1654 days ago | IN | 0 ETH | 0.00076146 | ||||
Lets Withdraw_on... | 9963910 | 1654 days ago | IN | 0 ETH | 0.00241387 | ||||
Lets Withdraw_on... | 9963180 | 1654 days ago | IN | 0 ETH | 0.00229851 | ||||
Lets Withdraw_on... | 9960054 | 1655 days ago | IN | 0 ETH | 0.00218957 | ||||
Lets Withdraw_on... | 9959154 | 1655 days ago | IN | 0 ETH | 0.00182476 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
9978350 | 1652 days ago | 1.26195301 ETH | ||||
9978350 | 1652 days ago | 1.26195301 ETH | ||||
9977748 | 1652 days ago | 0.05038276 ETH | ||||
9977748 | 1652 days ago | 0.05038276 ETH | ||||
9977648 | 1652 days ago | 0.15898846 ETH | ||||
9977648 | 1652 days ago | 0.15898846 ETH | ||||
9977648 | 1652 days ago | 0.15971114 ETH | ||||
9977648 | 1652 days ago | 0.15971114 ETH | ||||
9977543 | 1652 days ago | 0.24642794 ETH | ||||
9977543 | 1652 days ago | 0.24642794 ETH | ||||
9977543 | 1652 days ago | 0.26627078 ETH | ||||
9977543 | 1652 days ago | 0.26627078 ETH | ||||
9974927 | 1652 days ago | 0.68009442 ETH | ||||
9974865 | 1652 days ago | 0.01117617 ETH | ||||
9974865 | 1652 days ago | 0.01117617 ETH | ||||
9973372 | 1653 days ago | 16.64357675 ETH | ||||
9973372 | 1653 days ago | 16.64357675 ETH | ||||
9972065 | 1653 days ago | 2.84585632 ETH | ||||
9972065 | 1653 days ago | 2.84585632 ETH | ||||
9969544 | 1653 days ago | 0.04405626 ETH | ||||
9969544 | 1653 days ago | 0.04405626 ETH | ||||
9969193 | 1653 days ago | 0.00514355 ETH | ||||
9969193 | 1653 days ago | 0.00514355 ETH | ||||
9969154 | 1653 days ago | 1.2193896 ETH | ||||
9969154 | 1653 days ago | 1.2193896 ETH |
Loading...
Loading
Contract Name:
UniSwapRemoveLiquityGeneral_v1
Compiler Version
v0.5.13+commit.5b0b510c
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-02-03 */ // File: @openzeppelin/upgrades/contracts/Initializable.sol pragma solidity >=0.4.24 <0.6.0; /** * @title Initializable * * @dev Helper contract to support initializer functions. To use it, replace * the constructor with a function that has the `initializer` modifier. * WARNING: Unlike constructors, initializer functions must be manually * invoked. This applies both to deploying an Initializable contract, as well * as extending an Initializable contract via inheritance. * WARNING: When used with inheritance, manual care must be taken to not invoke * a parent initializer twice, or ensure that all initializers are idempotent, * because this is not dealt with automatically as with constructors. */ contract Initializable { /** * @dev Indicates that the contract has been initialized. */ bool private initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private initializing; /** * @dev Modifier to use in the initializer function of a contract. */ modifier initializer() { require(initializing || isConstructor() || !initialized, "Contract instance has already been initialized"); bool isTopLevelCall = !initializing; if (isTopLevelCall) { initializing = true; initialized = true; } _; if (isTopLevelCall) { initializing = false; } } /// @dev Returns true if and only if the function is running in the constructor function isConstructor() private view returns (bool) { // extcodesize checks the size of the code stored in an address, and // address returns the current address. Since the code is still not // deployed when running a constructor, any checks on its code size will // yield zero, making it an effective way to detect if a contract is // under construction or not. uint256 cs; assembly { cs := extcodesize(address) } return cs == 0; } // Reserved storage space to allow for layout changes in the future. uint256[50] private ______gap; } // File: @openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol pragma solidity ^0.5.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File: @openzeppelin/contracts-ethereum-package/contracts/token/ERC20/IERC20.sol pragma solidity ^0.5.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see {ERC20Detailed}. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `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); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts-ethereum-package/contracts/utils/ReentrancyGuard.sol pragma solidity ^0.5.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. */ contract ReentrancyGuard is Initializable { // counter to allow mutex lock with only one SSTORE operation uint256 private _guardCounter; function initialize() public initializer { // The counter starts at one to prevent changing it from zero to a non-zero // value, which is a more expensive operation. _guardCounter = 1; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { _guardCounter += 1; uint256 localCounter = _guardCounter; _; require(localCounter == _guardCounter, "ReentrancyGuard: reentrant call"); } uint256[50] private ______gap; } // File: contracts/UpdatedZaps/WIP/UniSwapRemoveLiquidityGeneral_v1.sol // Copyright (C) 2019, 2020 dipeshsukhani, nodarjonashi, toshsharma, suhailg // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // Visit <https://www.gnu.org/licenses/>for a copy of the GNU Affero General Public License /** * WARNING: This is an upgradable contract. Be careful not to disrupt * the existing storage layout when making upgrades to the contract. In particular, * existing fields should not be removed and should not have their types changed. * The order of field declarations must not be changed, and new fields must be added * below all existing declarations. * * The base contracts and the order in which they are declared must not be changed. * New fields must not be added to base contracts (unless the base contract has * reserved placeholder fields for this purpose). * * See https://docs.zeppelinos.org/docs/writing_contracts.html for more info. */ pragma solidity ^0.5.0; ///@author DeFiZap ///@notice this contract implements one click conversion from Unipool liquidity tokens to ETH interface IuniswapFactory_UniSwapRemoveLiquityGeneral_v1 { function getExchange(address token) external view returns (address exchange); } interface IuniswapExchange_UniSwapRemoveLiquityGeneral_v1 { // for removing liquidity (returns ETH removed, ERC20 Removed) function removeLiquidity( uint256 amount, uint256 min_eth, uint256 min_tokens, uint256 deadline ) external returns (uint256, uint256); // to convert ERC20 to ETH and transfer function getTokenToEthInputPrice(uint256 tokens_sold) external view returns (uint256 eth_bought); function tokenToEthTransferInput( uint256 tokens_sold, uint256 min_eth, uint256 deadline, address recipient ) external returns (uint256 eth_bought); /// -- optional function tokenToEthSwapInput( uint256 tokens_sold, uint256 min_eth, uint256 deadline ) external returns (uint256 eth_bought); // to convert ETH to ERC20 and transfer function getEthToTokenInputPrice(uint256 eth_sold) external view returns (uint256 tokens_bought); function ethToTokenTransferInput( uint256 min_tokens, uint256 deadline, address recipient ) external payable returns (uint256 tokens_bought); /// -- optional function ethToTokenSwapInput(uint256 min_tokens, uint256 deadline) external payable returns (uint256 tokens_bought); // converting ERC20 to ERC20 and transfer function tokenToTokenTransferInput( uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address token_addr ) external returns (uint256 tokens_bought); // misc function allowance(address _owner, address _spender) external view returns (uint256); function balanceOf(address _owner) external view returns (uint256); function transfer(address _to, uint256 _value) external returns (bool); function transferFrom(address from, address to, uint256 tokens) external returns (bool success); } contract UniSwapRemoveLiquityGeneral_v1 is Initializable, ReentrancyGuard { using SafeMath for uint256; // state variables // - THESE MUST ALWAYS STAY IN THE SAME LAYOUT bool private stopped; address payable public owner; IuniswapFactory_UniSwapRemoveLiquityGeneral_v1 public UniSwapFactoryAddress; uint16 public goodwill; address public dzgoodwillAddress; mapping(address => uint256) private userBalance; IERC20 public DaiTokenAddress; // events event details( IuniswapExchange_UniSwapRemoveLiquityGeneral_v1 indexed ExchangeAddress, IERC20 TokenAdddress, address _user, uint256 LiqRed, uint256 ethRec, uint256 tokenRec, string indexed func ); // circuit breaker modifiers modifier stopInEmergency { if (stopped) { revert("Temporarily Paused"); } else { _; } } modifier onlyOwner() { require(isOwner(), "you are not authorised to call this function"); _; } function initialize( address _UniSwapFactoryAddress, uint16 _goodwill, address _dzgoodwillAddress, address _DaiTokenAddress ) public initializer { ReentrancyGuard.initialize(); stopped = false; owner = msg.sender; UniSwapFactoryAddress = IuniswapFactory_UniSwapRemoveLiquityGeneral_v1( _UniSwapFactoryAddress ); goodwill = _goodwill; dzgoodwillAddress = _dzgoodwillAddress; DaiTokenAddress = IERC20(_DaiTokenAddress); } function set_new_UniSwapFactoryAddress(address _new_UniSwapFactoryAddress) public onlyOwner { UniSwapFactoryAddress = IuniswapFactory_UniSwapRemoveLiquityGeneral_v1( _new_UniSwapFactoryAddress ); } function set_new_goodwill(uint16 _new_goodwill) public onlyOwner { require( _new_goodwill > 0 && _new_goodwill < 10000, "GoodWill Value not allowed" ); goodwill = _new_goodwill; } function set_new_dzgoodwillAddress(address _new_dzgoodwillAddress) public onlyOwner { dzgoodwillAddress = _new_dzgoodwillAddress; } function LetsWithdraw_onlyETH( address _TokenContractAddress, uint256 LiquidityTokenSold ) public payable stopInEmergency nonReentrant returns (bool) { IuniswapExchange_UniSwapRemoveLiquityGeneral_v1 UniSwapExchangeContractAddress = IuniswapExchange_UniSwapRemoveLiquityGeneral_v1( UniSwapFactoryAddress.getExchange(_TokenContractAddress) ); uint256 maxtokensPermitted = UniSwapExchangeContractAddress.allowance( msg.sender, address(this) ); require( LiquidityTokenSold <= maxtokensPermitted, "Permission to DeFiZap is less than requested" ); uint256 goodwillPortion = SafeMath.div( SafeMath.mul(LiquidityTokenSold, goodwill), 10000 ); require( UniSwapExchangeContractAddress.transferFrom( msg.sender, address(this), SafeMath.sub(LiquidityTokenSold, goodwillPortion) ), "error2:defizap" ); require( UniSwapExchangeContractAddress.transferFrom( msg.sender, dzgoodwillAddress, goodwillPortion ), "error3:defizap" ); (uint256 ethReceived, uint256 erc20received) = UniSwapExchangeContractAddress .removeLiquidity( SafeMath.sub(LiquidityTokenSold, goodwillPortion), 1, 1, SafeMath.add(now, 1800) ); uint256 eth_againstERC20 = UniSwapExchangeContractAddress .getTokenToEthInputPrice(erc20received); IERC20(_TokenContractAddress).approve( address(UniSwapExchangeContractAddress), erc20received ); UniSwapExchangeContractAddress.tokenToEthTransferInput( erc20received, SafeMath.div(SafeMath.mul(eth_againstERC20, 98), 100), SafeMath.add(now, 1800), msg.sender ); userBalance[msg.sender] = ethReceived; require(send_out_eth(msg.sender), "issue in transfer ETH"); emit details( UniSwapExchangeContractAddress, IERC20(_TokenContractAddress), msg.sender, SafeMath.sub(LiquidityTokenSold, goodwillPortion), ethReceived, erc20received, "onlyETH" ); return true; } function LetsWithdraw_onlyERC( address _TokenContractAddress, uint256 LiquidityTokenSold, bool _returnInDai ) public payable stopInEmergency nonReentrant returns (bool) { IuniswapExchange_UniSwapRemoveLiquityGeneral_v1 UniSwapExchangeContractAddress = IuniswapExchange_UniSwapRemoveLiquityGeneral_v1( UniSwapFactoryAddress.getExchange(_TokenContractAddress) ); IuniswapExchange_UniSwapRemoveLiquityGeneral_v1 DAIUniSwapExchangeContractAddress = IuniswapExchange_UniSwapRemoveLiquityGeneral_v1( UniSwapFactoryAddress.getExchange(address(DaiTokenAddress)) ); uint256 maxtokensPermitted = UniSwapExchangeContractAddress.allowance( msg.sender, address(this) ); require( LiquidityTokenSold <= maxtokensPermitted, "Permission to DeFiZap is less than requested" ); uint256 goodwillPortion = SafeMath.div( SafeMath.mul(LiquidityTokenSold, goodwill), 10000 ); require( UniSwapExchangeContractAddress.transferFrom( msg.sender, address(this), SafeMath.sub(LiquidityTokenSold, goodwillPortion) ), "error2:defizap" ); require( UniSwapExchangeContractAddress.transferFrom( msg.sender, dzgoodwillAddress, goodwillPortion ), "error3:defizap" ); (uint256 ethReceived, uint256 erc20received) = UniSwapExchangeContractAddress .removeLiquidity( SafeMath.sub(LiquidityTokenSold, goodwillPortion), 1, 1, SafeMath.add(now, 1800) ); if (_returnInDai) { require( _TokenContractAddress != address(DaiTokenAddress), "error5:defizap" ); DAIUniSwapExchangeContractAddress.ethToTokenTransferInput.value( ethReceived )(1, SafeMath.add(now, 1800), msg.sender); IERC20(_TokenContractAddress).approve( address(UniSwapExchangeContractAddress), erc20received ); UniSwapExchangeContractAddress.tokenToTokenTransferInput( erc20received, 1, 1, SafeMath.add(now, 1800), msg.sender, address(DaiTokenAddress) ); emit details( UniSwapExchangeContractAddress, IERC20(_TokenContractAddress), msg.sender, SafeMath.sub(LiquidityTokenSold, goodwillPortion), ethReceived, erc20received, "onlyDAI" ); } else { UniSwapExchangeContractAddress.ethToTokenTransferInput.value( ethReceived )(1, SafeMath.add(now, 1800), msg.sender); IERC20(_TokenContractAddress).transfer(msg.sender, erc20received); emit details( UniSwapExchangeContractAddress, IERC20(_TokenContractAddress), msg.sender, SafeMath.sub(LiquidityTokenSold, goodwillPortion), ethReceived, erc20received, "onlyERC" ); } return true; } function send_out_eth(address _towhomtosendtheETH) internal returns (bool) { require(userBalance[_towhomtosendtheETH] > 0, "error4:DefiZap"); uint256 amount = userBalance[_towhomtosendtheETH]; userBalance[_towhomtosendtheETH] = 0; (bool success, ) = _towhomtosendtheETH.call.value(amount)(""); require(success, "error5:DefiZap"); return true; } // - fallback function let you / anyone send ETH to this wallet without the need to call any function function() external payable {} // Should there be a need to withdraw any other ERC20 token function withdrawERC20Token(IERC20 _targetContractAddress) public onlyOwner { uint256 OtherTokenBalance = _targetContractAddress.balanceOf( address(this) ); _targetContractAddress.transfer(owner, OtherTokenBalance); } // - to Pause the contract function toggleContractActive() public onlyOwner { stopped = !stopped; } // - to withdraw any ETH balance sitting in the contract function withdraw() public onlyOwner { owner.transfer(address(this).balance); } // - to kill the contract function destruct() public onlyOwner { selfdestruct(owner); } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns (bool) { return msg.sender == owner; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address payable newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address payable newOwner) internal { require( newOwner != address(0), "Ownable: new owner is the zero address" ); owner = newOwner; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IuniswapExchange_UniSwapRemoveLiquityGeneral_v1","name":"ExchangeAddress","type":"address"},{"indexed":false,"internalType":"contract IERC20","name":"TokenAdddress","type":"address"},{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"LiqRed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethRec","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenRec","type":"uint256"},{"indexed":true,"internalType":"string","name":"func","type":"string"}],"name":"details","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"DaiTokenAddress","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_TokenContractAddress","type":"address"},{"internalType":"uint256","name":"LiquidityTokenSold","type":"uint256"},{"internalType":"bool","name":"_returnInDai","type":"bool"}],"name":"LetsWithdraw_onlyERC","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_TokenContractAddress","type":"address"},{"internalType":"uint256","name":"LiquidityTokenSold","type":"uint256"}],"name":"LetsWithdraw_onlyETH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"UniSwapFactoryAddress","outputs":[{"internalType":"contract IuniswapFactory_UniSwapRemoveLiquityGeneral_v1","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destruct","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dzgoodwillAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"goodwill","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_UniSwapFactoryAddress","type":"address"},{"internalType":"uint16","name":"_goodwill","type":"uint16"},{"internalType":"address","name":"_dzgoodwillAddress","type":"address"},{"internalType":"address","name":"_DaiTokenAddress","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_UniSwapFactoryAddress","type":"address"}],"name":"set_new_UniSwapFactoryAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_new_dzgoodwillAddress","type":"address"}],"name":"set_new_dzgoodwillAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint16","name":"_new_goodwill","type":"uint16"}],"name":"set_new_goodwill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"toggleContractActive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_targetContractAddress","type":"address"}],"name":"withdrawERC20Token","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50611fa2806100206000396000f3fe6080604052600436106101095760003560e01c8063849e25f411610095578063b10e1dbc11610064578063b10e1dbc146102f5578063c3a8fcb014610323578063f2fde38b14610338578063f882cbcc1461036b578063fa6723421461039f57610109565b8063849e25f4146102515780638da5cb5b146102845780638f32d59b14610299578063ae4de7fa146102c257610109565b80633ccfd60b116100dc5780633ccfd60b14610199578063525d509e146101ae5780635de0398e146101c357806367abbc82146101ef5780638129fc1c1461023c57610109565b80631385d24c1461010b5780632a0d86d9146101205780632b68b9c6146101515780633bdebbe114610166575b005b34801561011757600080fd5b506101096103cb565b34801561012c57600080fd5b50610135610422565b604080516001600160a01b039092168252519081900360200190f35b34801561015d57600080fd5b50610109610431565b34801561017257600080fd5b506101096004803603602081101561018957600080fd5b50356001600160a01b0316610487565b3480156101a557600080fd5b506101096105ce565b3480156101ba57600080fd5b50610135610655565b3480156101cf57600080fd5b506101d8610664565b6040805161ffff9092168252519081900360200190f35b3480156101fb57600080fd5b506101096004803603608081101561021257600080fd5b506001600160a01b03813581169161ffff6020820135169160408201358116916060013516610675565b34801561024857600080fd5b5061010961078b565b34801561025d57600080fd5b506101096004803603602081101561027457600080fd5b50356001600160a01b0316610831565b34801561029057600080fd5b50610135610896565b3480156102a557600080fd5b506102ae6108aa565b604080519115158252519081900360200190f35b3480156102ce57600080fd5b50610109600480360360208110156102e557600080fd5b50356001600160a01b03166108c0565b34801561030157600080fd5b506101096004803603602081101561031857600080fd5b503561ffff16610925565b34801561032f57600080fd5b506101356109f4565b34801561034457600080fd5b506101096004803603602081101561035b57600080fd5b50356001600160a01b0316610a03565b6102ae6004803603606081101561038157600080fd5b506001600160a01b0381351690602081013590604001351515610a4f565b6102ae600480360360408110156103b557600080fd5b506001600160a01b0381351690602001356113c8565b6103d36108aa565b61040e5760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b6066805460ff19811660ff90911615179055565b606a546001600160a01b031681565b6104396108aa565b6104745760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b60665461010090046001600160a01b0316ff5b61048f6108aa565b6104ca5760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561051457600080fd5b505afa158015610528573d6000803e3d6000fd5b505050506040513d602081101561053e57600080fd5b50516066546040805163a9059cbb60e01b81526101009092046001600160a01b03908116600484015260248301849052905192935084169163a9059cbb916044808201926020929091908290030181600087803b15801561059e57600080fd5b505af11580156105b2573d6000803e3d6000fd5b505050506040513d60208110156105c857600080fd5b50505050565b6105d66108aa565b6106115760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b6066546040516001600160a01b036101009092049190911690303180156108fc02916000818181858888f19350505050158015610652573d6000803e3d6000fd5b50565b6067546001600160a01b031681565b606754600160a01b900461ffff1681565b600054610100900460ff168061068e575061068e611ae4565b8061069c575060005460ff16155b6106d75760405162461bcd60e51b815260040180806020018281038252602e815260200180611f14602e913960400191505060405180910390fd5b600054610100900460ff16158015610702576000805460ff1961ff0019909116610100171660011790555b61070a61078b565b606680546001600160a81b0319166101003302179055606780546001600160a01b03199081166001600160a01b038881169190911761ffff60a01b1916600160a01b61ffff89160217909255606880548216868416179055606a80549091169184169190911790558015610784576000805461ff00191690555b5050505050565b600054610100900460ff16806107a457506107a4611ae4565b806107b2575060005460ff16155b6107ed5760405162461bcd60e51b815260040180806020018281038252602e815260200180611f14602e913960400191505060405180910390fd5b600054610100900460ff16158015610818576000805460ff1961ff0019909116610100171660011790555b60016033558015610652576000805461ff001916905550565b6108396108aa565b6108745760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b606880546001600160a01b0319166001600160a01b0392909216919091179055565b60665461010090046001600160a01b031681565b60665461010090046001600160a01b0316331490565b6108c86108aa565b6109035760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b606780546001600160a01b0319166001600160a01b0392909216919091179055565b61092d6108aa565b6109685760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b60008161ffff1611801561098157506127108161ffff16105b6109d2576040805162461bcd60e51b815260206004820152601a60248201527f476f6f6457696c6c2056616c7565206e6f7420616c6c6f776564000000000000604482015290519081900360640190fd5b6067805461ffff909216600160a01b0261ffff60a01b19909216919091179055565b6068546001600160a01b031681565b610a0b6108aa565b610a465760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b61065281611aea565b60665460009060ff1615610a9f576040805162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015290519081900360640190fd5b6033805460010190819055606754604080516303795fb160e11b81526001600160a01b038881166004830152915160009392909216916306f2bf6291602480820192602092909190829003018186803b158015610afb57600080fd5b505afa158015610b0f573d6000803e3d6000fd5b505050506040513d6020811015610b2557600080fd5b5051606754606a54604080516303795fb160e11b81526001600160a01b039283166004820152905193945060009391909216916306f2bf62916024808301926020929190829003018186803b158015610b7d57600080fd5b505afa158015610b91573d6000803e3d6000fd5b505050506040513d6020811015610ba757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192506000916001600160a01b0385169163dd62ed3e916044808301926020929190829003018186803b158015610bfb57600080fd5b505afa158015610c0f573d6000803e3d6000fd5b505050506040513d6020811015610c2557600080fd5b5051905080871115610c685760405162461bcd60e51b815260040180806020018281038252602c815260200180611f42602c913960400191505060405180910390fd5b606754600090610c9090610c88908a90600160a01b900461ffff16611b57565b612710611bb7565b9050836001600160a01b03166323b872dd3330610cad8c86611bf9565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015610d1557600080fd5b505af1158015610d29573d6000803e3d6000fd5b505050506040513d6020811015610d3f57600080fd5b5051610d83576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72323a646566697a61760941b604482015290519081900360640190fd5b606854604080516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481018490529051918616916323b872dd916064808201926020929091908290030181600087803b158015610ddf57600080fd5b505af1158015610df3573d6000803e3d6000fd5b505050506040513d6020811015610e0957600080fd5b5051610e4d576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72333a646566697a61760941b604482015290519081900360640190fd5b600080856001600160a01b031663f88bf15a610e698c86611bf9565b600180610e7842610708611c3b565b6040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018281526020019450505050506040805180830381600087803b158015610ec257600080fd5b505af1158015610ed6573d6000803e3d6000fd5b505050506040513d6040811015610eec57600080fd5b508051602090910151909250905088156111b957606a546001600160a01b038c811691161415610f54576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72353a646566697a61760941b604482015290519081900360640190fd5b846001600160a01b031663ad65d76d836001610f7242610708611c3b565b336040518563ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b0316815260200193505050506020604051808303818588803b158015610fc857600080fd5b505af1158015610fdc573d6000803e3d6000fd5b50505050506040513d6020811015610ff357600080fd5b50506040805163095ea7b360e01b81526001600160a01b038881166004830152602482018490529151918d169163095ea7b3916044808201926020929091908290030181600087803b15801561104857600080fd5b505af115801561105c573d6000803e3d6000fd5b505050506040513d602081101561107257600080fd5b50506001600160a01b03861663f552d91b8260018061109342610708611c3b565b606a54604080516001600160e01b031960e089901b16815260048101969096526024860194909452604485019290925260648401523360848401526001600160a01b031660a48301525160c48083019260209291908290030181600087803b1580156110fe57600080fd5b505af1158015611112573d6000803e3d6000fd5b505050506040513d602081101561112857600080fd5b505060408051666f6e6c7944414960c81b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038d3361117d8f89611bf9565b604080516001600160a01b03948516815292909316602083015281830152606081018790526080810186905290519081900360a00190a3611360565b856001600160a01b031663ad65d76d8360016111d742610708611c3b565b336040518563ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b0316815260200193505050506020604051808303818588803b15801561122d57600080fd5b505af1158015611241573d6000803e3d6000fd5b50505050506040513d602081101561125857600080fd5b50506040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b038d169163a9059cbb9160448083019260209291908290030181600087803b1580156112a957600080fd5b505af11580156112bd573d6000803e3d6000fd5b505050506040513d60208110156112d357600080fd5b505060408051666f6e6c7945524360c81b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038d336113288f89611bf9565b604080516001600160a01b03948516815292909316602083015281830152606081018790526080810186905290519081900360a00190a35b6001975050505050505060335481146113c0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b509392505050565b60665460009060ff1615611418576040805162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015290519081900360640190fd5b6033805460010190819055606754604080516303795fb160e11b81526001600160a01b038781166004830152915160009392909216916306f2bf6291602480820192602092909190829003018186803b15801561147457600080fd5b505afa158015611488573d6000803e3d6000fd5b505050506040513d602081101561149e57600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192506000916001600160a01b0384169163dd62ed3e916044808301926020929190829003018186803b1580156114f257600080fd5b505afa158015611506573d6000803e3d6000fd5b505050506040513d602081101561151c57600080fd5b505190508085111561155f5760405162461bcd60e51b815260040180806020018281038252602c815260200180611f42602c913960400191505060405180910390fd5b60675460009061157f90610c88908890600160a01b900461ffff16611b57565b9050826001600160a01b03166323b872dd333061159c8a86611bf9565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050506040513d602081101561162e57600080fd5b5051611672576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72323a646566697a61760941b604482015290519081900360640190fd5b606854604080516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481018490529051918516916323b872dd916064808201926020929091908290030181600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b505050506040513d60208110156116f857600080fd5b505161173c576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72333a646566697a61760941b604482015290519081900360640190fd5b600080846001600160a01b031663f88bf15a6117588a86611bf9565b60018061176742610708611c3b565b6040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018281526020019450505050506040805180830381600087803b1580156117b157600080fd5b505af11580156117c5573d6000803e3d6000fd5b505050506040513d60408110156117db57600080fd5b508051602091820151604080516395b68fe760e01b81526004810183905290519295509093506000926001600160a01b038916926395b68fe7926024808201939291829003018186803b15801561183157600080fd5b505afa158015611845573d6000803e3d6000fd5b505050506040513d602081101561185b57600080fd5b50516040805163095ea7b360e01b81526001600160a01b038981166004830152602482018690529151929350908c169163095ea7b3916044808201926020929091908290030181600087803b1580156118b357600080fd5b505af11580156118c7573d6000803e3d6000fd5b505050506040513d60208110156118dd57600080fd5b50506001600160a01b038616637237e031836119046118fd856062611b57565b6064611bb7565b61191042610708611c3b565b604080516001600160e01b031960e087901b1681526004810194909452602484019290925260448301523360648301525160848083019260209291908290030181600087803b15801561196257600080fd5b505af1158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50503360008181526069602052604090208490556119a990611c95565b6119f2576040805162461bcd60e51b81526020600482015260156024820152740d2e6e6eaca40d2dc40e8e4c2dce6cccae4408aa89605b1b604482015290519081900360640190fd5b60408051660dedcd8f28aa8960cb1b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038c33611a458e8a611bf9565b604080516001600160a01b03948516815292909316602083015281830152606081018890526080810187905290519081900360a00190a3600197505050505050506033548114611adc576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505b92915050565b303b1590565b6001600160a01b038116611b2f5760405162461bcd60e51b8152600401808060200182810382526026815260200180611ea16026913960400191505060405180910390fd5b606680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600082611b6657506000611ade565b82820282848281611b7357fe5b0414611bb05760405162461bcd60e51b8152600401808060200182810382526021815260200180611ef36021913960400191505060405180910390fd5b9392505050565b6000611bb083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611da4565b6000611bb083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e46565b600082820183811015611bb0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260696020526040812054611cf0576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72343a446566695a61760941b604482015290519081900360640190fd5b6001600160a01b038216600081815260696020526040808220805490839055905190929083908381818185875af1925050503d8060008114611d4e576040519150601f19603f3d011682016040523d82523d6000602084013e611d53565b606091505b5050905080611d9a576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72353a446566695a61760941b604482015290519081900360640190fd5b5060019392505050565b60008183611e305760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611df5578181015183820152602001611ddd565b50505050905090810190601f168015611e225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e3c57fe5b0495945050505050565b60008184841115611e985760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611df5578181015183820152602001611ddd565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373796f7520617265206e6f7420617574686f726973656420746f2063616c6c20746869732066756e6374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645065726d697373696f6e20746f20446546695a6170206973206c657373207468616e20726571756573746564a265627a7a72315820045d79e140fca5902c77182843013b8939292348e6f3713c240b8d61a2ba577164736f6c634300050d0032
Deployed Bytecode
0x6080604052600436106101095760003560e01c8063849e25f411610095578063b10e1dbc11610064578063b10e1dbc146102f5578063c3a8fcb014610323578063f2fde38b14610338578063f882cbcc1461036b578063fa6723421461039f57610109565b8063849e25f4146102515780638da5cb5b146102845780638f32d59b14610299578063ae4de7fa146102c257610109565b80633ccfd60b116100dc5780633ccfd60b14610199578063525d509e146101ae5780635de0398e146101c357806367abbc82146101ef5780638129fc1c1461023c57610109565b80631385d24c1461010b5780632a0d86d9146101205780632b68b9c6146101515780633bdebbe114610166575b005b34801561011757600080fd5b506101096103cb565b34801561012c57600080fd5b50610135610422565b604080516001600160a01b039092168252519081900360200190f35b34801561015d57600080fd5b50610109610431565b34801561017257600080fd5b506101096004803603602081101561018957600080fd5b50356001600160a01b0316610487565b3480156101a557600080fd5b506101096105ce565b3480156101ba57600080fd5b50610135610655565b3480156101cf57600080fd5b506101d8610664565b6040805161ffff9092168252519081900360200190f35b3480156101fb57600080fd5b506101096004803603608081101561021257600080fd5b506001600160a01b03813581169161ffff6020820135169160408201358116916060013516610675565b34801561024857600080fd5b5061010961078b565b34801561025d57600080fd5b506101096004803603602081101561027457600080fd5b50356001600160a01b0316610831565b34801561029057600080fd5b50610135610896565b3480156102a557600080fd5b506102ae6108aa565b604080519115158252519081900360200190f35b3480156102ce57600080fd5b50610109600480360360208110156102e557600080fd5b50356001600160a01b03166108c0565b34801561030157600080fd5b506101096004803603602081101561031857600080fd5b503561ffff16610925565b34801561032f57600080fd5b506101356109f4565b34801561034457600080fd5b506101096004803603602081101561035b57600080fd5b50356001600160a01b0316610a03565b6102ae6004803603606081101561038157600080fd5b506001600160a01b0381351690602081013590604001351515610a4f565b6102ae600480360360408110156103b557600080fd5b506001600160a01b0381351690602001356113c8565b6103d36108aa565b61040e5760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b6066805460ff19811660ff90911615179055565b606a546001600160a01b031681565b6104396108aa565b6104745760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b60665461010090046001600160a01b0316ff5b61048f6108aa565b6104ca5760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561051457600080fd5b505afa158015610528573d6000803e3d6000fd5b505050506040513d602081101561053e57600080fd5b50516066546040805163a9059cbb60e01b81526101009092046001600160a01b03908116600484015260248301849052905192935084169163a9059cbb916044808201926020929091908290030181600087803b15801561059e57600080fd5b505af11580156105b2573d6000803e3d6000fd5b505050506040513d60208110156105c857600080fd5b50505050565b6105d66108aa565b6106115760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b6066546040516001600160a01b036101009092049190911690303180156108fc02916000818181858888f19350505050158015610652573d6000803e3d6000fd5b50565b6067546001600160a01b031681565b606754600160a01b900461ffff1681565b600054610100900460ff168061068e575061068e611ae4565b8061069c575060005460ff16155b6106d75760405162461bcd60e51b815260040180806020018281038252602e815260200180611f14602e913960400191505060405180910390fd5b600054610100900460ff16158015610702576000805460ff1961ff0019909116610100171660011790555b61070a61078b565b606680546001600160a81b0319166101003302179055606780546001600160a01b03199081166001600160a01b038881169190911761ffff60a01b1916600160a01b61ffff89160217909255606880548216868416179055606a80549091169184169190911790558015610784576000805461ff00191690555b5050505050565b600054610100900460ff16806107a457506107a4611ae4565b806107b2575060005460ff16155b6107ed5760405162461bcd60e51b815260040180806020018281038252602e815260200180611f14602e913960400191505060405180910390fd5b600054610100900460ff16158015610818576000805460ff1961ff0019909116610100171660011790555b60016033558015610652576000805461ff001916905550565b6108396108aa565b6108745760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b606880546001600160a01b0319166001600160a01b0392909216919091179055565b60665461010090046001600160a01b031681565b60665461010090046001600160a01b0316331490565b6108c86108aa565b6109035760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b606780546001600160a01b0319166001600160a01b0392909216919091179055565b61092d6108aa565b6109685760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b60008161ffff1611801561098157506127108161ffff16105b6109d2576040805162461bcd60e51b815260206004820152601a60248201527f476f6f6457696c6c2056616c7565206e6f7420616c6c6f776564000000000000604482015290519081900360640190fd5b6067805461ffff909216600160a01b0261ffff60a01b19909216919091179055565b6068546001600160a01b031681565b610a0b6108aa565b610a465760405162461bcd60e51b815260040180806020018281038252602c815260200180611ec7602c913960400191505060405180910390fd5b61065281611aea565b60665460009060ff1615610a9f576040805162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015290519081900360640190fd5b6033805460010190819055606754604080516303795fb160e11b81526001600160a01b038881166004830152915160009392909216916306f2bf6291602480820192602092909190829003018186803b158015610afb57600080fd5b505afa158015610b0f573d6000803e3d6000fd5b505050506040513d6020811015610b2557600080fd5b5051606754606a54604080516303795fb160e11b81526001600160a01b039283166004820152905193945060009391909216916306f2bf62916024808301926020929190829003018186803b158015610b7d57600080fd5b505afa158015610b91573d6000803e3d6000fd5b505050506040513d6020811015610ba757600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192506000916001600160a01b0385169163dd62ed3e916044808301926020929190829003018186803b158015610bfb57600080fd5b505afa158015610c0f573d6000803e3d6000fd5b505050506040513d6020811015610c2557600080fd5b5051905080871115610c685760405162461bcd60e51b815260040180806020018281038252602c815260200180611f42602c913960400191505060405180910390fd5b606754600090610c9090610c88908a90600160a01b900461ffff16611b57565b612710611bb7565b9050836001600160a01b03166323b872dd3330610cad8c86611bf9565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015610d1557600080fd5b505af1158015610d29573d6000803e3d6000fd5b505050506040513d6020811015610d3f57600080fd5b5051610d83576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72323a646566697a61760941b604482015290519081900360640190fd5b606854604080516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481018490529051918616916323b872dd916064808201926020929091908290030181600087803b158015610ddf57600080fd5b505af1158015610df3573d6000803e3d6000fd5b505050506040513d6020811015610e0957600080fd5b5051610e4d576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72333a646566697a61760941b604482015290519081900360640190fd5b600080856001600160a01b031663f88bf15a610e698c86611bf9565b600180610e7842610708611c3b565b6040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018281526020019450505050506040805180830381600087803b158015610ec257600080fd5b505af1158015610ed6573d6000803e3d6000fd5b505050506040513d6040811015610eec57600080fd5b508051602090910151909250905088156111b957606a546001600160a01b038c811691161415610f54576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72353a646566697a61760941b604482015290519081900360640190fd5b846001600160a01b031663ad65d76d836001610f7242610708611c3b565b336040518563ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b0316815260200193505050506020604051808303818588803b158015610fc857600080fd5b505af1158015610fdc573d6000803e3d6000fd5b50505050506040513d6020811015610ff357600080fd5b50506040805163095ea7b360e01b81526001600160a01b038881166004830152602482018490529151918d169163095ea7b3916044808201926020929091908290030181600087803b15801561104857600080fd5b505af115801561105c573d6000803e3d6000fd5b505050506040513d602081101561107257600080fd5b50506001600160a01b03861663f552d91b8260018061109342610708611c3b565b606a54604080516001600160e01b031960e089901b16815260048101969096526024860194909452604485019290925260648401523360848401526001600160a01b031660a48301525160c48083019260209291908290030181600087803b1580156110fe57600080fd5b505af1158015611112573d6000803e3d6000fd5b505050506040513d602081101561112857600080fd5b505060408051666f6e6c7944414960c81b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038d3361117d8f89611bf9565b604080516001600160a01b03948516815292909316602083015281830152606081018790526080810186905290519081900360a00190a3611360565b856001600160a01b031663ad65d76d8360016111d742610708611c3b565b336040518563ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b0316815260200193505050506020604051808303818588803b15801561122d57600080fd5b505af1158015611241573d6000803e3d6000fd5b50505050506040513d602081101561125857600080fd5b50506040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b038d169163a9059cbb9160448083019260209291908290030181600087803b1580156112a957600080fd5b505af11580156112bd573d6000803e3d6000fd5b505050506040513d60208110156112d357600080fd5b505060408051666f6e6c7945524360c81b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038d336113288f89611bf9565b604080516001600160a01b03948516815292909316602083015281830152606081018790526080810186905290519081900360a00190a35b6001975050505050505060335481146113c0576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b509392505050565b60665460009060ff1615611418576040805162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015290519081900360640190fd5b6033805460010190819055606754604080516303795fb160e11b81526001600160a01b038781166004830152915160009392909216916306f2bf6291602480820192602092909190829003018186803b15801561147457600080fd5b505afa158015611488573d6000803e3d6000fd5b505050506040513d602081101561149e57600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192506000916001600160a01b0384169163dd62ed3e916044808301926020929190829003018186803b1580156114f257600080fd5b505afa158015611506573d6000803e3d6000fd5b505050506040513d602081101561151c57600080fd5b505190508085111561155f5760405162461bcd60e51b815260040180806020018281038252602c815260200180611f42602c913960400191505060405180910390fd5b60675460009061157f90610c88908890600160a01b900461ffff16611b57565b9050826001600160a01b03166323b872dd333061159c8a86611bf9565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b15801561160457600080fd5b505af1158015611618573d6000803e3d6000fd5b505050506040513d602081101561162e57600080fd5b5051611672576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72323a646566697a61760941b604482015290519081900360640190fd5b606854604080516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481018490529051918516916323b872dd916064808201926020929091908290030181600087803b1580156116ce57600080fd5b505af11580156116e2573d6000803e3d6000fd5b505050506040513d60208110156116f857600080fd5b505161173c576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72333a646566697a61760941b604482015290519081900360640190fd5b600080846001600160a01b031663f88bf15a6117588a86611bf9565b60018061176742610708611c3b565b6040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018281526020019450505050506040805180830381600087803b1580156117b157600080fd5b505af11580156117c5573d6000803e3d6000fd5b505050506040513d60408110156117db57600080fd5b508051602091820151604080516395b68fe760e01b81526004810183905290519295509093506000926001600160a01b038916926395b68fe7926024808201939291829003018186803b15801561183157600080fd5b505afa158015611845573d6000803e3d6000fd5b505050506040513d602081101561185b57600080fd5b50516040805163095ea7b360e01b81526001600160a01b038981166004830152602482018690529151929350908c169163095ea7b3916044808201926020929091908290030181600087803b1580156118b357600080fd5b505af11580156118c7573d6000803e3d6000fd5b505050506040513d60208110156118dd57600080fd5b50506001600160a01b038616637237e031836119046118fd856062611b57565b6064611bb7565b61191042610708611c3b565b604080516001600160e01b031960e087901b1681526004810194909452602484019290925260448301523360648301525160848083019260209291908290030181600087803b15801561196257600080fd5b505af1158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b50503360008181526069602052604090208490556119a990611c95565b6119f2576040805162461bcd60e51b81526020600482015260156024820152740d2e6e6eaca40d2dc40e8e4c2dce6cccae4408aa89605b1b604482015290519081900360640190fd5b60408051660dedcd8f28aa8960cb1b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038c33611a458e8a611bf9565b604080516001600160a01b03948516815292909316602083015281830152606081018890526080810187905290519081900360a00190a3600197505050505050506033548114611adc576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505b92915050565b303b1590565b6001600160a01b038116611b2f5760405162461bcd60e51b8152600401808060200182810382526026815260200180611ea16026913960400191505060405180910390fd5b606680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600082611b6657506000611ade565b82820282848281611b7357fe5b0414611bb05760405162461bcd60e51b8152600401808060200182810382526021815260200180611ef36021913960400191505060405180910390fd5b9392505050565b6000611bb083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611da4565b6000611bb083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e46565b600082820183811015611bb0576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260696020526040812054611cf0576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72343a446566695a61760941b604482015290519081900360640190fd5b6001600160a01b038216600081815260696020526040808220805490839055905190929083908381818185875af1925050503d8060008114611d4e576040519150601f19603f3d011682016040523d82523d6000602084013e611d53565b606091505b5050905080611d9a576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72353a446566695a61760941b604482015290519081900360640190fd5b5060019392505050565b60008183611e305760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611df5578181015183820152602001611ddd565b50505050905090810190601f168015611e225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e3c57fe5b0495945050505050565b60008184841115611e985760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611df5578181015183820152602001611ddd565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373796f7520617265206e6f7420617574686f726973656420746f2063616c6c20746869732066756e6374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645065726d697373696f6e20746f20446546695a6170206973206c657373207468616e20726571756573746564a265627a7a72315820045d79e140fca5902c77182843013b8939292348e6f3713c240b8d61a2ba577164736f6c634300050d0032
Deployed Bytecode Sourcemap
16126:10516:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25493:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25493:86:0;;;:::i;16586:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16586:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;16586:29:0;;;;;;;;;;;;;;25781:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25781:75:0;;;:::i;25168:285::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25168:285:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25168:285:0;-1:-1:-1;;;;;25168:285:0;;:::i;25649:93::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25649:93:0;;;:::i;16382:75::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16382:75:0;;;:::i;16464:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16464:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17223:550;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17223:550:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;17223:550:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;11370:218::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11370:218:0;;;:::i;18294:168::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18294:168:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18294:168:0;-1:-1:-1;;;;;18294:168:0;;:::i;16347:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16347:28:0;;;:::i;25949:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25949:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;17781:258;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17781:258:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17781:258:0;-1:-1:-1;;;;;17781:258:0;;:::i;18047:239::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18047:239:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18047:239:0;;;;:::i;16493:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16493:32:0;;;:::i;26195:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26195:117:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26195:117:0;-1:-1:-1;;;;;26195:117:0;;:::i;20993:3546::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20993:3546:0;;;;;;;;;;;;;;;:::i;18470:2515::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18470:2515:0;;;;;;;;:::i;25493:86::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25564:7;;;-1:-1:-1;;25553:18:0;;25564:7;;;;25563:8;25553:18;;;25493:86::o;16586:29::-;;;-1:-1:-1;;;;;16586:29:0;;:::o;25781:75::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25842:5;;;;;-1:-1:-1;;;;;25842:5:0;25829:19;25168:285;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25306:71;;;-1:-1:-1;;;25306:71:0;;25361:4;25306:71;;;;;;25278:25;;-1:-1:-1;;;;;25306:32:0;;;;;:71;;;;;;;;;;;;;;;:32;:71;;;5:2:-1;;;;30:1;27;20:12;5:2;25306:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25306:71:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25306:71:0;25420:5;;25388:57;;;-1:-1:-1;;;25388:57:0;;25420:5;;;;-1:-1:-1;;;;;25420:5:0;;;25388:57;;;;;;;;;;;;25306:71;;-1:-1:-1;25388:31:0;;;;;:57;;;;;25306:71;;25388:57;;;;;;;;-1:-1:-1;25388:31:0;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;25388:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25388:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;25168:285:0:o;25649:93::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25697:5;;:37;;-1:-1:-1;;;;;25697:5:0;;;;;;;;;25720:4;25712:21;25697:37;;;;;;;;;25712:21;25697:5;:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25697:37:0;25649:93::o;16382:75::-;;;-1:-1:-1;;;;;16382:75:0;;:::o;16464:22::-;;;-1:-1:-1;;;16464:22:0;;;;;:::o;17223:550::-;1118:12;;;;;;;;:31;;;1134:15;:13;:15::i;:::-;1118:47;;;-1:-1:-1;1154:11:0;;;;1153:12;1118:47;1110:106;;;;-1:-1:-1;;;1110:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1225:19;1248:12;;;;;;1247:13;1267:83;;;;1296:12;:19;;-1:-1:-1;;;;1296:19:0;;;;;1324:18;1311:4;1324:18;;;1267:83;17420:28;:26;:28::i;:::-;17459:7;:15;;-1:-1:-1;;;;;;17485:18:0;17459:15;17493:10;17485:18;;;;17514:21;:118;;-1:-1:-1;;;;;;17514:118:0;;;-1:-1:-1;;;;;17514:118:0;;;;;;;-1:-1:-1;;;;17643:20:0;-1:-1:-1;;;17643:20:0;;;;;;;;17674:17;:38;;;;;;;;;;17723:15;:42;;;;;;;;;;;;;;1368:57;;;;1412:5;1397:20;;-1:-1:-1;;1397:20:0;;;1368:57;17223:550;;;;;:::o;11370:218::-;1118:12;;;;;;;;:31;;;1134:15;:13;:15::i;:::-;1118:47;;;-1:-1:-1;1154:11:0;;;;1153:12;1118:47;1110:106;;;;-1:-1:-1;;;1110:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1225:19;1248:12;;;;;;1247:13;1267:83;;;;1296:12;:19;;-1:-1:-1;;;;1296:19:0;;;;;1324:18;1311:4;1324:18;;;1267:83;11579:1;11563:13;:17;1368:57;;;;1412:5;1397:20;;-1:-1:-1;;1397:20:0;;;11370:218;:::o;18294:168::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18412:17;:42;;-1:-1:-1;;;;;;18412:42:0;-1:-1:-1;;;;;18412:42:0;;;;;;;;;;18294:168::o;16347:28::-;;;;;;-1:-1:-1;;;;;16347:28:0;;:::o;25949:91::-;26027:5;;;;;-1:-1:-1;;;;;26027:5:0;26013:10;:19;;25949:91::o;17781:258::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17907:21;:122;;-1:-1:-1;;;;;;17907:122:0;-1:-1:-1;;;;;17907:122:0;;;;;;;;;;17781:258::o;18047:239::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18161:1;18145:13;:17;;;:42;;;;;18182:5;18166:13;:21;;;18145:42;18123:118;;;;;-1:-1:-1;;;18123:118:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18252:8;:24;;;;;;-1:-1:-1;;;18252:24:0;-1:-1:-1;;;;18252:24:0;;;;;;;;;18047:239::o;16493:32::-;;;-1:-1:-1;;;;;16493:32:0;;:::o;26195:117::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26276:28;26295:8;26276:18;:28::i;20993:3546::-;16986:7;;21188:4;;16986:7;;16982:102;;;17010:28;;;-1:-1:-1;;;17010:28:0;;;;;;;;;;;;-1:-1:-1;;;17010:28:0;;;;;;;;;;;;;;16982:102;12007:13;:18;;12024:1;12007:18;;;;;21348:21;;:56;;;-1:-1:-1;;;21348:56:0;;-1:-1:-1;;;;;21348:56:0;;;;;;;;;12007:13;;21348:21;;;;;:33;;:56;;;;;;;;;;;;;;;:21;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;21348:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21348:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21348:56:0;21572:21;;21614:15;;21572:59;;;-1:-1:-1;;;21572:59:0;;-1:-1:-1;;;;;21614:15:0;;;21572:59;;;;;;21348:56;;-1:-1:-1;21426:81:0;;21572:21;;;;;:33;;:59;;;;;21348:56;;21572:59;;;;;;;:21;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;21572:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21572:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21572:59:0;21682:104;;;-1:-1:-1;;;21682:104:0;;21737:10;21682:104;;;;21770:4;21682:104;;;;;;21572:59;;-1:-1:-1;21653:26:0;;-1:-1:-1;;;;;21682:40:0;;;;;:104;;;;;21572:59;;21682:104;;;;;;;:40;:104;;;5:2:-1;;;;30:1;27;20:12;5:2;21682:104:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21682:104:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21682:104:0;;-1:-1:-1;21819:40:0;;;;21797:134;;;;-1:-1:-1;;;21797:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22028:8;;21942:23;;21968:100;;21995:42;;22008:18;;-1:-1:-1;;;22028:8:0;;;;21995:12;:42::i;:::-;22052:5;21968:12;:100::i;:::-;21942:126;;22101:30;-1:-1:-1;;;;;22101:43:0;;22163:10;22200:4;22224:49;22237:18;22257:15;22224:12;:49::i;:::-;22101:187;;;;;;;;;;;;;-1:-1:-1;;;;;22101:187:0;-1:-1:-1;;;;;22101:187:0;;;;;;-1:-1:-1;;;;;22101:187:0;-1:-1:-1;;;;;22101:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22101:187:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22101:187:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22101:187:0;22079:251;;;;;-1:-1:-1;;;22079:251:0;;;;;;;;;;;;-1:-1:-1;;;22079:251:0;;;;;;;;;;;;;;;22454:17;;22363:157;;;-1:-1:-1;;;22363:157:0;;22425:10;22363:157;;;;-1:-1:-1;;;;;22454:17:0;;;22363:157;;;;;;;;;;;;:43;;;;;;:157;;;;;;;;;;;;;;;22454:17;22363:43;:157;;;5:2:-1;;;;30:1;27;20:12;5:2;22363:157:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22363:157:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22363:157:0;22341:221;;;;;-1:-1:-1;;;22341:221:0;;;;;;;;;;;;-1:-1:-1;;;22341:221:0;;;;;;;;;;;;;;;22574:19;22595:21;22620:30;-1:-1:-1;;;;;22620:60:0;;22695:49;22708:18;22728:15;22695:12;:49::i;:::-;22759:1;22775;22791:23;22804:3;22809:4;22791:12;:23::i;:::-;22620:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22620:205:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22620:205:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22620:205:0;;;;;;;;;-1:-1:-1;22620:205:0;-1:-1:-1;22836:1672:0;;;;22928:15;;-1:-1:-1;;;;;22895:49:0;;;22928:15;;22895:49;;22869:125;;;;;-1:-1:-1;;;22869:125:0;;;;;;;;;;;;-1:-1:-1;;;22869:125:0;;;;;;;;;;;;;;;23009:33;-1:-1:-1;;;;;23009:57:0;;23091:11;23118:1;23121:23;23134:3;23139:4;23121:12;:23::i;:::-;23146:10;23009:148;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23009:148:0;-1:-1:-1;;;;;23009:148:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23009:148:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23009:148:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;23172:142:0;;;-1:-1:-1;;;23172:142:0;;-1:-1:-1;;;;;23172:142:0;;;;;;;;;;;;;;;:37;;;;;;:142;;;;;23009:148;;23172:142;;;;;;;;-1:-1:-1;23172:37:0;:142;;;5:2:-1;;;;30:1;27;20:12;5:2;23172:142:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23172:142:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;23329:56:0;;;23404:13;23436:1;;23476:23;23489:3;23494:4;23476:12;:23::i;:::-;23555:15;;23329:257;;;-1:-1:-1;;;;;;23329:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23518:10;23329:257;;;;-1:-1:-1;;;;;23555:15:0;23329:257;;;;;;;;;;;;;;;;;;;23555:15;23329:257;;;;5:2:-1;;;;30:1;27;20:12;5:2;23329:257:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23329:257:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;23606:306:0;;;-1:-1:-1;;;23606:306:0;;;;;;;;;;;;-1:-1:-1;;;;;23606:306:0;;;23688:21;23729:10;23758:49;23771:18;23791:15;23758:12;:49::i;:::-;23606:306;;;-1:-1:-1;;;;;23606:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22836:1672;;;23945:30;-1:-1:-1;;;;;23945:54:0;;24024:11;24051:1;24054:23;24067:3;24072:4;24054:12;:23::i;:::-;24079:10;23945:145;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23945:145:0;-1:-1:-1;;;;;23945:145:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23945:145:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23945:145:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;24105:65:0;;;-1:-1:-1;;;24105:65:0;;24144:10;24105:65;;;;;;;;;;;;-1:-1:-1;;;;;24105:38:0;;;;;:65;;;;;23945:145;;24105:65;;;;;;;-1:-1:-1;24105:38:0;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;24105:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24105:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;24190:306:0;;;-1:-1:-1;;;24190:306:0;;;;;;;;;;;;-1:-1:-1;;;;;24190:306:0;;;24272:21;24313:10;24342:49;24355:18;24375:15;24342:12;:49::i;:::-;24190:306;;;-1:-1:-1;;;;;24190:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22836:1672;24527:4;24520:11;;;;;;;;12119:13;;12103:12;:29;12095:73;;;;;-1:-1:-1;;;12095:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17071:1;20993:3546;;;;;:::o;18470:2515::-;16986:7;;18637:4;;16986:7;;16982:102;;;17010:28;;;-1:-1:-1;;;17010:28:0;;;;;;;;;;;;-1:-1:-1;;;17010:28:0;;;;;;;;;;;;;;16982:102;12007:13;:18;;12024:1;12007:18;;;;;18797:21;;:56;;;-1:-1:-1;;;18797:56:0;;-1:-1:-1;;;;;18797:56:0;;;;;;;;;12007:13;;18797:21;;;;;:33;;:56;;;;;;;;;;;;;;;:21;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;18797:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18797:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18797:56:0;18904:104;;;-1:-1:-1;;;18904:104:0;;18959:10;18904:104;;;;18992:4;18904:104;;;;;;18797:56;;-1:-1:-1;18875:26:0;;-1:-1:-1;;;;;18904:40:0;;;;;:104;;;;;18797:56;;18904:104;;;;;;;:40;:104;;;5:2:-1;;;;30:1;27;20:12;5:2;18904:104:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18904:104:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18904:104:0;;-1:-1:-1;19041:40:0;;;;19019:134;;;;-1:-1:-1;;;19019:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19250:8;;19164:23;;19190:100;;19217:42;;19230:18;;-1:-1:-1;;;19250:8:0;;;;19217:12;:42::i;19190:100::-;19164:126;;19323:30;-1:-1:-1;;;;;19323:43:0;;19385:10;19422:4;19446:49;19459:18;19479:15;19446:12;:49::i;:::-;19323:187;;;;;;;;;;;;;-1:-1:-1;;;;;19323:187:0;-1:-1:-1;;;;;19323:187:0;;;;;;-1:-1:-1;;;;;19323:187:0;-1:-1:-1;;;;;19323:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19323:187:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19323:187:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19323:187:0;19301:251;;;;;-1:-1:-1;;;19301:251:0;;;;;;;;;;;;-1:-1:-1;;;19301:251:0;;;;;;;;;;;;;;;19676:17;;19585:157;;;-1:-1:-1;;;19585:157:0;;19647:10;19585:157;;;;-1:-1:-1;;;;;19676:17:0;;;19585:157;;;;;;;;;;;;:43;;;;;;:157;;;;;;;;;;;;;;;19676:17;19585:43;:157;;;5:2:-1;;;;30:1;27;20:12;5:2;19585:157:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19585:157:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19585:157:0;19563:221;;;;;-1:-1:-1;;;19563:221:0;;;;;;;;;;;;-1:-1:-1;;;19563:221:0;;;;;;;;;;;;;;;19798:19;19819:21;19844:30;-1:-1:-1;;;;;19844:60:0;;19919:49;19932:18;19952:15;19919:12;:49::i;:::-;19983:1;19999;20015:23;20028:3;20033:4;20015:12;:23::i;:::-;19844:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19844:205:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19844:205:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19844:205:0;;;;;;;;20089:83;;-1:-1:-1;;;20089:83:0;;;;;;;;;;19844:205;;-1:-1:-1;19844:205:0;;-1:-1:-1;20062:24:0;;-1:-1:-1;;;;;20089:68:0;;;;;:83;;;;;19844:205;20089:83;;;;;;:68;:83;;;5:2:-1;;;;30:1;27;20:12;5:2;20089:83:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20089:83:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20089:83:0;20183:130;;;-1:-1:-1;;;20183:130:0;;-1:-1:-1;;;;;20183:130:0;;;;;;;;;;;;;;;20089:83;;-1:-1:-1;20183:37:0;;;;;;:130;;;;;20089:83;;20183:130;;;;;;;;-1:-1:-1;20183:37:0;:130;;;5:2:-1;;;;30:1;27;20:12;5:2;20183:130:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20183:130:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;20324:54:0;;;20393:13;20421:53;20434:34;20447:16;20465:2;20434:12;:34::i;:::-;20470:3;20421:12;:53::i;:::-;20489:23;20502:3;20507:4;20489:12;:23::i;:::-;20324:224;;;-1:-1:-1;;;;;;20324:224:0;;;;;;;;;;;;;;;;;;;;;;;;;20527:10;20324:224;;;;;;;;;;;;;;;;;;;-1:-1:-1;20324:224:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;20324:224:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20324:224:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;20571:10:0;20559:23;;;;:11;20324:224;20559:23;;;;:37;;;20615:24;;:12;:24::i;:::-;20607:58;;;;;-1:-1:-1;;;20607:58:0;;;;;;;;;;;;-1:-1:-1;;;20607:58:0;;;;;;;;;;;;;;;20681:274;;;-1:-1:-1;;;20681:274:0;;;;;;;;;;;;-1:-1:-1;;;;;20681:274:0;;;20755:21;20792:10;20817:49;20830:18;20850:15;20817:12;:49::i;:::-;20681:274;;;-1:-1:-1;;;;;20681:274:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20973:4;20966:11;;;;;;;;12119:13;;12103:12;:29;12095:73;;;;;-1:-1:-1;;;12095:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17071:1;16982:102;18470:2515;;;;:::o;1519:476::-;1959:7;1947:20;1982:7;1519:476;:::o;26418:219::-;-1:-1:-1;;;;;26514:22:0;;26492:110;;;;-1:-1:-1;;;26492:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26613:5;:16;;-1:-1:-1;;;;;26613:16:0;;;;;-1:-1:-1;;;;;;26613:16:0;;;;;;;;;26418:219::o;4422:471::-;4480:7;4725:6;4721:47;;-1:-1:-1;4755:1:0;4748:8;;4721:47;4792:5;;;4796:1;4792;:5;:1;4816:5;;;;;:10;4808:56;;;;-1:-1:-1;;;4808:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4884:1;4422:471;-1:-1:-1;;;4422:471:0:o;5361:132::-;5419:7;5446:39;5450:1;5453;5446:39;;;;;;;;;;;;;;;;;:3;:39::i;3506:136::-;3564:7;3591:43;3595:1;3598;3591:43;;;;;;;;;;;;;;;;;:3;:43::i;3050:181::-;3108:7;3140:5;;;3164:6;;;;3156:46;;;;;-1:-1:-1;;;3156:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;24547:403;-1:-1:-1;;;;;24641:32:0;;24616:4;24641:32;;;:11;:32;;;;;;24633:63;;;;;-1:-1:-1;;;24633:63:0;;;;;;;;;;;;-1:-1:-1;;;24633:63:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24724:32:0;;24707:14;24724:32;;;:11;:32;;;;;;;;24767:36;;;;24833:42;;24724:32;;;;;24707:14;24833:42;24707:14;24833:42;24724:32;;24833:42;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;24814:61:0;;;24894:7;24886:34;;;;;-1:-1:-1;;;24886:34:0;;;;;;;;;;;;-1:-1:-1;;;24886:34:0;;;;;;;;;;;;;;;-1:-1:-1;24938:4:0;;24547:403;-1:-1:-1;;;24547:403:0:o;6023:345::-;6109:7;6211:12;6204:5;6196:28;;;;-1:-1:-1;;;6196:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6196:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6235:9;6251:1;6247;:5;;;;;;;6023:345;-1:-1:-1;;;;;6023:345:0:o;3979:192::-;4065:7;4101:12;4093:6;;;;4085:29;;;;-1:-1:-1;;;4085:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;4085:29:0;-1:-1:-1;;;4137:5:0;;;3979:192::o
Swarm Source
bzzr://045d79e140fca5902c77182843013b8939292348e6f3713c240b8d61a2ba5771
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.