Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 506 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Lets Withdraw_on... | 10456108 | 1637 days ago | IN | 0 ETH | 0.00537177 | ||||
Lets Withdraw_on... | 10446750 | 1638 days ago | IN | 0 ETH | 0.00300061 | ||||
Lets Withdraw_on... | 10428698 | 1641 days ago | IN | 0 ETH | 0.00386995 | ||||
Lets Withdraw_on... | 10427830 | 1641 days ago | IN | 0 ETH | 0.00758983 | ||||
Lets Withdraw_on... | 10427233 | 1641 days ago | IN | 0 ETH | 0.0043929 | ||||
Lets Withdraw_on... | 10426521 | 1641 days ago | IN | 0 ETH | 0.01193146 | ||||
Lets Withdraw_on... | 10426435 | 1641 days ago | IN | 0 ETH | 0.00765265 | ||||
Lets Withdraw_on... | 10422046 | 1642 days ago | IN | 0 ETH | 0.00890981 | ||||
Lets Withdraw_on... | 10420630 | 1642 days ago | IN | 0 ETH | 0.01088976 | ||||
Lets Withdraw_on... | 10416936 | 1643 days ago | IN | 0 ETH | 0.01286972 | ||||
Lets Withdraw_on... | 10415690 | 1643 days ago | IN | 0 ETH | 0.00627009 | ||||
Lets Withdraw_on... | 10414186 | 1643 days ago | IN | 0 ETH | 0.00965946 | ||||
Lets Withdraw_on... | 10414161 | 1643 days ago | IN | 0 ETH | 0.00351525 | ||||
Lets Withdraw_on... | 10412310 | 1644 days ago | IN | 0 ETH | 0.01418969 | ||||
Lets Withdraw_on... | 10411049 | 1644 days ago | IN | 0 ETH | 0.0155091 | ||||
Lets Withdraw_on... | 10410155 | 1644 days ago | IN | 0 ETH | 0.00956979 | ||||
Lets Withdraw_on... | 10407635 | 1644 days ago | IN | 0 ETH | 0.0042048 | ||||
Lets Withdraw_on... | 10404861 | 1645 days ago | IN | 0 ETH | 0.01335751 | ||||
Lets Withdraw_on... | 10403539 | 1645 days ago | IN | 0 ETH | 0.00597309 | ||||
Lets Withdraw_on... | 10401144 | 1645 days ago | IN | 0 ETH | 0.00399379 | ||||
Lets Withdraw_on... | 10399509 | 1646 days ago | IN | 0 ETH | 0.00989979 | ||||
Lets Withdraw_on... | 10399067 | 1646 days ago | IN | 0 ETH | 0.01075077 | ||||
Lets Withdraw_on... | 10398974 | 1646 days ago | IN | 0 ETH | 0.00601712 | ||||
Lets Withdraw_on... | 10398183 | 1646 days ago | IN | 0 ETH | 0.00768911 | ||||
Lets Withdraw_on... | 10397989 | 1646 days ago | IN | 0 ETH | 0.0030731 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
10502182 | 1630 days ago | 1.88698891 ETH | ||||
10502182 | 1630 days ago | 1.88698891 ETH | ||||
10499512 | 1630 days ago | 0.59550849 ETH | ||||
10499512 | 1630 days ago | 0.59550849 ETH | ||||
10499050 | 1630 days ago | 0.97430867 ETH | ||||
10499050 | 1630 days ago | 0.97430867 ETH | ||||
10467609 | 1635 days ago | 1.41072685 ETH | ||||
10467609 | 1635 days ago | 1.41072685 ETH | ||||
10459359 | 1636 days ago | 0.93293302 ETH | ||||
10459359 | 1636 days ago | 0.93293302 ETH | ||||
10456108 | 1637 days ago | 0.54458423 ETH | ||||
10446750 | 1638 days ago | 1.19898757 ETH | ||||
10446750 | 1638 days ago | 1.19898757 ETH | ||||
10428698 | 1641 days ago | 10.12061351 ETH | ||||
10428698 | 1641 days ago | 10.12061351 ETH | ||||
10427830 | 1641 days ago | 2.03134601 ETH | ||||
10427830 | 1641 days ago | 2.03134601 ETH | ||||
10427233 | 1641 days ago | 0.29357322 ETH | ||||
10427233 | 1641 days ago | 0.29357322 ETH | ||||
10426521 | 1641 days ago | 0.2219128 ETH | ||||
10426521 | 1641 days ago | 0.2219128 ETH | ||||
10426435 | 1641 days ago | 0.25435083 ETH | ||||
10426435 | 1641 days ago | 0.25435083 ETH | ||||
10422046 | 1642 days ago | 0.34880942 ETH | ||||
10422046 | 1642 days ago | 0.34880942 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-05-01 */ // 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
608060405234801561001057600080fd5b50611f93806100206000396000f3fe6080604052600436106101095760003560e01c8063849e25f411610095578063b10e1dbc11610064578063b10e1dbc146102f5578063c3a8fcb014610323578063f2fde38b14610338578063f882cbcc1461036b578063fa6723421461039f57610109565b8063849e25f4146102515780638da5cb5b146102845780638f32d59b14610299578063ae4de7fa146102c257610109565b80633ccfd60b116100dc5780633ccfd60b14610199578063525d509e146101ae5780635de0398e146101c357806367abbc82146101ef5780638129fc1c1461023c57610109565b80631385d24c1461010b5780632a0d86d9146101205780632b68b9c6146101515780633bdebbe114610166575b005b34801561011757600080fd5b506101096103cb565b34801561012c57600080fd5b50610135610422565b604080516001600160a01b039092168252519081900360200190f35b34801561015d57600080fd5b50610109610431565b34801561017257600080fd5b506101096004803603602081101561018957600080fd5b50356001600160a01b0316610487565b3480156101a557600080fd5b506101096105ce565b3480156101ba57600080fd5b50610135610655565b3480156101cf57600080fd5b506101d8610664565b6040805161ffff9092168252519081900360200190f35b3480156101fb57600080fd5b506101096004803603608081101561021257600080fd5b506001600160a01b03813581169161ffff6020820135169160408201358116916060013516610675565b34801561024857600080fd5b5061010961078b565b34801561025d57600080fd5b506101096004803603602081101561027457600080fd5b50356001600160a01b0316610831565b34801561029057600080fd5b50610135610896565b3480156102a557600080fd5b506102ae6108aa565b604080519115158252519081900360200190f35b3480156102ce57600080fd5b50610109600480360360208110156102e557600080fd5b50356001600160a01b03166108c0565b34801561030157600080fd5b506101096004803603602081101561031857600080fd5b503561ffff16610925565b34801561032f57600080fd5b506101356109e5565b34801561034457600080fd5b506101096004803603602081101561035b57600080fd5b50356001600160a01b03166109f4565b6102ae6004803603606081101561038157600080fd5b506001600160a01b0381351690602081013590604001351515610a40565b6102ae600480360360408110156103b557600080fd5b506001600160a01b0381351690602001356113b9565b6103d36108aa565b61040e5760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b6066805460ff19811660ff90911615179055565b606a546001600160a01b031681565b6104396108aa565b6104745760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b60665461010090046001600160a01b0316ff5b61048f6108aa565b6104ca5760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561051457600080fd5b505afa158015610528573d6000803e3d6000fd5b505050506040513d602081101561053e57600080fd5b50516066546040805163a9059cbb60e01b81526101009092046001600160a01b03908116600484015260248301849052905192935084169163a9059cbb916044808201926020929091908290030181600087803b15801561059e57600080fd5b505af11580156105b2573d6000803e3d6000fd5b505050506040513d60208110156105c857600080fd5b50505050565b6105d66108aa565b6106115760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b6066546040516001600160a01b036101009092049190911690303180156108fc02916000818181858888f19350505050158015610652573d6000803e3d6000fd5b50565b6067546001600160a01b031681565b606754600160a01b900461ffff1681565b600054610100900460ff168061068e575061068e611ad5565b8061069c575060005460ff16155b6106d75760405162461bcd60e51b815260040180806020018281038252602e815260200180611f05602e913960400191505060405180910390fd5b600054610100900460ff16158015610702576000805460ff1961ff0019909116610100171660011790555b61070a61078b565b606680546001600160a81b0319166101003302179055606780546001600160a01b03199081166001600160a01b038881169190911761ffff60a01b1916600160a01b61ffff89160217909255606880548216868416179055606a80549091169184169190911790558015610784576000805461ff00191690555b5050505050565b600054610100900460ff16806107a457506107a4611ad5565b806107b2575060005460ff16155b6107ed5760405162461bcd60e51b815260040180806020018281038252602e815260200180611f05602e913960400191505060405180910390fd5b600054610100900460ff16158015610818576000805460ff1961ff0019909116610100171660011790555b60016033558015610652576000805461ff001916905550565b6108396108aa565b6108745760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b606880546001600160a01b0319166001600160a01b0392909216919091179055565b60665461010090046001600160a01b031681565b60665461010090046001600160a01b0316331490565b6108c86108aa565b6109035760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b606780546001600160a01b0319166001600160a01b0392909216919091179055565b61092d6108aa565b6109685760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b6127108161ffff1611156109c3576040805162461bcd60e51b815260206004820152601a60248201527f476f6f6457696c6c2056616c7565206e6f7420616c6c6f776564000000000000604482015290519081900360640190fd5b6067805461ffff909216600160a01b0261ffff60a01b19909216919091179055565b6068546001600160a01b031681565b6109fc6108aa565b610a375760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b61065281611adb565b60665460009060ff1615610a90576040805162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015290519081900360640190fd5b6033805460010190819055606754604080516303795fb160e11b81526001600160a01b038881166004830152915160009392909216916306f2bf6291602480820192602092909190829003018186803b158015610aec57600080fd5b505afa158015610b00573d6000803e3d6000fd5b505050506040513d6020811015610b1657600080fd5b5051606754606a54604080516303795fb160e11b81526001600160a01b039283166004820152905193945060009391909216916306f2bf62916024808301926020929190829003018186803b158015610b6e57600080fd5b505afa158015610b82573d6000803e3d6000fd5b505050506040513d6020811015610b9857600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192506000916001600160a01b0385169163dd62ed3e916044808301926020929190829003018186803b158015610bec57600080fd5b505afa158015610c00573d6000803e3d6000fd5b505050506040513d6020811015610c1657600080fd5b5051905080871115610c595760405162461bcd60e51b815260040180806020018281038252602c815260200180611f33602c913960400191505060405180910390fd5b606754600090610c8190610c79908a90600160a01b900461ffff16611b48565b612710611ba8565b9050836001600160a01b03166323b872dd3330610c9e8c86611bea565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051610d74576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72323a646566697a61760941b604482015290519081900360640190fd5b606854604080516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481018490529051918616916323b872dd916064808201926020929091908290030181600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b5051610e3e576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72333a646566697a61760941b604482015290519081900360640190fd5b600080856001600160a01b031663f88bf15a610e5a8c86611bea565b600180610e6942610708611c2c565b6040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018281526020019450505050506040805180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6040811015610edd57600080fd5b508051602090910151909250905088156111aa57606a546001600160a01b038c811691161415610f45576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72353a646566697a61760941b604482015290519081900360640190fd5b846001600160a01b031663ad65d76d836001610f6342610708611c2c565b336040518563ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b0316815260200193505050506020604051808303818588803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b50505050506040513d6020811015610fe457600080fd5b50506040805163095ea7b360e01b81526001600160a01b038881166004830152602482018490529151918d169163095ea7b3916044808201926020929091908290030181600087803b15801561103957600080fd5b505af115801561104d573d6000803e3d6000fd5b505050506040513d602081101561106357600080fd5b50506001600160a01b03861663f552d91b8260018061108442610708611c2c565b606a54604080516001600160e01b031960e089901b16815260048101969096526024860194909452604485019290925260648401523360848401526001600160a01b031660a48301525160c48083019260209291908290030181600087803b1580156110ef57600080fd5b505af1158015611103573d6000803e3d6000fd5b505050506040513d602081101561111957600080fd5b505060408051666f6e6c7944414960c81b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038d3361116e8f89611bea565b604080516001600160a01b03948516815292909316602083015281830152606081018790526080810186905290519081900360a00190a3611351565b856001600160a01b031663ad65d76d8360016111c842610708611c2c565b336040518563ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b0316815260200193505050506020604051808303818588803b15801561121e57600080fd5b505af1158015611232573d6000803e3d6000fd5b50505050506040513d602081101561124957600080fd5b50506040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b038d169163a9059cbb9160448083019260209291908290030181600087803b15801561129a57600080fd5b505af11580156112ae573d6000803e3d6000fd5b505050506040513d60208110156112c457600080fd5b505060408051666f6e6c7945524360c81b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038d336113198f89611bea565b604080516001600160a01b03948516815292909316602083015281830152606081018790526080810186905290519081900360a00190a35b6001975050505050505060335481146113b1576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b509392505050565b60665460009060ff1615611409576040805162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015290519081900360640190fd5b6033805460010190819055606754604080516303795fb160e11b81526001600160a01b038781166004830152915160009392909216916306f2bf6291602480820192602092909190829003018186803b15801561146557600080fd5b505afa158015611479573d6000803e3d6000fd5b505050506040513d602081101561148f57600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192506000916001600160a01b0384169163dd62ed3e916044808301926020929190829003018186803b1580156114e357600080fd5b505afa1580156114f7573d6000803e3d6000fd5b505050506040513d602081101561150d57600080fd5b50519050808511156115505760405162461bcd60e51b815260040180806020018281038252602c815260200180611f33602c913960400191505060405180910390fd5b60675460009061157090610c79908890600160a01b900461ffff16611b48565b9050826001600160a01b03166323b872dd333061158d8a86611bea565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b1580156115f557600080fd5b505af1158015611609573d6000803e3d6000fd5b505050506040513d602081101561161f57600080fd5b5051611663576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72323a646566697a61760941b604482015290519081900360640190fd5b606854604080516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481018490529051918516916323b872dd916064808201926020929091908290030181600087803b1580156116bf57600080fd5b505af11580156116d3573d6000803e3d6000fd5b505050506040513d60208110156116e957600080fd5b505161172d576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72333a646566697a61760941b604482015290519081900360640190fd5b600080846001600160a01b031663f88bf15a6117498a86611bea565b60018061175842610708611c2c565b6040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018281526020019450505050506040805180830381600087803b1580156117a257600080fd5b505af11580156117b6573d6000803e3d6000fd5b505050506040513d60408110156117cc57600080fd5b508051602091820151604080516395b68fe760e01b81526004810183905290519295509093506000926001600160a01b038916926395b68fe7926024808201939291829003018186803b15801561182257600080fd5b505afa158015611836573d6000803e3d6000fd5b505050506040513d602081101561184c57600080fd5b50516040805163095ea7b360e01b81526001600160a01b038981166004830152602482018690529151929350908c169163095ea7b3916044808201926020929091908290030181600087803b1580156118a457600080fd5b505af11580156118b8573d6000803e3d6000fd5b505050506040513d60208110156118ce57600080fd5b50506001600160a01b038616637237e031836118f56118ee856062611b48565b6064611ba8565b61190142610708611c2c565b604080516001600160e01b031960e087901b1681526004810194909452602484019290925260448301523360648301525160848083019260209291908290030181600087803b15801561195357600080fd5b505af1158015611967573d6000803e3d6000fd5b505050506040513d602081101561197d57600080fd5b505033600081815260696020526040902084905561199a90611c86565b6119e3576040805162461bcd60e51b81526020600482015260156024820152740d2e6e6eaca40d2dc40e8e4c2dce6cccae4408aa89605b1b604482015290519081900360640190fd5b60408051660dedcd8f28aa8960cb1b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038c33611a368e8a611bea565b604080516001600160a01b03948516815292909316602083015281830152606081018890526080810187905290519081900360a00190a3600197505050505050506033548114611acd576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505b92915050565b303b1590565b6001600160a01b038116611b205760405162461bcd60e51b8152600401808060200182810382526026815260200180611e926026913960400191505060405180910390fd5b606680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600082611b5757506000611acf565b82820282848281611b6457fe5b0414611ba15760405162461bcd60e51b8152600401808060200182810382526021815260200180611ee46021913960400191505060405180910390fd5b9392505050565b6000611ba183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d95565b6000611ba183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e37565b600082820183811015611ba1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260696020526040812054611ce1576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72343a446566695a61760941b604482015290519081900360640190fd5b6001600160a01b038216600081815260696020526040808220805490839055905190929083908381818185875af1925050503d8060008114611d3f576040519150601f19603f3d011682016040523d82523d6000602084013e611d44565b606091505b5050905080611d8b576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72353a446566695a61760941b604482015290519081900360640190fd5b5060019392505050565b60008183611e215760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611de6578181015183820152602001611dce565b50505050905090810190601f168015611e135780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e2d57fe5b0495945050505050565b60008184841115611e895760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611de6578181015183820152602001611dce565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373796f7520617265206e6f7420617574686f726973656420746f2063616c6c20746869732066756e6374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645065726d697373696f6e20746f20446546695a6170206973206c657373207468616e20726571756573746564a265627a7a72315820b38ee8c0d7db04d43e5c8478f31704af5efd7b186dbf79d92c86b5f50c709af664736f6c634300050d0032
Deployed Bytecode
0x6080604052600436106101095760003560e01c8063849e25f411610095578063b10e1dbc11610064578063b10e1dbc146102f5578063c3a8fcb014610323578063f2fde38b14610338578063f882cbcc1461036b578063fa6723421461039f57610109565b8063849e25f4146102515780638da5cb5b146102845780638f32d59b14610299578063ae4de7fa146102c257610109565b80633ccfd60b116100dc5780633ccfd60b14610199578063525d509e146101ae5780635de0398e146101c357806367abbc82146101ef5780638129fc1c1461023c57610109565b80631385d24c1461010b5780632a0d86d9146101205780632b68b9c6146101515780633bdebbe114610166575b005b34801561011757600080fd5b506101096103cb565b34801561012c57600080fd5b50610135610422565b604080516001600160a01b039092168252519081900360200190f35b34801561015d57600080fd5b50610109610431565b34801561017257600080fd5b506101096004803603602081101561018957600080fd5b50356001600160a01b0316610487565b3480156101a557600080fd5b506101096105ce565b3480156101ba57600080fd5b50610135610655565b3480156101cf57600080fd5b506101d8610664565b6040805161ffff9092168252519081900360200190f35b3480156101fb57600080fd5b506101096004803603608081101561021257600080fd5b506001600160a01b03813581169161ffff6020820135169160408201358116916060013516610675565b34801561024857600080fd5b5061010961078b565b34801561025d57600080fd5b506101096004803603602081101561027457600080fd5b50356001600160a01b0316610831565b34801561029057600080fd5b50610135610896565b3480156102a557600080fd5b506102ae6108aa565b604080519115158252519081900360200190f35b3480156102ce57600080fd5b50610109600480360360208110156102e557600080fd5b50356001600160a01b03166108c0565b34801561030157600080fd5b506101096004803603602081101561031857600080fd5b503561ffff16610925565b34801561032f57600080fd5b506101356109e5565b34801561034457600080fd5b506101096004803603602081101561035b57600080fd5b50356001600160a01b03166109f4565b6102ae6004803603606081101561038157600080fd5b506001600160a01b0381351690602081013590604001351515610a40565b6102ae600480360360408110156103b557600080fd5b506001600160a01b0381351690602001356113b9565b6103d36108aa565b61040e5760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b6066805460ff19811660ff90911615179055565b606a546001600160a01b031681565b6104396108aa565b6104745760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b60665461010090046001600160a01b0316ff5b61048f6108aa565b6104ca5760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b604080516370a0823160e01b815230600482015290516000916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561051457600080fd5b505afa158015610528573d6000803e3d6000fd5b505050506040513d602081101561053e57600080fd5b50516066546040805163a9059cbb60e01b81526101009092046001600160a01b03908116600484015260248301849052905192935084169163a9059cbb916044808201926020929091908290030181600087803b15801561059e57600080fd5b505af11580156105b2573d6000803e3d6000fd5b505050506040513d60208110156105c857600080fd5b50505050565b6105d66108aa565b6106115760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b6066546040516001600160a01b036101009092049190911690303180156108fc02916000818181858888f19350505050158015610652573d6000803e3d6000fd5b50565b6067546001600160a01b031681565b606754600160a01b900461ffff1681565b600054610100900460ff168061068e575061068e611ad5565b8061069c575060005460ff16155b6106d75760405162461bcd60e51b815260040180806020018281038252602e815260200180611f05602e913960400191505060405180910390fd5b600054610100900460ff16158015610702576000805460ff1961ff0019909116610100171660011790555b61070a61078b565b606680546001600160a81b0319166101003302179055606780546001600160a01b03199081166001600160a01b038881169190911761ffff60a01b1916600160a01b61ffff89160217909255606880548216868416179055606a80549091169184169190911790558015610784576000805461ff00191690555b5050505050565b600054610100900460ff16806107a457506107a4611ad5565b806107b2575060005460ff16155b6107ed5760405162461bcd60e51b815260040180806020018281038252602e815260200180611f05602e913960400191505060405180910390fd5b600054610100900460ff16158015610818576000805460ff1961ff0019909116610100171660011790555b60016033558015610652576000805461ff001916905550565b6108396108aa565b6108745760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b606880546001600160a01b0319166001600160a01b0392909216919091179055565b60665461010090046001600160a01b031681565b60665461010090046001600160a01b0316331490565b6108c86108aa565b6109035760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b606780546001600160a01b0319166001600160a01b0392909216919091179055565b61092d6108aa565b6109685760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b6127108161ffff1611156109c3576040805162461bcd60e51b815260206004820152601a60248201527f476f6f6457696c6c2056616c7565206e6f7420616c6c6f776564000000000000604482015290519081900360640190fd5b6067805461ffff909216600160a01b0261ffff60a01b19909216919091179055565b6068546001600160a01b031681565b6109fc6108aa565b610a375760405162461bcd60e51b815260040180806020018281038252602c815260200180611eb8602c913960400191505060405180910390fd5b61065281611adb565b60665460009060ff1615610a90576040805162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015290519081900360640190fd5b6033805460010190819055606754604080516303795fb160e11b81526001600160a01b038881166004830152915160009392909216916306f2bf6291602480820192602092909190829003018186803b158015610aec57600080fd5b505afa158015610b00573d6000803e3d6000fd5b505050506040513d6020811015610b1657600080fd5b5051606754606a54604080516303795fb160e11b81526001600160a01b039283166004820152905193945060009391909216916306f2bf62916024808301926020929190829003018186803b158015610b6e57600080fd5b505afa158015610b82573d6000803e3d6000fd5b505050506040513d6020811015610b9857600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192506000916001600160a01b0385169163dd62ed3e916044808301926020929190829003018186803b158015610bec57600080fd5b505afa158015610c00573d6000803e3d6000fd5b505050506040513d6020811015610c1657600080fd5b5051905080871115610c595760405162461bcd60e51b815260040180806020018281038252602c815260200180611f33602c913960400191505060405180910390fd5b606754600090610c8190610c79908a90600160a01b900461ffff16611b48565b612710611ba8565b9050836001600160a01b03166323b872dd3330610c9e8c86611bea565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b505050506040513d6020811015610d3057600080fd5b5051610d74576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72323a646566697a61760941b604482015290519081900360640190fd5b606854604080516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481018490529051918616916323b872dd916064808201926020929091908290030181600087803b158015610dd057600080fd5b505af1158015610de4573d6000803e3d6000fd5b505050506040513d6020811015610dfa57600080fd5b5051610e3e576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72333a646566697a61760941b604482015290519081900360640190fd5b600080856001600160a01b031663f88bf15a610e5a8c86611bea565b600180610e6942610708611c2c565b6040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018281526020019450505050506040805180830381600087803b158015610eb357600080fd5b505af1158015610ec7573d6000803e3d6000fd5b505050506040513d6040811015610edd57600080fd5b508051602090910151909250905088156111aa57606a546001600160a01b038c811691161415610f45576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72353a646566697a61760941b604482015290519081900360640190fd5b846001600160a01b031663ad65d76d836001610f6342610708611c2c565b336040518563ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b0316815260200193505050506020604051808303818588803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b50505050506040513d6020811015610fe457600080fd5b50506040805163095ea7b360e01b81526001600160a01b038881166004830152602482018490529151918d169163095ea7b3916044808201926020929091908290030181600087803b15801561103957600080fd5b505af115801561104d573d6000803e3d6000fd5b505050506040513d602081101561106357600080fd5b50506001600160a01b03861663f552d91b8260018061108442610708611c2c565b606a54604080516001600160e01b031960e089901b16815260048101969096526024860194909452604485019290925260648401523360848401526001600160a01b031660a48301525160c48083019260209291908290030181600087803b1580156110ef57600080fd5b505af1158015611103573d6000803e3d6000fd5b505050506040513d602081101561111957600080fd5b505060408051666f6e6c7944414960c81b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038d3361116e8f89611bea565b604080516001600160a01b03948516815292909316602083015281830152606081018790526080810186905290519081900360a00190a3611351565b856001600160a01b031663ad65d76d8360016111c842610708611c2c565b336040518563ffffffff1660e01b815260040180848152602001838152602001826001600160a01b03166001600160a01b0316815260200193505050506020604051808303818588803b15801561121e57600080fd5b505af1158015611232573d6000803e3d6000fd5b50505050506040513d602081101561124957600080fd5b50506040805163a9059cbb60e01b81523360048201526024810183905290516001600160a01b038d169163a9059cbb9160448083019260209291908290030181600087803b15801561129a57600080fd5b505af11580156112ae573d6000803e3d6000fd5b505050506040513d60208110156112c457600080fd5b505060408051666f6e6c7945524360c81b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038d336113198f89611bea565b604080516001600160a01b03948516815292909316602083015281830152606081018790526080810186905290519081900360a00190a35b6001975050505050505060335481146113b1576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b509392505050565b60665460009060ff1615611409576040805162461bcd60e51b815260206004820152601260248201527115195b5c1bdc985c9a5b1e4814185d5cd95960721b604482015290519081900360640190fd5b6033805460010190819055606754604080516303795fb160e11b81526001600160a01b038781166004830152915160009392909216916306f2bf6291602480820192602092909190829003018186803b15801561146557600080fd5b505afa158015611479573d6000803e3d6000fd5b505050506040513d602081101561148f57600080fd5b505160408051636eb1769f60e11b815233600482015230602482015290519192506000916001600160a01b0384169163dd62ed3e916044808301926020929190829003018186803b1580156114e357600080fd5b505afa1580156114f7573d6000803e3d6000fd5b505050506040513d602081101561150d57600080fd5b50519050808511156115505760405162461bcd60e51b815260040180806020018281038252602c815260200180611f33602c913960400191505060405180910390fd5b60675460009061157090610c79908890600160a01b900461ffff16611b48565b9050826001600160a01b03166323b872dd333061158d8a86611bea565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b1580156115f557600080fd5b505af1158015611609573d6000803e3d6000fd5b505050506040513d602081101561161f57600080fd5b5051611663576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72323a646566697a61760941b604482015290519081900360640190fd5b606854604080516323b872dd60e01b81523360048201526001600160a01b039283166024820152604481018490529051918516916323b872dd916064808201926020929091908290030181600087803b1580156116bf57600080fd5b505af11580156116d3573d6000803e3d6000fd5b505050506040513d60208110156116e957600080fd5b505161172d576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72333a646566697a61760941b604482015290519081900360640190fd5b600080846001600160a01b031663f88bf15a6117498a86611bea565b60018061175842610708611c2c565b6040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018281526020019450505050506040805180830381600087803b1580156117a257600080fd5b505af11580156117b6573d6000803e3d6000fd5b505050506040513d60408110156117cc57600080fd5b508051602091820151604080516395b68fe760e01b81526004810183905290519295509093506000926001600160a01b038916926395b68fe7926024808201939291829003018186803b15801561182257600080fd5b505afa158015611836573d6000803e3d6000fd5b505050506040513d602081101561184c57600080fd5b50516040805163095ea7b360e01b81526001600160a01b038981166004830152602482018690529151929350908c169163095ea7b3916044808201926020929091908290030181600087803b1580156118a457600080fd5b505af11580156118b8573d6000803e3d6000fd5b505050506040513d60208110156118ce57600080fd5b50506001600160a01b038616637237e031836118f56118ee856062611b48565b6064611ba8565b61190142610708611c2c565b604080516001600160e01b031960e087901b1681526004810194909452602484019290925260448301523360648301525160848083019260209291908290030181600087803b15801561195357600080fd5b505af1158015611967573d6000803e3d6000fd5b505050506040513d602081101561197d57600080fd5b505033600081815260696020526040902084905561199a90611c86565b6119e3576040805162461bcd60e51b81526020600482015260156024820152740d2e6e6eaca40d2dc40e8e4c2dce6cccae4408aa89605b1b604482015290519081900360640190fd5b60408051660dedcd8f28aa8960cb1b815290519081900360070190206001600160a01b0387167fe9fe044b3557c78a96b97e3deb80d2bf7d9460225802982c02ea824b6bb8db038c33611a368e8a611bea565b604080516001600160a01b03948516815292909316602083015281830152606081018890526080810187905290519081900360a00190a3600197505050505050506033548114611acd576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505b92915050565b303b1590565b6001600160a01b038116611b205760405162461bcd60e51b8152600401808060200182810382526026815260200180611e926026913960400191505060405180910390fd5b606680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600082611b5757506000611acf565b82820282848281611b6457fe5b0414611ba15760405162461bcd60e51b8152600401808060200182810382526021815260200180611ee46021913960400191505060405180910390fd5b9392505050565b6000611ba183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d95565b6000611ba183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e37565b600082820183811015611ba1576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260696020526040812054611ce1576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72343a446566695a61760941b604482015290519081900360640190fd5b6001600160a01b038216600081815260696020526040808220805490839055905190929083908381818185875af1925050503d8060008114611d3f576040519150601f19603f3d011682016040523d82523d6000602084013e611d44565b606091505b5050905080611d8b576040805162461bcd60e51b815260206004820152600e60248201526d06572726f72353a446566695a61760941b604482015290519081900360640190fd5b5060019392505050565b60008183611e215760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611de6578181015183820152602001611dce565b50505050905090810190601f168015611e135780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581611e2d57fe5b0495945050505050565b60008184841115611e895760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611de6578181015183820152602001611dce565b50505090039056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373796f7520617265206e6f7420617574686f726973656420746f2063616c6c20746869732066756e6374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645065726d697373696f6e20746f20446546695a6170206973206c657373207468616e20726571756573746564a265627a7a72315820b38ee8c0d7db04d43e5c8478f31704af5efd7b186dbf79d92c86b5f50c709af664736f6c634300050d0032
Deployed Bytecode Sourcemap
16126:10518:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25495:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25495: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;;;;;;;;;;;;;;25783:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25783:75:0;;;:::i;25170:285::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25170:285:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25170:285:0;-1:-1:-1;;;;;25170:285:0;;:::i;25651:93::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25651: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;18296:168::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18296:168:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18296:168:0;-1:-1:-1;;;;;18296:168:0;;:::i;16347:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16347:28:0;;;:::i;25951:91::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25951: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:241::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18047:241:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18047:241:0;;;;:::i;16493:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16493:32:0;;;:::i;26197:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26197:117:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26197:117:0;-1:-1:-1;;;;;26197:117:0;;:::i;20995:3546::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20995:3546:0;;;;;;;;;;;;;;;:::i;18472:2515::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18472:2515:0;;;;;;;;:::i;25495:86::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25566:7;;;-1:-1:-1;;25555:18:0;;25566:7;;;;25565:8;25555:18;;;25495:86::o;16586:29::-;;;-1:-1:-1;;;;;16586:29:0;;:::o;25783:75::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25844:5;;;;;-1:-1:-1;;;;;25844:5:0;25831:19;25170:285;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25308:71;;;-1:-1:-1;;;25308:71:0;;25363:4;25308:71;;;;;;25280:25;;-1:-1:-1;;;;;25308:32:0;;;;;:71;;;;;;;;;;;;;;;:32;:71;;;5:2:-1;;;;30:1;27;20:12;5:2;25308:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25308:71:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25308:71:0;25422:5;;25390:57;;;-1:-1:-1;;;25390:57:0;;25422:5;;;;-1:-1:-1;;;;;25422:5:0;;;25390:57;;;;;;;;;;;;25308:71;;-1:-1:-1;25390:31:0;;;;;:57;;;;;25308:71;;25390:57;;;;;;;;-1:-1:-1;25390:31:0;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;25390:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25390:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;25170:285:0:o;25651:93::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25699:5;;:37;;-1:-1:-1;;;;;25699:5:0;;;;;;;;;25722:4;25714:21;25699:37;;;;;;;;;25714:21;25699:5;:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25699:37:0;25651: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;18296:168::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18414:17;:42;;-1:-1:-1;;;;;;18414:42:0;-1:-1:-1;;;;;18414:42:0;;;;;;;;;;18296:168::o;16347:28::-;;;;;;-1:-1:-1;;;;;16347:28:0;;:::o;25951:91::-;26029:5;;;;;-1:-1:-1;;;;;26029:5:0;26015:10;:19;;25951: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:241::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18184:5;18167:13;:22;;;;18123:120;;;;;-1:-1:-1;;;18123:120:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18254:8;:24;;;;;;-1:-1:-1;;;18254:24:0;-1:-1:-1;;;;18254:24:0;;;;;;;;;18047:241::o;16493:32::-;;;-1:-1:-1;;;;;16493:32:0;;:::o;26197:117::-;17137:9;:7;:9::i;:::-;17129:66;;;;-1:-1:-1;;;17129:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26278:28;26297:8;26278:18;:28::i;20995:3546::-;16986:7;;21190: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;;;;;21350:21;;:56;;;-1:-1:-1;;;21350:56:0;;-1:-1:-1;;;;;21350:56:0;;;;;;;;;12007:13;;21350:21;;;;;:33;;:56;;;;;;;;;;;;;;;:21;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;21350:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21350:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21350:56:0;21574:21;;21616:15;;21574:59;;;-1:-1:-1;;;21574:59:0;;-1:-1:-1;;;;;21616:15:0;;;21574:59;;;;;;21350:56;;-1:-1:-1;21428:81:0;;21574:21;;;;;:33;;:59;;;;;21350:56;;21574:59;;;;;;;:21;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;21574:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21574:59:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21574:59:0;21684:104;;;-1:-1:-1;;;21684:104:0;;21739:10;21684:104;;;;21772:4;21684:104;;;;;;21574:59;;-1:-1:-1;21655:26:0;;-1:-1:-1;;;;;21684:40:0;;;;;:104;;;;;21574:59;;21684:104;;;;;;;:40;:104;;;5:2:-1;;;;30:1;27;20:12;5:2;21684:104:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21684:104:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21684:104:0;;-1:-1:-1;21821:40:0;;;;21799:134;;;;-1:-1:-1;;;21799:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22030:8;;21944:23;;21970:100;;21997:42;;22010:18;;-1:-1:-1;;;22030:8:0;;;;21997:12;:42::i;:::-;22054:5;21970:12;:100::i;:::-;21944:126;;22103:30;-1:-1:-1;;;;;22103:43:0;;22165:10;22202:4;22226:49;22239:18;22259:15;22226:12;:49::i;:::-;22103:187;;;;;;;;;;;;;-1:-1:-1;;;;;22103:187:0;-1:-1:-1;;;;;22103:187:0;;;;;;-1:-1:-1;;;;;22103:187:0;-1:-1:-1;;;;;22103:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22103:187:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22103:187:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22103:187:0;22081:251;;;;;-1:-1:-1;;;22081:251:0;;;;;;;;;;;;-1:-1:-1;;;22081:251:0;;;;;;;;;;;;;;;22456:17;;22365:157;;;-1:-1:-1;;;22365:157:0;;22427:10;22365:157;;;;-1:-1:-1;;;;;22456:17:0;;;22365:157;;;;;;;;;;;;:43;;;;;;:157;;;;;;;;;;;;;;;22456:17;22365:43;:157;;;5:2:-1;;;;30:1;27;20:12;5:2;22365:157:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22365:157:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22365:157:0;22343:221;;;;;-1:-1:-1;;;22343:221:0;;;;;;;;;;;;-1:-1:-1;;;22343:221:0;;;;;;;;;;;;;;;22576:19;22597:21;22622:30;-1:-1:-1;;;;;22622:60:0;;22697:49;22710:18;22730:15;22697:12;:49::i;:::-;22761:1;22777;22793:23;22806:3;22811:4;22793:12;:23::i;:::-;22622:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22622:205:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22622:205:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22622:205:0;;;;;;;;;-1:-1:-1;22622:205:0;-1:-1:-1;22838:1672:0;;;;22930:15;;-1:-1:-1;;;;;22897:49:0;;;22930:15;;22897:49;;22871:125;;;;;-1:-1:-1;;;22871:125:0;;;;;;;;;;;;-1:-1:-1;;;22871:125:0;;;;;;;;;;;;;;;23011:33;-1:-1:-1;;;;;23011:57:0;;23093:11;23120:1;23123:23;23136:3;23141:4;23123:12;:23::i;:::-;23148:10;23011:148;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23011:148:0;-1:-1:-1;;;;;23011:148:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23011:148:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23011:148:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;23174:142:0;;;-1:-1:-1;;;23174:142:0;;-1:-1:-1;;;;;23174:142:0;;;;;;;;;;;;;;;:37;;;;;;:142;;;;;23011:148;;23174:142;;;;;;;;-1:-1:-1;23174:37:0;:142;;;5:2:-1;;;;30:1;27;20:12;5:2;23174:142:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23174:142:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;23331:56:0;;;23406:13;23438:1;;23478:23;23491:3;23496:4;23478:12;:23::i;:::-;23557:15;;23331:257;;;-1:-1:-1;;;;;;23331:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23520:10;23331:257;;;;-1:-1:-1;;;;;23557:15:0;23331:257;;;;;;;;;;;;;;;;;;;23557:15;23331:257;;;;5:2:-1;;;;30:1;27;20:12;5:2;23331:257:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23331:257:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;23608:306:0;;;-1:-1:-1;;;23608:306:0;;;;;;;;;;;;-1:-1:-1;;;;;23608:306:0;;;23690:21;23731:10;23760:49;23773:18;23793:15;23760:12;:49::i;:::-;23608:306;;;-1:-1:-1;;;;;23608:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22838:1672;;;23947:30;-1:-1:-1;;;;;23947:54:0;;24026:11;24053:1;24056:23;24069:3;24074:4;24056:12;:23::i;:::-;24081:10;23947:145;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23947:145:0;-1:-1:-1;;;;;23947:145:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23947:145:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23947:145:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;24107:65:0;;;-1:-1:-1;;;24107:65:0;;24146:10;24107:65;;;;;;;;;;;;-1:-1:-1;;;;;24107:38:0;;;;;:65;;;;;23947:145;;24107:65;;;;;;;-1:-1:-1;24107:38:0;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;24107:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24107:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;24192:306:0;;;-1:-1:-1;;;24192:306:0;;;;;;;;;;;;-1:-1:-1;;;;;24192:306:0;;;24274:21;24315:10;24344:49;24357:18;24377:15;24344:12;:49::i;:::-;24192:306;;;-1:-1:-1;;;;;24192:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22838:1672;24529:4;24522:11;;;;;;;;12119:13;;12103:12;:29;12095:73;;;;;-1:-1:-1;;;12095:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17071:1;20995:3546;;;;;:::o;18472:2515::-;16986:7;;18639: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;;;;;18799:21;;:56;;;-1:-1:-1;;;18799:56:0;;-1:-1:-1;;;;;18799:56:0;;;;;;;;;12007:13;;18799:21;;;;;:33;;:56;;;;;;;;;;;;;;;:21;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;18799:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18799:56:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18799:56:0;18906:104;;;-1:-1:-1;;;18906:104:0;;18961:10;18906:104;;;;18994:4;18906:104;;;;;;18799:56;;-1:-1:-1;18877:26:0;;-1:-1:-1;;;;;18906:40:0;;;;;:104;;;;;18799:56;;18906:104;;;;;;;:40;:104;;;5:2:-1;;;;30:1;27;20:12;5:2;18906:104:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18906:104:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18906:104:0;;-1:-1:-1;19043:40:0;;;;19021:134;;;;-1:-1:-1;;;19021:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19252:8;;19166:23;;19192:100;;19219:42;;19232:18;;-1:-1:-1;;;19252:8:0;;;;19219:12;:42::i;19192:100::-;19166:126;;19325:30;-1:-1:-1;;;;;19325:43:0;;19387:10;19424:4;19448:49;19461:18;19481:15;19448:12;:49::i;:::-;19325:187;;;;;;;;;;;;;-1:-1:-1;;;;;19325:187:0;-1:-1:-1;;;;;19325:187:0;;;;;;-1:-1:-1;;;;;19325:187:0;-1:-1:-1;;;;;19325:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19325:187:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19325:187:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19325:187:0;19303:251;;;;;-1:-1:-1;;;19303:251:0;;;;;;;;;;;;-1:-1:-1;;;19303:251:0;;;;;;;;;;;;;;;19678:17;;19587:157;;;-1:-1:-1;;;19587:157:0;;19649:10;19587:157;;;;-1:-1:-1;;;;;19678:17:0;;;19587:157;;;;;;;;;;;;:43;;;;;;:157;;;;;;;;;;;;;;;19678:17;19587:43;:157;;;5:2:-1;;;;30:1;27;20:12;5:2;19587:157:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19587:157:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19587:157:0;19565:221;;;;;-1:-1:-1;;;19565:221:0;;;;;;;;;;;;-1:-1:-1;;;19565:221:0;;;;;;;;;;;;;;;19800:19;19821:21;19846:30;-1:-1:-1;;;;;19846:60:0;;19921:49;19934:18;19954:15;19921:12;:49::i;:::-;19985:1;20001;20017:23;20030:3;20035:4;20017:12;:23::i;:::-;19846:205;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19846:205:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19846:205:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19846:205:0;;;;;;;;20091:83;;-1:-1:-1;;;20091:83:0;;;;;;;;;;19846:205;;-1:-1:-1;19846:205:0;;-1:-1:-1;20064:24:0;;-1:-1:-1;;;;;20091:68:0;;;;;:83;;;;;19846:205;20091:83;;;;;;:68;:83;;;5:2:-1;;;;30:1;27;20:12;5:2;20091:83:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20091:83:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20091:83:0;20185:130;;;-1:-1:-1;;;20185:130:0;;-1:-1:-1;;;;;20185:130:0;;;;;;;;;;;;;;;20091:83;;-1:-1:-1;20185:37:0;;;;;;:130;;;;;20091:83;;20185:130;;;;;;;;-1:-1:-1;20185:37:0;:130;;;5:2:-1;;;;30:1;27;20:12;5:2;20185:130:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20185:130:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;20326:54:0;;;20395:13;20423:53;20436:34;20449:16;20467:2;20436:12;:34::i;:::-;20472:3;20423:12;:53::i;:::-;20491:23;20504:3;20509:4;20491:12;:23::i;:::-;20326:224;;;-1:-1:-1;;;;;;20326:224:0;;;;;;;;;;;;;;;;;;;;;;;;;20529:10;20326:224;;;;;;;;;;;;;;;;;;;-1:-1:-1;20326:224:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;20326:224:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20326:224:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;20573:10:0;20561:23;;;;:11;20326:224;20561:23;;;;:37;;;20617:24;;:12;:24::i;:::-;20609:58;;;;;-1:-1:-1;;;20609:58:0;;;;;;;;;;;;-1:-1:-1;;;20609:58:0;;;;;;;;;;;;;;;20683:274;;;-1:-1:-1;;;20683:274:0;;;;;;;;;;;;-1:-1:-1;;;;;20683:274:0;;;20757:21;20794:10;20819:49;20832:18;20852:15;20819:12;:49::i;:::-;20683:274;;;-1:-1:-1;;;;;20683:274:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20975:4;20968:11;;;;;;;;12119:13;;12103:12;:29;12095:73;;;;;-1:-1:-1;;;12095:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17071:1;16982:102;18472:2515;;;;:::o;1519:476::-;1959:7;1947:20;1982:7;1519:476;:::o;26420:219::-;-1:-1:-1;;;;;26516:22:0;;26494:110;;;;-1:-1:-1;;;26494:110:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26615:5;:16;;-1:-1:-1;;;;;26615:16:0;;;;;-1:-1:-1;;;;;;26615:16:0;;;;;;;;;26420: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;;;;;;;;;;;;;;;;;;;;;;;;;;;24549:403;-1:-1:-1;;;;;24643:32:0;;24618:4;24643:32;;;:11;:32;;;;;;24635:63;;;;;-1:-1:-1;;;24635:63:0;;;;;;;;;;;;-1:-1:-1;;;24635:63:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24726:32:0;;24709:14;24726:32;;;:11;:32;;;;;;;;24769:36;;;;24835:42;;24726:32;;;;;24709:14;24835:42;24709:14;24835:42;24726:32;;24835: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;;24816:61:0;;;24896:7;24888:34;;;;;-1:-1:-1;;;24888:34:0;;;;;;;;;;;;-1:-1:-1;;;24888:34:0;;;;;;;;;;;;;;;-1:-1:-1;24940:4:0;;24549:403;-1:-1:-1;;;24549: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://b38ee8c0d7db04d43e5c8478f31704af5efd7b186dbf79d92c86b5f50c709af6
Loading...
Loading
Loading...
Loading
OVERVIEW
Zap out V2 is an update to the existing Unzap. It adds the ability to remove liquidity into a single asset.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.