Overview
ETH Balance
0.013075826719144317 ETH
Eth Value
$50.52 (@ $3,863.27/ETH)Token Holdings
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 91 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Redeem QWN | 20163037 | 173 days ago | IN | 0 ETH | 0.00066256 | ||||
Redeem QWN | 19720573 | 235 days ago | IN | 0 ETH | 0.00122228 | ||||
Redeem QWN | 19554248 | 258 days ago | IN | 0 ETH | 0.00156075 | ||||
Redeem QWN | 19521124 | 263 days ago | IN | 0 ETH | 0.00270656 | ||||
Redeem QWN | 19491054 | 267 days ago | IN | 0 ETH | 0.0033395 | ||||
Redeem QWN | 19408111 | 279 days ago | IN | 0 ETH | 0.00424815 | ||||
Redeem QWN | 19381840 | 283 days ago | IN | 0 ETH | 0.00425967 | ||||
Redeem QWN | 19217670 | 306 days ago | IN | 0 ETH | 0.00106616 | ||||
Redeem QWN | 19217664 | 306 days ago | IN | 0 ETH | 0.00137855 | ||||
Redeem QWN | 19067961 | 327 days ago | IN | 0 ETH | 0.00073648 | ||||
Redeem QWN | 19067950 | 327 days ago | IN | 0 ETH | 0.00096019 | ||||
Redeem QWN | 19065051 | 327 days ago | IN | 0 ETH | 0.00098369 | ||||
Redeem QWN | 19059142 | 328 days ago | IN | 0 ETH | 0.00081435 | ||||
Redeem QWN | 19039334 | 331 days ago | IN | 0 ETH | 0.00187137 | ||||
Redeem QWN | 19035556 | 331 days ago | IN | 0 ETH | 0.00381953 | ||||
Redeem QWN | 18982327 | 339 days ago | IN | 0 ETH | 0.00137689 | ||||
Redeem QWN | 18982256 | 339 days ago | IN | 0 ETH | 0.00142874 | ||||
Redeem QWN | 18973373 | 340 days ago | IN | 0 ETH | 0.00113022 | ||||
Redeem QWN | 18963346 | 341 days ago | IN | 0 ETH | 0.00188679 | ||||
Redeem QWN | 18954861 | 342 days ago | IN | 0 ETH | 0.00198531 | ||||
Redeem QWN | 18953048 | 343 days ago | IN | 0 ETH | 0.00226158 | ||||
Redeem QWN | 18924815 | 347 days ago | IN | 0 ETH | 0.00062444 | ||||
Redeem QWN | 18914746 | 348 days ago | IN | 0 ETH | 0.00125406 | ||||
Redeem QWN | 18895927 | 351 days ago | IN | 0 ETH | 0.00124308 | ||||
Redeem QWN | 18885943 | 352 days ago | IN | 0 ETH | 0.00175898 |
Loading...
Loading
Contract Name:
QWNTreasury
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* By Participating In The Quantum Wealth Network You Are Accelerating Your Wealth With A Strong Network Of Beautiful Souls Telegram: https://t.me/+JsdS-pXyFXNlZTgx Twitter: https://twitter.com/QuantumWN */ pragma solidity 0.8.19; import "@openzeppelin/contracts/access/Ownable.sol"; import "./interface/IQWN.sol"; import "./interface/IWETH.sol"; import "./interface/IUniswapV2Router02.sol"; /// @title QWNTreasury /// @notice QWN TREASURY contract QWNTreasury is Ownable { /// STATE VARIABLS /// /// @notice Address of UniswapV2Router IUniswapV2Router02 public immutable uniswapV2Router; /// @notice QWN address address public immutable QWN; /// @notice WETH address address public immutable WETH; /// @notice QWN/ETH LP address public immutable uniswapV2Pair; /// @notice Distributor address public distributor; /// @notice 0.0001 ETHER uint256 public constant BACKING = 0.0001 ether; /// @notice Time to wait before removing liquidity again uint256 public constant TIME_TO_WAIT = 1 days; /// @notice Max percent of liqudity that can be removed at one time uint256 public constant MAX_REMOVAL = 10; /// @notice Timestamp of last liquidity removal uint256 public lastRemoval; /// CONSTRUCTOR /// /// @param _QWN Address of QWN /// @param _WETH Address of WETH constructor(address _QWN, address _WETH) { QWN = _QWN; WETH = _WETH; uniswapV2Pair = IQWN(QWN).uniswapV2Pair(); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; } /// RECEIVE /// /// @notice Allow to receive ETH receive() external payable {} /// MINTER FUNCTION /// /// @notice Distributor mints QWN /// @param _to Address where to mint QWN /// @param _amount Amount of QWN to mint function mintQWN(address _to, uint256 _amount) external { require(msg.sender == distributor, "msg.sender is not distributor"); IQWN(QWN).mint(_to, _amount); } /// VIEW FUNCTION /// /// @notice Returns amount of excess reserves /// @return value_ Excess reserves function excessReserves() external view returns (uint256 value_) { uint256 _balance = IERC20(WETH).balanceOf(address(this)); uint256 _value = (_balance * 1e9) / BACKING; if (IERC20(QWN).totalSupply() > _value) return 0; return (_value - IERC20(QWN).totalSupply()); } /// MUTATIVE FUNCTIONS /// /// @notice Redeem QWN for backing /// @param _amount Amount of QWN to redeem function redeemQWN(uint256 _amount) external { IQWN(QWN).burnFrom(msg.sender, _amount); IERC20(WETH).transfer(msg.sender, (_amount * BACKING) / 1e9); } /// @notice Wrap any ETH in conract function wrapETH() external { uint256 ethBalance_ = address(this).balance; if (ethBalance_ > 0) IWETH(WETH).deposit{value: ethBalance_}(); } /// OWNER FUNCTIONS /// /// @notice Set QWN distributor /// @param _distributor Address of QWN distributor function setDistributor(address _distributor) external onlyOwner { require(distributor == address(0), "distributor already set"); distributor = _distributor; } /// @notice Remove liquidity and add to backing /// @param _amount Amount of liquidity to remove function removeLiquidity(uint256 _amount) external onlyOwner { uint256 balance = IERC20(uniswapV2Pair).balanceOf(address(this)); require( _amount <= (balance * MAX_REMOVAL) / 100, "Removing more than 10% of liquidity" ); require( block.timestamp > lastRemoval + TIME_TO_WAIT, "Removed before 1 day lock" ); lastRemoval = block.timestamp; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), _amount); uniswapV2Router.removeLiquidityETHSupportingFeeOnTransferTokens( QWN, _amount, 0, 0, address(this), block.timestamp ); _burnQWN(); } /// @notice Withdraw stuck token from treasury /// @param _amount Amount of token to remove /// @param _token Address of token to remove function withdrawStuckToken( uint256 _amount, address _token ) external onlyOwner { require(_token != WETH, "Can not withdraw WETH"); require(_token != uniswapV2Pair, "Can not withdraw LP"); IERC20(_token).transfer(msg.sender, _amount); } /// INTERNAL FUNCTION /// /// @notice Burn QWN from Treasury to increase backing /// @dev Invoked in `removeLiquidity()` function _burnQWN() internal { uint256 balance = IERC20(QWN).balanceOf(address(this)); IQWN(QWN).burn(balance); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; import "../IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); /** * @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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; pragma solidity 0.8.19; interface IQWN is IERC20Metadata { function mint(address to_, uint256 amount_) external; function burnFrom(address account_, uint256 amount_) external; function burn(uint256 amount_) external; function uniswapV2Pair() external view returns (address); }
pragma solidity 0.8.19; interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); }
pragma solidity >=0.5.0; interface IWETH { function deposit() external payable; function transfer(address to, uint value) external returns (bool); function transferFrom( address from, address to, uint value ) external returns (bool); function withdraw(uint) external; }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_QWN","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"BACKING","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_REMOVAL","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"QWN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIME_TO_WAIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"excessReserves","outputs":[{"internalType":"uint256","name":"value_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRemoval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mintQWN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"redeemQWN","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_distributor","type":"address"}],"name":"setDistributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_token","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wrapETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6101006040523480156200001257600080fd5b5060405162001f9338038062001f938339818101604052810190620000389190620002f3565b620000586200004c620001bd60201b60201c565b620001c560201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff166349bd5a5e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200010e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200013491906200033a565b73ffffffffffffffffffffffffffffffffffffffff1660e08173ffffffffffffffffffffffffffffffffffffffff16815250506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505050506200036c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002bb826200028e565b9050919050565b620002cd81620002ae565b8114620002d957600080fd5b50565b600081519050620002ed81620002c2565b92915050565b600080604083850312156200030d576200030c62000289565b5b60006200031d85828601620002dc565b92505060206200033085828601620002dc565b9150509250929050565b60006020828403121562000353576200035262000289565b5b60006200036384828501620002dc565b91505092915050565b60805160a05160c05160e051611b7d62000416600039600081816107a7015281816109ac01528181610be10152610d31015260008181610426015281816106db0152818161091e01528181610ed20152610f570152600081816104e8015281816105880152818161064e015281816107cb0152818161088501528181610e2c01528181611174015261121001526000818161062a01528181610d6d0152610df00152611b7d6000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063ad5c464811610064578063ad5c46481461034c578063bfe1092814610377578063ddbed26f146103a2578063e19b4a17146103cd578063f2fde38b146103f85761011f565b8063715018a6146102a157806375619ab5146102b85780638da5cb5b146102e15780639c8f9f231461030c578063a85ef678146103355761011f565b806349bd5a5e116100e757806349bd5a5e146101ce57806359193ad9146101f95780636312d0e714610224578063678620d41461024f578063686d675a146102785761011f565b80630c3513a8146101245780631694505e1461014f5780632527f4781461017a57806329a9736a146101a35761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610421565b60405161014691906112bd565b60405180910390f35b34801561015b57600080fd5b50610164610628565b6040516101719190611357565b60405180910390f35b34801561018657600080fd5b506101a1600480360381019061019c91906113a3565b61064c565b005b3480156101af57600080fd5b506101b861079b565b6040516101c591906112bd565b60405180910390f35b3480156101da57600080fd5b506101e36107a5565b6040516101f091906113f1565b60405180910390f35b34801561020557600080fd5b5061020e6107c9565b60405161021b91906113f1565b60405180910390f35b34801561023057600080fd5b506102396107ed565b60405161024691906112bd565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190611438565b6107f3565b005b34801561028457600080fd5b5061029f600480360381019061029a9190611478565b610914565b005b3480156102ad57600080fd5b506102b6610abb565b005b3480156102c457600080fd5b506102df60048036038101906102da91906114b8565b610acf565b005b3480156102ed57600080fd5b506102f6610bac565b60405161030391906113f1565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e91906113a3565b610bd5565b005b34801561034157600080fd5b5061034a610ec2565b005b34801561035857600080fd5b50610361610f55565b60405161036e91906113f1565b60405180910390f35b34801561038357600080fd5b5061038c610f79565b60405161039991906113f1565b60405180910390f35b3480156103ae57600080fd5b506103b7610f9f565b6040516103c491906112bd565b60405180910390f35b3480156103d957600080fd5b506103e2610fa4565b6040516103ef91906112bd565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a91906114b8565b610fab565b005b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161047d91906113f1565b602060405180830381865afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906114fa565b90506000655af3107a4000633b9aca00836104d99190611556565b6104e391906115c7565b9050807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610551573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057591906114fa565b111561058657600092505050610625565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061591906114fa565b8161062091906115f8565b925050505b90565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379cc679033836040518363ffffffff1660e01b81526004016106a792919061162c565b600060405180830381600087803b1580156106c157600080fd5b505af11580156106d5573d6000803e3d6000fd5b505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33633b9aca00655af3107a40008561072d9190611556565b61073791906115c7565b6040518363ffffffff1660e01b815260040161075492919061162c565b6020604051808303816000875af1158015610773573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610797919061168d565b5050565b655af3107a400081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a90611717565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b81526004016108de92919061162c565b600060405180830381600087803b1580156108f857600080fd5b505af115801561090c573d6000803e3d6000fd5b505050505050565b61091c61102e565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a190611783565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f906117ef565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610a7392919061162c565b6020604051808303816000875af1158015610a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab6919061168d565b505050565b610ac361102e565b610acd60006110ac565b565b610ad761102e565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f9061185b565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bdd61102e565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c3891906113f1565b602060405180830381865afa158015610c55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7991906114fa565b90506064600a82610c8a9190611556565b610c9491906115c7565b821115610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd906118ed565b60405180910390fd5b62015180600254610ce7919061190d565b4211610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f9061198d565b60405180910390fd5b426002819055507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000000000000000000000000000000000000000000000846040518363ffffffff1660e01b8152600401610daa92919061162c565b6020604051808303816000875af1158015610dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ded919061168d565b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663af2979eb7f00000000000000000000000000000000000000000000000000000000000000008460008030426040518763ffffffff1660e01b8152600401610e72969594939291906119e8565b6020604051808303816000875af1158015610e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb591906114fa565b50610ebe611170565b5050565b60004790506000811115610f52577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610f3857600080fd5b505af1158015610f4c573d6000803e3d6000fd5b50505050505b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a81565b6201518081565b610fb361102e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101990611abb565b60405180910390fd5b61102b816110ac565b50565b61103661129c565b73ffffffffffffffffffffffffffffffffffffffff16611054610bac565b73ffffffffffffffffffffffffffffffffffffffff16146110aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a190611b27565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111cb91906113f1565b602060405180830381865afa1580156111e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120c91906114fa565b90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166342966c68826040518263ffffffff1660e01b815260040161126791906112bd565b600060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b5050505050565b600033905090565b6000819050919050565b6112b7816112a4565b82525050565b60006020820190506112d260008301846112ae565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061131d611318611313846112d8565b6112f8565b6112d8565b9050919050565b600061132f82611302565b9050919050565b600061134182611324565b9050919050565b61135181611336565b82525050565b600060208201905061136c6000830184611348565b92915050565b600080fd5b611380816112a4565b811461138b57600080fd5b50565b60008135905061139d81611377565b92915050565b6000602082840312156113b9576113b8611372565b5b60006113c78482850161138e565b91505092915050565b60006113db826112d8565b9050919050565b6113eb816113d0565b82525050565b600060208201905061140660008301846113e2565b92915050565b611415816113d0565b811461142057600080fd5b50565b6000813590506114328161140c565b92915050565b6000806040838503121561144f5761144e611372565b5b600061145d85828601611423565b925050602061146e8582860161138e565b9150509250929050565b6000806040838503121561148f5761148e611372565b5b600061149d8582860161138e565b92505060206114ae85828601611423565b9150509250929050565b6000602082840312156114ce576114cd611372565b5b60006114dc84828501611423565b91505092915050565b6000815190506114f481611377565b92915050565b6000602082840312156115105761150f611372565b5b600061151e848285016114e5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611561826112a4565b915061156c836112a4565b925082820261157a816112a4565b9150828204841483151761159157611590611527565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006115d2826112a4565b91506115dd836112a4565b9250826115ed576115ec611598565b5b828204905092915050565b6000611603826112a4565b915061160e836112a4565b925082820390508181111561162657611625611527565b5b92915050565b600060408201905061164160008301856113e2565b61164e60208301846112ae565b9392505050565b60008115159050919050565b61166a81611655565b811461167557600080fd5b50565b60008151905061168781611661565b92915050565b6000602082840312156116a3576116a2611372565b5b60006116b184828501611678565b91505092915050565b600082825260208201905092915050565b7f6d73672e73656e646572206973206e6f74206469737472696275746f72000000600082015250565b6000611701601d836116ba565b915061170c826116cb565b602082019050919050565b60006020820190508181036000830152611730816116f4565b9050919050565b7f43616e206e6f7420776974686472617720574554480000000000000000000000600082015250565b600061176d6015836116ba565b915061177882611737565b602082019050919050565b6000602082019050818103600083015261179c81611760565b9050919050565b7f43616e206e6f74207769746864726177204c5000000000000000000000000000600082015250565b60006117d96013836116ba565b91506117e4826117a3565b602082019050919050565b60006020820190508181036000830152611808816117cc565b9050919050565b7f6469737472696275746f7220616c726561647920736574000000000000000000600082015250565b60006118456017836116ba565b91506118508261180f565b602082019050919050565b6000602082019050818103600083015261187481611838565b9050919050565b7f52656d6f76696e67206d6f7265207468616e20313025206f66206c697175696460008201527f6974790000000000000000000000000000000000000000000000000000000000602082015250565b60006118d76023836116ba565b91506118e28261187b565b604082019050919050565b60006020820190508181036000830152611906816118ca565b9050919050565b6000611918826112a4565b9150611923836112a4565b925082820190508082111561193b5761193a611527565b5b92915050565b7f52656d6f766564206265666f7265203120646179206c6f636b00000000000000600082015250565b60006119776019836116ba565b915061198282611941565b602082019050919050565b600060208201905081810360008301526119a68161196a565b9050919050565b6000819050919050565b60006119d26119cd6119c8846119ad565b6112f8565b6112a4565b9050919050565b6119e2816119b7565b82525050565b600060c0820190506119fd60008301896113e2565b611a0a60208301886112ae565b611a1760408301876119d9565b611a2460608301866119d9565b611a3160808301856113e2565b611a3e60a08301846112ae565b979650505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611aa56026836116ba565b9150611ab082611a49565b604082019050919050565b60006020820190508181036000830152611ad481611a98565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b116020836116ba565b9150611b1c82611adb565b602082019050919050565b60006020820190508181036000830152611b4081611b04565b905091905056fea2646970667358221220e78b9bfcef94ca0929c356af766d406e5f6189816e5205c071ba085468d6bd4f64736f6c63430008130033000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Deployed Bytecode
0x6080604052600436106101185760003560e01c8063715018a6116100a0578063ad5c464811610064578063ad5c46481461034c578063bfe1092814610377578063ddbed26f146103a2578063e19b4a17146103cd578063f2fde38b146103f85761011f565b8063715018a6146102a157806375619ab5146102b85780638da5cb5b146102e15780639c8f9f231461030c578063a85ef678146103355761011f565b806349bd5a5e116100e757806349bd5a5e146101ce57806359193ad9146101f95780636312d0e714610224578063678620d41461024f578063686d675a146102785761011f565b80630c3513a8146101245780631694505e1461014f5780632527f4781461017a57806329a9736a146101a35761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610421565b60405161014691906112bd565b60405180910390f35b34801561015b57600080fd5b50610164610628565b6040516101719190611357565b60405180910390f35b34801561018657600080fd5b506101a1600480360381019061019c91906113a3565b61064c565b005b3480156101af57600080fd5b506101b861079b565b6040516101c591906112bd565b60405180910390f35b3480156101da57600080fd5b506101e36107a5565b6040516101f091906113f1565b60405180910390f35b34801561020557600080fd5b5061020e6107c9565b60405161021b91906113f1565b60405180910390f35b34801561023057600080fd5b506102396107ed565b60405161024691906112bd565b60405180910390f35b34801561025b57600080fd5b5061027660048036038101906102719190611438565b6107f3565b005b34801561028457600080fd5b5061029f600480360381019061029a9190611478565b610914565b005b3480156102ad57600080fd5b506102b6610abb565b005b3480156102c457600080fd5b506102df60048036038101906102da91906114b8565b610acf565b005b3480156102ed57600080fd5b506102f6610bac565b60405161030391906113f1565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e91906113a3565b610bd5565b005b34801561034157600080fd5b5061034a610ec2565b005b34801561035857600080fd5b50610361610f55565b60405161036e91906113f1565b60405180910390f35b34801561038357600080fd5b5061038c610f79565b60405161039991906113f1565b60405180910390f35b3480156103ae57600080fd5b506103b7610f9f565b6040516103c491906112bd565b60405180910390f35b3480156103d957600080fd5b506103e2610fa4565b6040516103ef91906112bd565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a91906114b8565b610fab565b005b6000807f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161047d91906113f1565b602060405180830381865afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906114fa565b90506000655af3107a4000633b9aca00836104d99190611556565b6104e391906115c7565b9050807f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610551573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057591906114fa565b111561058657600092505050610625565b7f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061591906114fa565b8161062091906115f8565b925050505b90565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b7f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166379cc679033836040518363ffffffff1660e01b81526004016106a792919061162c565b600060405180830381600087803b1580156106c157600080fd5b505af11580156106d5573d6000803e3d6000fd5b505050507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33633b9aca00655af3107a40008561072d9190611556565b61073791906115c7565b6040518363ffffffff1660e01b815260040161075492919061162c565b6020604051808303816000875af1158015610773573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610797919061168d565b5050565b655af3107a400081565b7f0000000000000000000000004ebdf501199410fc6caa1fa8c77da9aad46594ce81565b7f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a81565b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a90611717565b60405180910390fd5b7f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166340c10f1983836040518363ffffffff1660e01b81526004016108de92919061162c565b600060405180830381600087803b1580156108f857600080fd5b505af115801561090c573d6000803e3d6000fd5b505050505050565b61091c61102e565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a190611783565b60405180910390fd5b7f0000000000000000000000004ebdf501199410fc6caa1fa8c77da9aad46594ce73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f906117ef565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401610a7392919061162c565b6020604051808303816000875af1158015610a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab6919061168d565b505050565b610ac361102e565b610acd60006110ac565b565b610ad761102e565b600073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f9061185b565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bdd61102e565b60007f0000000000000000000000004ebdf501199410fc6caa1fa8c77da9aad46594ce73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c3891906113f1565b602060405180830381865afa158015610c55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7991906114fa565b90506064600a82610c8a9190611556565b610c9491906115c7565b821115610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd906118ed565b60405180910390fd5b62015180600254610ce7919061190d565b4211610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f9061198d565b60405180910390fd5b426002819055507f0000000000000000000000004ebdf501199410fc6caa1fa8c77da9aad46594ce73ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846040518363ffffffff1660e01b8152600401610daa92919061162c565b6020604051808303816000875af1158015610dc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ded919061168d565b507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663af2979eb7f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a8460008030426040518763ffffffff1660e01b8152600401610e72969594939291906119e8565b6020604051808303816000875af1158015610e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb591906114fa565b50610ebe611170565b5050565b60004790506000811115610f52577f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015610f3857600080fd5b505af1158015610f4c573d6000803e3d6000fd5b50505050505b50565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a81565b6201518081565b610fb361102e565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101990611abb565b60405180910390fd5b61102b816110ac565b50565b61103661129c565b73ffffffffffffffffffffffffffffffffffffffff16611054610bac565b73ffffffffffffffffffffffffffffffffffffffff16146110aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a190611b27565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111cb91906113f1565b602060405180830381865afa1580156111e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120c91906114fa565b90507f000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a73ffffffffffffffffffffffffffffffffffffffff166342966c68826040518263ffffffff1660e01b815260040161126791906112bd565b600060405180830381600087803b15801561128157600080fd5b505af1158015611295573d6000803e3d6000fd5b5050505050565b600033905090565b6000819050919050565b6112b7816112a4565b82525050565b60006020820190506112d260008301846112ae565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061131d611318611313846112d8565b6112f8565b6112d8565b9050919050565b600061132f82611302565b9050919050565b600061134182611324565b9050919050565b61135181611336565b82525050565b600060208201905061136c6000830184611348565b92915050565b600080fd5b611380816112a4565b811461138b57600080fd5b50565b60008135905061139d81611377565b92915050565b6000602082840312156113b9576113b8611372565b5b60006113c78482850161138e565b91505092915050565b60006113db826112d8565b9050919050565b6113eb816113d0565b82525050565b600060208201905061140660008301846113e2565b92915050565b611415816113d0565b811461142057600080fd5b50565b6000813590506114328161140c565b92915050565b6000806040838503121561144f5761144e611372565b5b600061145d85828601611423565b925050602061146e8582860161138e565b9150509250929050565b6000806040838503121561148f5761148e611372565b5b600061149d8582860161138e565b92505060206114ae85828601611423565b9150509250929050565b6000602082840312156114ce576114cd611372565b5b60006114dc84828501611423565b91505092915050565b6000815190506114f481611377565b92915050565b6000602082840312156115105761150f611372565b5b600061151e848285016114e5565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611561826112a4565b915061156c836112a4565b925082820261157a816112a4565b9150828204841483151761159157611590611527565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006115d2826112a4565b91506115dd836112a4565b9250826115ed576115ec611598565b5b828204905092915050565b6000611603826112a4565b915061160e836112a4565b925082820390508181111561162657611625611527565b5b92915050565b600060408201905061164160008301856113e2565b61164e60208301846112ae565b9392505050565b60008115159050919050565b61166a81611655565b811461167557600080fd5b50565b60008151905061168781611661565b92915050565b6000602082840312156116a3576116a2611372565b5b60006116b184828501611678565b91505092915050565b600082825260208201905092915050565b7f6d73672e73656e646572206973206e6f74206469737472696275746f72000000600082015250565b6000611701601d836116ba565b915061170c826116cb565b602082019050919050565b60006020820190508181036000830152611730816116f4565b9050919050565b7f43616e206e6f7420776974686472617720574554480000000000000000000000600082015250565b600061176d6015836116ba565b915061177882611737565b602082019050919050565b6000602082019050818103600083015261179c81611760565b9050919050565b7f43616e206e6f74207769746864726177204c5000000000000000000000000000600082015250565b60006117d96013836116ba565b91506117e4826117a3565b602082019050919050565b60006020820190508181036000830152611808816117cc565b9050919050565b7f6469737472696275746f7220616c726561647920736574000000000000000000600082015250565b60006118456017836116ba565b91506118508261180f565b602082019050919050565b6000602082019050818103600083015261187481611838565b9050919050565b7f52656d6f76696e67206d6f7265207468616e20313025206f66206c697175696460008201527f6974790000000000000000000000000000000000000000000000000000000000602082015250565b60006118d76023836116ba565b91506118e28261187b565b604082019050919050565b60006020820190508181036000830152611906816118ca565b9050919050565b6000611918826112a4565b9150611923836112a4565b925082820190508082111561193b5761193a611527565b5b92915050565b7f52656d6f766564206265666f7265203120646179206c6f636b00000000000000600082015250565b60006119776019836116ba565b915061198282611941565b602082019050919050565b600060208201905081810360008301526119a68161196a565b9050919050565b6000819050919050565b60006119d26119cd6119c8846119ad565b6112f8565b6112a4565b9050919050565b6119e2816119b7565b82525050565b600060c0820190506119fd60008301896113e2565b611a0a60208301886112ae565b611a1760408301876119d9565b611a2460608301866119d9565b611a3160808301856113e2565b611a3e60a08301846112ae565b979650505050505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611aa56026836116ba565b9150611ab082611a49565b604082019050919050565b60006020820190508181036000830152611ad481611a98565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611b116020836116ba565b9150611b1c82611adb565b602082019050919050565b60006020820190508181036000830152611b4081611b04565b905091905056fea2646970667358221220e78b9bfcef94ca0929c356af766d406e5f6189816e5205c071ba085468d6bd4f64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
-----Decoded View---------------
Arg [0] : _QWN (address): 0xb354b5da5EA39dadb1Cea8140bF242Eb24b1821A
Arg [1] : _WETH (address): 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b354b5da5ea39dadb1cea8140bf242eb24b1821a
Arg [1] : 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.