Contract Overview
Balance:
0 ETH
ETH Value:
$0.00
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Contract Name:
WardenCosmoCore
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Arbiscan.io on 2021-09-02 */ // SPDX-License-Identifier: MIT // ((/*, ,*((/,. // &&@@&&%#/*. .*(#&&@@@@%. // &&@@@@@@@&%(. ,#%&@@@@@@@@%. // &&@@@@@@@@@&&(, ,#&@@@@@@@@@@@%. // &&@@@@@@@@@@@&&/. .(&&@@@@@@@@@@@@%. // %&@@@@@@@@@@@@@&(, *#&@@@@@@@@@@@@@@%. // #&@@@@@@@@@@@@@@&#* .*#@@@@@@@@@@@@@@@&#. // #&@@@@@@@@@@@@@@@@#. ,%&@@@@@@@@@@@@@@@&#. // #&@@@@@@@@@@@@@@@@%(, ,(&@@@@@@@@@@@@@@@@&#. // #&@@@@@@@@@@@@@@@@&&/ .(%&@@@@@@@@@@@@@@@@&#. // #%@@@@@@@@@@@@@@@@@@(. ,(/,. .#&@@@@@@@@@@@@@@@@@&#. // (%@@@@@@@@@@@@@@@@@@#*. ./%&&&/. .*%@@@@@@@@@@@@@@@@@@%(. // (%@@@@@@@@@@@@@@@@@@#*. *#&@@@@&%*. .*%@@@@@@@@@@@@@@@@@@%(. // (%@@@@@@@@@@@@@@@@@@#/. ./#@@@@@@@@%(. ./%@@@@@@@@@@@@@@@@@@%(. // (%@@@@@@@@@@@@@@@@@@#/. ./&@@@@@@@@@@&(* ,/%@@@@@@@@@@@@@@@@@@%(. // (%@@@@@@@@@@@@@@@@@@%/. ,#&@@@@@@@@@@@@&#,. ,/%@@@@@@@@@@@@@@@@@@%(. // /%@@@@@@@@@@@@@@@@@@#/. *(&@@@@@@@@@@@@@@&&* ./%@@@@@@@@@@@@@@@@@&%(. // /%@@@@@@@@@@@@@@@@@@#/. .(&@@@@@@@@@@@@@@@@@#*. ,/%@@@@@@@@@@@@@@@@@&#/. // ,#@@@@@@@@@@@@@@@@@@#/. ./%@@@@@@@@@@@@@@@@@@&#, ,/%@@@@@@@@@@@@@@@@@&(, // /%&@@@@@@@@@@@@@@@@#/. *#&@@@@@@@@@@@@@@@@@@@&* ,/%@@@@@@@@@@@@@@@@&%* // .*#&@@@@@@@@@@@@@@@#/. /&&@@@@@@@@@@@@@@@@@@@&/. ,/%@@@@@@@@@@@@@@@@#*. // ,(&@@@@@@@@@@@@@@#/. /@@@@@@@@@@@@@@@@@@@@@&(, ,/%@@@@@@@@@@@@@@%(, // .*(&&@@@@@@@@@@@#/. /&&@@@@@@@@@@@@@@@@@@@&/, ,/%@@@@@@@@@@@&%/, // ./%&@@@@@@@@@#/. *#&@@@@@@@@@@@@@@@@@@@%* ,/%@@@@@@@@@&%* // ,/#%&&@@@@#/. ,#&@@@@@@@@@@@@@@@@@#/. ,/%@@@@&&%(/, // ./#&@@%/. ,/&@@@@@@@@@@@@@@%(, ,/%@@%#*. // .,,, ,/%&@@@@@@@@&%(* .,,,. // ,/%&@@@%(*. // .,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,**((/*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, // // pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @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: wx/libraries/IWardenTradingRoute0_8.sol pragma solidity ^0.8.0; /** * @title Warden Trading Route * @dev The Warden trading route interface has an standard functions and event * for other smart contract to implement to join Warden Swap as Market Maker. */ interface IWardenTradingRoute { /** * @dev when new trade occure (and success), this event will be boardcast. * @param _src Source token * @param _srcAmount amount of source tokens * @param _dest Destination token * @param _destAmount: amount of actual destination tokens */ event Trade( IERC20 indexed _src, uint256 _srcAmount, IERC20 indexed _dest, uint256 _destAmount ); /** * @notice use token address 0xeee...eee for ether * @dev makes a trade between src and dest token * @param _src Source token * @param _dest Destination token * @param _srcAmount amount of source tokens ** @return _destAmount: amount of actual destination tokens */ function trade( IERC20 _src, IERC20 _dest, uint256 _srcAmount, address receiver ) external payable returns(uint256 _destAmount); /** * @dev provide destinationm token amount for given source amount * @param _src Source token * @param _dest Destination token * @param _srcAmount Amount of source tokens ** @return _destAmount: amount of expected destination tokens */ function getDestinationReturnAmount( IERC20 _src, IERC20 _dest, uint256 _srcAmount ) external returns(uint256 _destAmount); function getDepositAddress( IERC20 _src, IERC20 _dest ) external view returns(address _target); } // File: wx/interface/IWardenCosmoCore0_8.sol pragma solidity ^0.8.0; interface IWardenCosmoCore { /** * @dev Struct of trading route * @param name Name of trading route. * @param enable The flag of trading route to check is trading route enable. * @param route The address of trading route. */ struct Route { string name; bool enable; IWardenTradingRoute route; } event AddedTradingRoute( address indexed addedBy, string name, IWardenTradingRoute indexed routingAddress, uint256 indexed index ); event UpdatedTradingRoute( address indexed updatedBy, string name, IWardenTradingRoute indexed routingAddress, uint256 indexed index ); event EnabledTradingRoute( address indexed enabledBy, string name, IWardenTradingRoute indexed routingAddress, uint256 indexed index ); event DisabledTradingRoute( address indexed disabledBy, string name, IWardenTradingRoute indexed routingAddress, uint256 indexed index ); function tradingRoutes(uint256 _index) external view returns (Route memory); function allRoutesLength() external view returns (uint256); function isTradingRouteEnabled(uint256 _index) external view returns (bool); } // File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.2.0/contracts/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; } } // File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.2.0/contracts/access/Ownable.sol pragma solidity ^0.8.0; /** * @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() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(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"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: wx/libraries/WardenCosmoCore.sol pragma solidity ^0.8.0; contract WardenCosmoCore is Ownable, IWardenCosmoCore { Route[] private _tradingRoutes; // list of trading routes modifier onlyTradingRouteEnabled(uint _index) { require(_tradingRoutes[_index].enable, "This trading route is disabled"); _; } modifier onlyTradingRouteDisabled(uint _index) { require(!_tradingRoutes[_index].enable, "This trading route is enabled"); _; } /** * @dev Function for adding new trading route * @param _name Name of trading route. * @param _routingAddress The address of trading route. ** @return length of trading routes. */ function addTradingRoute( string calldata _name, IWardenTradingRoute _routingAddress ) external onlyOwner { _tradingRoutes.push(Route({ name: _name, enable: true, route: _routingAddress })); emit AddedTradingRoute(msg.sender, _name, _routingAddress, _tradingRoutes.length - 1); } /** * @dev Function for updating existing trading route * @param _index The uint256 of trading route index. * @param _name Name of trading route. * @param _route The address of trading route. */ function updateTradingRoute( uint256 _index, string calldata _name, IWardenTradingRoute _route ) external onlyOwner { _tradingRoutes[_index].name = _name; _tradingRoutes[_index].route = _route; emit UpdatedTradingRoute(msg.sender, _name, _route, _index); } /** * @dev Function for disable trading route by index * @param _index The uint256 of trading route index. ** @return length of trading routes. */ function disableTradingRoute( uint256 _index ) external onlyOwner onlyTradingRouteEnabled(_index) { _tradingRoutes[_index].enable = false; emit DisabledTradingRoute(msg.sender, _tradingRoutes[_index].name, _tradingRoutes[_index].route, _index); } /** * @dev Function for enale trading route by index * @param _index The uint256 of trading route index. ** @return length of trading routes. */ function enableTradingRoute( uint256 _index ) external onlyOwner onlyTradingRouteDisabled(_index) { _tradingRoutes[_index].enable = true; emit EnabledTradingRoute(msg.sender, _tradingRoutes[_index].name, _tradingRoutes[_index].route, _index); } /** * @dev return trading route info */ function tradingRoutes( uint256 _index ) external override view returns (Route memory) { return _tradingRoutes[_index]; } /** * @dev Function for get amount of trading route * @return Amount of trading routes. */ function allRoutesLength() external override view returns (uint256) { return _tradingRoutes.length; } /** * @dev Function for get enable status of trading route * @param _index The uint256 of trading route index. * @return enable status of trading route. */ function isTradingRouteEnabled(uint256 _index) external override view returns (bool) { return _tradingRoutes[_index].enable; } }
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addedBy","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":true,"internalType":"contract IWardenTradingRoute","name":"routingAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"AddedTradingRoute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"disabledBy","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":true,"internalType":"contract IWardenTradingRoute","name":"routingAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"DisabledTradingRoute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"enabledBy","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":true,"internalType":"contract IWardenTradingRoute","name":"routingAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"EnabledTradingRoute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"updatedBy","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":true,"internalType":"contract IWardenTradingRoute","name":"routingAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"}],"name":"UpdatedTradingRoute","type":"event"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"contract IWardenTradingRoute","name":"_routingAddress","type":"address"}],"name":"addTradingRoute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allRoutesLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"disableTradingRoute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"enableTradingRoute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"isTradingRouteEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"tradingRoutes","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"enable","type":"bool"},{"internalType":"contract IWardenTradingRoute","name":"route","type":"address"}],"internalType":"struct IWardenCosmoCore.Route","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"contract IWardenTradingRoute","name":"_route","type":"address"}],"name":"updateTradingRoute","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610dc78061007e6000396000f3fe608060405234801561001057600080fd5b506004361061008e5760003560e01c80634ddf0bce146100935780635a9b50e0146100a8578063715018a6146100bb5780638da5cb5b146100c3578063b0cf0721146100e8578063b81f7505146100fb578063e254a4f31461010c578063e405a4061461012c578063f2fde38b1461013f578063f4de0d4f14610152575b600080fd5b6100a66100a1366004610b1a565b610175565b005b6100a66100b6366004610aab565b61027a565b6100a66103d0565b6100cb61040b565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a66100f6366004610b01565b61041a565b6001546040519081526020016100df565b61011f61011a366004610b01565b6105a7565b6040516100df9190610c84565b6100a661013a366004610b01565b6106ad565b6100a661014d366004610a87565b610810565b610165610160366004610b01565b6108b0565b60405190151581526020016100df565b3361017e61040b565b6001600160a01b0316146101ad5760405162461bcd60e51b81526004016101a490610c4f565b60405180910390fd5b8282600186815481106101c2576101c2610d66565b600091825260209091206101dc9360029092020191610932565b5080600185815481106101f1576101f1610d66565b906000526020600020906002020160010160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555083816001600160a01b0316336001600160a01b03167f9adb91c45b06f29d7d54533daaa319c7e7843e45edee7f0cc85b6ab5bda9cb36868660405161026c929190610b78565b60405180910390a450505050565b3361028361040b565b6001600160a01b0316146102a95760405162461bcd60e51b81526004016101a490610c4f565b6040805160806020601f8601819004028201810190925260608101848152600192829190879087908190850183828082843760009201829052509385525050600160208085018290526001600160a01b03881660409095019490945285549081018655948252508190208251805193946002029091019261032d92849201906109b6565b506020820151600191820180546040909401516001600160a01b031661010002610100600160a81b0319921515929092166001600160a81b03199094169390931717909155805461037e9190610d06565b816001600160a01b0316336001600160a01b03167fe50f1a4b29420cb0144d8fbaa9aa5d75b03b32b5abd03553588c9f40baf970bf86866040516103c3929190610b78565b60405180910390a4505050565b336103d961040b565b6001600160a01b0316146103ff5760405162461bcd60e51b81526004016101a490610c4f565b61040960006108e2565b565b6000546001600160a01b031690565b3361042361040b565b6001600160a01b0316146104495760405162461bcd60e51b81526004016101a490610c4f565b806001818154811061045d5761045d610d66565b600091825260209091206001600290920201015460ff166104c05760405162461bcd60e51b815260206004820152601e60248201527f546869732074726164696e6720726f7574652069732064697361626c6564000060448201526064016101a4565b6000600183815481106104d5576104d5610d66565b906000526020600020906002020160010160006101000a81548160ff021916908315150217905550816001838154811061051157610511610d66565b906000526020600020906002020160010160019054906101000a90046001600160a01b03166001600160a01b0316336001600160a01b03167f522343fed4da4ad88198645bf4de396fd09d83359b80334e5cab68eba80cd59e6001868154811061057d5761057d610d66565b906000526020600020906002020160000160405161059b9190610ba7565b60405180910390a45050565b6040805160608082018352815260006020820181905291810191909152600182815481106105d7576105d7610d66565b906000526020600020906002020160405180606001604052908160008201805461060090610d2b565b80601f016020809104026020016040519081016040528092919081815260200182805461062c90610d2b565b80156106795780601f1061064e57610100808354040283529160200191610679565b820191906000526020600020905b81548152906001019060200180831161065c57829003601f168201915b50505091835250506001919091015460ff81161515602083015261010090046001600160a01b031660409091015292915050565b336106b661040b565b6001600160a01b0316146106dc5760405162461bcd60e51b81526004016101a490610c4f565b80600181815481106106f0576106f0610d66565b600091825260209091206001600290920201015460ff16156107545760405162461bcd60e51b815260206004820152601d60248201527f546869732074726164696e6720726f75746520697320656e61626c656400000060448201526064016101a4565b600180838154811061076857610768610d66565b906000526020600020906002020160010160006101000a81548160ff02191690831515021790555081600183815481106107a4576107a4610d66565b906000526020600020906002020160010160019054906101000a90046001600160a01b03166001600160a01b0316336001600160a01b03167fe18f2d774ca2ed7ecfb01f8117b026c2c909e254f21f9d50461b1a7c1b1454056001868154811061057d5761057d610d66565b3361081961040b565b6001600160a01b03161461083f5760405162461bcd60e51b81526004016101a490610c4f565b6001600160a01b0381166108a45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101a4565b6108ad816108e2565b50565b6000600182815481106108c5576108c5610d66565b600091825260209091206001600290920201015460ff1692915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805461093e90610d2b565b90600052602060002090601f01602090048101928261096057600085556109a6565b82601f106109795782800160ff198235161785556109a6565b828001600101855582156109a6579182015b828111156109a657823582559160200191906001019061098b565b506109b2929150610a2a565b5090565b8280546109c290610d2b565b90600052602060002090601f0160209004810192826109e457600085556109a6565b82601f106109fd57805160ff19168380011785556109a6565b828001600101855582156109a6579182015b828111156109a6578251825591602001919060010190610a0f565b5b808211156109b25760008155600101610a2b565b60008083601f840112610a5157600080fd5b5081356001600160401b03811115610a6857600080fd5b602083019150836020828501011115610a8057600080fd5b9250929050565b600060208284031215610a9957600080fd5b8135610aa481610d7c565b9392505050565b600080600060408486031215610ac057600080fd5b83356001600160401b03811115610ad657600080fd5b610ae286828701610a3f565b9094509250506020840135610af681610d7c565b809150509250925092565b600060208284031215610b1357600080fd5b5035919050565b60008060008060608587031215610b3057600080fd5b8435935060208501356001600160401b03811115610b4d57600080fd5b610b5987828801610a3f565b9094509250506040850135610b6d81610d7c565b939692955090935050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208083526000845481600182811c915080831680610bc957607f831692505b858310811415610be757634e487b7160e01b85526022600452602485fd5b878601838152602001818015610c045760018114610c1557610c40565b60ff19861682528782019650610c40565b60008b81526020902060005b86811015610c3a57815484820152908501908901610c21565b83019750505b50949998505050505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208083528351606082850152805180608086015260005b81811015610cba5782810184015186820160a001528301610c9e565b81811115610ccc57600060a083880101525b509185015180151560408601529160408601516001600160a01b03811660608701529250601f01601f19169390930160a001949350505050565b600082821015610d2657634e487b7160e01b600052601160045260246000fd5b500390565b600181811c90821680610d3f57607f821691505b60208210811415610d6057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146108ad57600080fdfea26469706673582212209ebff572fafac3c027dc93b73403a6300baa7f6f872bb43124509af52f6f718f64736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061008e5760003560e01c80634ddf0bce146100935780635a9b50e0146100a8578063715018a6146100bb5780638da5cb5b146100c3578063b0cf0721146100e8578063b81f7505146100fb578063e254a4f31461010c578063e405a4061461012c578063f2fde38b1461013f578063f4de0d4f14610152575b600080fd5b6100a66100a1366004610b1a565b610175565b005b6100a66100b6366004610aab565b61027a565b6100a66103d0565b6100cb61040b565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a66100f6366004610b01565b61041a565b6001546040519081526020016100df565b61011f61011a366004610b01565b6105a7565b6040516100df9190610c84565b6100a661013a366004610b01565b6106ad565b6100a661014d366004610a87565b610810565b610165610160366004610b01565b6108b0565b60405190151581526020016100df565b3361017e61040b565b6001600160a01b0316146101ad5760405162461bcd60e51b81526004016101a490610c4f565b60405180910390fd5b8282600186815481106101c2576101c2610d66565b600091825260209091206101dc9360029092020191610932565b5080600185815481106101f1576101f1610d66565b906000526020600020906002020160010160016101000a8154816001600160a01b0302191690836001600160a01b0316021790555083816001600160a01b0316336001600160a01b03167f9adb91c45b06f29d7d54533daaa319c7e7843e45edee7f0cc85b6ab5bda9cb36868660405161026c929190610b78565b60405180910390a450505050565b3361028361040b565b6001600160a01b0316146102a95760405162461bcd60e51b81526004016101a490610c4f565b6040805160806020601f8601819004028201810190925260608101848152600192829190879087908190850183828082843760009201829052509385525050600160208085018290526001600160a01b03881660409095019490945285549081018655948252508190208251805193946002029091019261032d92849201906109b6565b506020820151600191820180546040909401516001600160a01b031661010002610100600160a81b0319921515929092166001600160a81b03199094169390931717909155805461037e9190610d06565b816001600160a01b0316336001600160a01b03167fe50f1a4b29420cb0144d8fbaa9aa5d75b03b32b5abd03553588c9f40baf970bf86866040516103c3929190610b78565b60405180910390a4505050565b336103d961040b565b6001600160a01b0316146103ff5760405162461bcd60e51b81526004016101a490610c4f565b61040960006108e2565b565b6000546001600160a01b031690565b3361042361040b565b6001600160a01b0316146104495760405162461bcd60e51b81526004016101a490610c4f565b806001818154811061045d5761045d610d66565b600091825260209091206001600290920201015460ff166104c05760405162461bcd60e51b815260206004820152601e60248201527f546869732074726164696e6720726f7574652069732064697361626c6564000060448201526064016101a4565b6000600183815481106104d5576104d5610d66565b906000526020600020906002020160010160006101000a81548160ff021916908315150217905550816001838154811061051157610511610d66565b906000526020600020906002020160010160019054906101000a90046001600160a01b03166001600160a01b0316336001600160a01b03167f522343fed4da4ad88198645bf4de396fd09d83359b80334e5cab68eba80cd59e6001868154811061057d5761057d610d66565b906000526020600020906002020160000160405161059b9190610ba7565b60405180910390a45050565b6040805160608082018352815260006020820181905291810191909152600182815481106105d7576105d7610d66565b906000526020600020906002020160405180606001604052908160008201805461060090610d2b565b80601f016020809104026020016040519081016040528092919081815260200182805461062c90610d2b565b80156106795780601f1061064e57610100808354040283529160200191610679565b820191906000526020600020905b81548152906001019060200180831161065c57829003601f168201915b50505091835250506001919091015460ff81161515602083015261010090046001600160a01b031660409091015292915050565b336106b661040b565b6001600160a01b0316146106dc5760405162461bcd60e51b81526004016101a490610c4f565b80600181815481106106f0576106f0610d66565b600091825260209091206001600290920201015460ff16156107545760405162461bcd60e51b815260206004820152601d60248201527f546869732074726164696e6720726f75746520697320656e61626c656400000060448201526064016101a4565b600180838154811061076857610768610d66565b906000526020600020906002020160010160006101000a81548160ff02191690831515021790555081600183815481106107a4576107a4610d66565b906000526020600020906002020160010160019054906101000a90046001600160a01b03166001600160a01b0316336001600160a01b03167fe18f2d774ca2ed7ecfb01f8117b026c2c909e254f21f9d50461b1a7c1b1454056001868154811061057d5761057d610d66565b3361081961040b565b6001600160a01b03161461083f5760405162461bcd60e51b81526004016101a490610c4f565b6001600160a01b0381166108a45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101a4565b6108ad816108e2565b50565b6000600182815481106108c5576108c5610d66565b600091825260209091206001600290920201015460ff1692915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805461093e90610d2b565b90600052602060002090601f01602090048101928261096057600085556109a6565b82601f106109795782800160ff198235161785556109a6565b828001600101855582156109a6579182015b828111156109a657823582559160200191906001019061098b565b506109b2929150610a2a565b5090565b8280546109c290610d2b565b90600052602060002090601f0160209004810192826109e457600085556109a6565b82601f106109fd57805160ff19168380011785556109a6565b828001600101855582156109a6579182015b828111156109a6578251825591602001919060010190610a0f565b5b808211156109b25760008155600101610a2b565b60008083601f840112610a5157600080fd5b5081356001600160401b03811115610a6857600080fd5b602083019150836020828501011115610a8057600080fd5b9250929050565b600060208284031215610a9957600080fd5b8135610aa481610d7c565b9392505050565b600080600060408486031215610ac057600080fd5b83356001600160401b03811115610ad657600080fd5b610ae286828701610a3f565b9094509250506020840135610af681610d7c565b809150509250925092565b600060208284031215610b1357600080fd5b5035919050565b60008060008060608587031215610b3057600080fd5b8435935060208501356001600160401b03811115610b4d57600080fd5b610b5987828801610a3f565b9094509250506040850135610b6d81610d7c565b939692955090935050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600060208083526000845481600182811c915080831680610bc957607f831692505b858310811415610be757634e487b7160e01b85526022600452602485fd5b878601838152602001818015610c045760018114610c1557610c40565b60ff19861682528782019650610c40565b60008b81526020902060005b86811015610c3a57815484820152908501908901610c21565b83019750505b50949998505050505050505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208083528351606082850152805180608086015260005b81811015610cba5782810184015186820160a001528301610c9e565b81811115610ccc57600060a083880101525b509185015180151560408601529160408601516001600160a01b03811660608701529250601f01601f19169390930160a001949350505050565b600082821015610d2657634e487b7160e01b600052601160045260246000fd5b500390565b600181811c90821680610d3f57607f821691505b60208210811415610d6057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146108ad57600080fdfea26469706673582212209ebff572fafac3c027dc93b73403a6300baa7f6f872bb43124509af52f6f718f64736f6c63430008070033
Deployed ByteCode Sourcemap
12255:3434:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13537:343;;;;;;:::i;:::-;;:::i;:::-;;12908:392;;;;;;:::i;:::-;;:::i;11550:94::-;;;:::i;10899:87::-;;;:::i;:::-;;;-1:-1:-1;;;;;2418:32:1;;;2400:51;;2388:2;2373:18;10899:87:0;;;;;;;;14060:315;;;;;;:::i;:::-;;:::i;15242:115::-;15328:14;:21;15242:115;;6848:25:1;;;6836:2;6821:18;15242:115:0;6702:177:1;14933:190:0;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14553:313::-;;;;;;:::i;:::-;;:::i;11799:192::-;;;;;;:::i;:::-;;:::i;15546:140::-;;;;;;:::i;:::-;;:::i;:::-;;;2627:14:1;;2620:22;2602:41;;2590:2;2575:18;15546:140:0;2462:187:1;13537:343:0;9714:10;11119:7;:5;:7::i;:::-;-1:-1:-1;;;;;11119:23:0;;11111:68;;;;-1:-1:-1;;;11111:68:0;;;;;;;:::i;:::-;;;;;;;;;13749:5:::1;;13719:14;13734:6;13719:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:35:::1;::::0;:22:::1;::::0;;::::1;;::::0;:35:::1;:::i;:::-;;13796:6;13765:14;13780:6;13765:22;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;:37;;;;;-1:-1:-1::0;;;;;13765:37:0::1;;;;;-1:-1:-1::0;;;;;13765:37:0::1;;;;;;13865:6;13857;-1:-1:-1::0;;;;;13818:54:0::1;13838:10;-1:-1:-1::0;;;;;13818:54:0::1;;13850:5;;13818:54;;;;;;;:::i;:::-;;;;;;;;13537:343:::0;;;;:::o;12908:392::-;9714:10;11119:7;:5;:7::i;:::-;-1:-1:-1;;;;;11119:23:0;;11111:68;;;;-1:-1:-1;;;11111:68:0;;;;;;;:::i;:::-;13087:108:::1;::::0;;;::::1;;::::0;::::1;::::0;;::::1;;::::0;;;;;;;::::1;::::0;::::1;::::0;;;13067:14:::1;::::0;13087:108;;;13114:5;;;;;;13087:108;;13114:5;;;;13087:108;::::1;;::::0;::::1;::::0;;;-1:-1:-1;13087:108:0;;;-1:-1:-1;;13142:4:0::1;13087:108;::::0;;::::1;::::0;;;-1:-1:-1;;;;;13087:108:0;::::1;::::0;;;;;;;;13067:129;;;;::::1;::::0;;;;;-1:-1:-1;13067:129:0;;;;;;;;;::::1;;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;13067:129:0::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;;;;;13067:129:0::1;;;-1:-1:-1::0;;;;;;13067:129:0;::::1;;::::0;;;;-1:-1:-1;;;;;;13067:129:0;;;;;;;::::1;::::0;;;13266:21;;:25:::1;::::0;13067:129;13266:25:::1;:::i;:::-;13249:15;-1:-1:-1::0;;;;;13212:80:0::1;13230:10;-1:-1:-1::0;;;;;13212:80:0::1;;13242:5;;13212:80;;;;;;;:::i;:::-;;;;;;;;12908:392:::0;;;:::o;11550:94::-;9714:10;11119:7;:5;:7::i;:::-;-1:-1:-1;;;;;11119:23:0;;11111:68;;;;-1:-1:-1;;;11111:68:0;;;;;;;:::i;:::-;11615:21:::1;11633:1;11615:9;:21::i;:::-;11550:94::o:0;10899:87::-;10945:7;10972:6;-1:-1:-1;;;;;10972:6:0;;10899:87::o;14060:315::-;9714:10;11119:7;:5;:7::i;:::-;-1:-1:-1;;;;;11119:23:0;;11111:68;;;;-1:-1:-1;;;11111:68:0;;;;;;;:::i;:::-;14191:6:::1;12446:14;12461:6;12446:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:29:::1;:22;::::0;;::::1;;:29;::::0;::::1;;12438:72;;;::::0;-1:-1:-1;;;12438:72:0;;5207:2:1;12438:72:0::1;::::0;::::1;5189:21:1::0;5246:2;5226:18;;;5219:30;5285:32;5265:18;;;5258:60;5335:18;;12438:72:0::1;5005:354:1::0;12438:72:0::1;14247:5:::2;14215:14;14230:6;14215:22;;;;;;;;:::i;:::-;;;;;;;;;;;:29;;;:37;;;;;;;;;;;;;;;;;;14360:6;14330:14;14345:6;14330:22;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;;;;;;;-1:-1:-1::0;;;;;14330:28:0::2;-1:-1:-1::0;;;;;14268:99:0::2;14289:10;-1:-1:-1::0;;;;;14268:99:0::2;;14301:14;14316:6;14301:22;;;;;;;;:::i;:::-;;;;;;;;;;;:27;;14268:99;;;;;;:::i;:::-;;;;;;;;11190:1:::1;14060:315:::0;:::o;14933:190::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;15093:14:0;15108:6;15093:22;;;;;;;;:::i;:::-;;;;;;;;;;;15086:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;15086:29:0;;;-1:-1:-1;;15086:29:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15086:29:0;;;;;;;;-1:-1:-1;;14933:190:0:o;14553:313::-;9714:10;11119:7;:5;:7::i;:::-;-1:-1:-1;;;;;11119:23:0;;11111:68;;;;-1:-1:-1;;;11111:68:0;;;;;;;:::i;:::-;14684:6:::1;12605:14;12620:6;12605:22;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:29:::1;:22;::::0;;::::1;;:29;::::0;::::1;;12604:30;12596:72;;;::::0;-1:-1:-1;;;12596:72:0;;4849:2:1;12596:72:0::1;::::0;::::1;4831:21:1::0;4888:2;4868:18;;;4861:30;4927:31;4907:18;;;4900:59;4976:18;;12596:72:0::1;4647:353:1::0;12596:72:0::1;14740:4:::2;14708:14:::0;14723:6:::2;14708:22;;;;;;;;:::i;:::-;;;;;;;;;;;:29;;;:36;;;;;;;;;;;;;;;;;;14851:6;14821:14;14836:6;14821:22;;;;;;;;:::i;:::-;;;;;;;;;;;:28;;;;;;;;;;-1:-1:-1::0;;;;;14821:28:0::2;-1:-1:-1::0;;;;;14760:98:0::2;14780:10;-1:-1:-1::0;;;;;14760:98:0::2;;14792:14;14807:6;14792:22;;;;;;;;:::i;11799:192::-:0;9714:10;11119:7;:5;:7::i;:::-;-1:-1:-1;;;;;11119:23:0;;11111:68;;;;-1:-1:-1;;;11111:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11888:22:0;::::1;11880:73;;;::::0;-1:-1:-1;;;11880:73:0;;4442:2:1;11880:73:0::1;::::0;::::1;4424:21:1::0;4481:2;4461:18;;;4454:30;4520:34;4500:18;;;4493:62;-1:-1:-1;;;4571:18:1;;;4564:36;4617:19;;11880:73:0::1;4240:402:1::0;11880:73:0::1;11964:19;11974:8;11964:9;:19::i;:::-;11799:192:::0;:::o;15546:140::-;15625:4;15649:14;15664:6;15649:22;;;;;;;;:::i;:::-;;;;;;;;;:29;:22;;;;;:29;;;;;15546:140;-1:-1:-1;;15546:140:0:o;11999:173::-;12055:16;12074:6;;-1:-1:-1;;;;;12091:17:0;;;-1:-1:-1;;;;;;12091:17:0;;;;;;12124:40;;12074:6;;;;;;;12124:40;;12055:16;12124:40;12044:128;11999:173;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:348:1;66:8;76:6;130:3;123:4;115:6;111:17;107:27;97:55;;148:1;145;138:12;97:55;-1:-1:-1;171:20:1;;-1:-1:-1;;;;;203:30:1;;200:50;;;246:1;243;236:12;200:50;283:4;275:6;271:17;259:29;;335:3;328:4;319:6;311;307:19;303:30;300:39;297:59;;;352:1;349;342:12;297:59;14:348;;;;;:::o;367:247::-;426:6;479:2;467:9;458:7;454:23;450:32;447:52;;;495:1;492;485:12;447:52;534:9;521:23;553:31;578:5;553:31;:::i;:::-;603:5;367:247;-1:-1:-1;;;367:247:1:o;619:573::-;726:6;734;742;795:2;783:9;774:7;770:23;766:32;763:52;;;811:1;808;801:12;763:52;838:23;;-1:-1:-1;;;;;873:30:1;;870:50;;;916:1;913;906:12;870:50;955:59;1006:7;997:6;986:9;982:22;955:59;:::i;:::-;1033:8;;-1:-1:-1;929:85:1;-1:-1:-1;;1118:2:1;1103:18;;1090:32;1131:31;1090:32;1131:31;:::i;:::-;1181:5;1171:15;;;619:573;;;;;:::o;1197:180::-;1256:6;1309:2;1297:9;1288:7;1284:23;1280:32;1277:52;;;1325:1;1322;1315:12;1277:52;-1:-1:-1;1348:23:1;;1197:180;-1:-1:-1;1197:180:1:o;1382:641::-;1498:6;1506;1514;1522;1575:2;1563:9;1554:7;1550:23;1546:32;1543:52;;;1591:1;1588;1581:12;1543:52;1614:23;;;-1:-1:-1;1688:2:1;1673:18;;1660:32;-1:-1:-1;;;;;1704:30:1;;1701:50;;;1747:1;1744;1737:12;1701:50;1786:59;1837:7;1828:6;1817:9;1813:22;1786:59;:::i;:::-;1864:8;;-1:-1:-1;1760:85:1;-1:-1:-1;;1949:2:1;1934:18;;1921:32;1962:31;1921:32;1962:31;:::i;:::-;1382:641;;;;-1:-1:-1;1382:641:1;;-1:-1:-1;;1382:641:1:o;2654:390::-;2813:2;2802:9;2795:21;2852:6;2847:2;2836:9;2832:18;2825:34;2909:6;2901;2896:2;2885:9;2881:18;2868:48;2965:1;2936:22;;;2960:2;2932:31;;;2925:42;;;;3028:2;3007:15;;;-1:-1:-1;;3003:29:1;2988:45;2984:54;;2654:390;-1:-1:-1;2654:390:1:o;3049:1186::-;3158:4;3187:2;3216;3205:9;3198:21;3239:1;3272:6;3266:13;3302:3;3324:1;3352:9;3348:2;3344:18;3334:28;;3412:2;3401:9;3397:18;3434;3424:61;;3478:4;3470:6;3466:17;3456:27;;3424:61;3531:2;3523:6;3520:14;3500:18;3497:38;3494:165;;;-1:-1:-1;;;3558:33:1;;3614:4;3611:1;3604:15;3644:4;3565:3;3632:17;3494:165;3715:18;;;7097:19;;;7149:4;7140:14;3758:18;3785:100;;;;3899:1;3894:315;;;;3751:458;;3785:100;-1:-1:-1;;3818:24:1;;3806:37;;3863:12;;;;-1:-1:-1;3785:100:1;;3894:315;6957:1;6950:14;;;6994:4;6981:18;;3989:1;4003:165;4017:6;4014:1;4011:13;4003:165;;;4095:14;;4082:11;;;4075:35;4138:16;;;;4032:10;;4003:165;;;4188:11;;;-1:-1:-1;;3751:458:1;-1:-1:-1;4226:3:1;;3049:1186;-1:-1:-1;;;;;;;;;3049:1186:1:o;5364:356::-;5566:2;5548:21;;;5585:18;;;5578:30;5644:34;5639:2;5624:18;;5617:62;5711:2;5696:18;;5364:356::o;5725:972::-;5861:4;5890:2;5919;5908:9;5901:21;5957:6;5951:13;6000:4;5995:2;5984:9;5980:18;5973:32;6034:12;6028:19;6084:6;6078:3;6067:9;6063:19;6056:35;6109:1;6119:147;6133:6;6130:1;6127:13;6119:147;;;6229:20;;;6225:29;;6219:36;6194:17;;;6213:3;6190:27;6183:73;6148:10;;6119:147;;;6284:6;6281:1;6278:13;6275:92;;;6355:1;6349:3;6340:6;6329:9;6325:22;6321:32;6314:43;6275:92;-1:-1:-1;6404:15:1;;;6398:22;2098:13;;2091:21;6476:2;6461:18;;2079:34;6398:22;6529:2;6517:15;;6511:22;-1:-1:-1;;;;;2211:31:1;;6613:4;6598:20;;2199:44;6511:22;-1:-1:-1;6680:2:1;6659:15;-1:-1:-1;;6655:29:1;6640:45;;;;6687:3;6636:55;;5725:972;-1:-1:-1;;;;5725:972:1:o;7165:222::-;7205:4;7233:1;7230;7227:8;7224:131;;;7277:10;7272:3;7268:20;7265:1;7258:31;7312:4;7309:1;7302:15;7340:4;7337:1;7330:15;7224:131;-1:-1:-1;7372:9:1;;7165:222::o;7392:380::-;7471:1;7467:12;;;;7514;;;7535:61;;7589:4;7581:6;7577:17;7567:27;;7535:61;7642:2;7634:6;7631:14;7611:18;7608:38;7605:161;;;7688:10;7683:3;7679:20;7676:1;7669:31;7723:4;7720:1;7713:15;7751:4;7748:1;7741:15;7605:161;;7392:380;;;:::o;7777:127::-;7838:10;7833:3;7829:20;7826:1;7819:31;7869:4;7866:1;7859:15;7893:4;7890:1;7883:15;7909:131;-1:-1:-1;;;;;7984:31:1;;7974:42;;7964:70;;8030:1;8027;8020:12
Metadata Hash
9ebff572fafac3c027dc93b73403a6300baa7f6f872bb43124509af52f6f718f
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.