Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,348 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Stake | 20251038 | 22 days ago | IN | 0 ETH | 0.00030775 | ||||
Unstake | 17775258 | 369 days ago | IN | 0 ETH | 0.00140895 | ||||
Unstake Early | 15416420 | 702 days ago | IN | 0 ETH | 0.00293251 | ||||
Unstake Early | 15288238 | 722 days ago | IN | 0 ETH | 0.00032454 | ||||
Stake | 15106075 | 751 days ago | IN | 0 ETH | 0.00393359 | ||||
Unstake Early | 15106028 | 751 days ago | IN | 0 ETH | 0.00104126 | ||||
Stake | 15104734 | 751 days ago | IN | 0 ETH | 0.00536934 | ||||
Unstake Early | 15104723 | 751 days ago | IN | 0 ETH | 0.00162836 | ||||
Unstake Early | 15104720 | 751 days ago | IN | 0 ETH | 0.00151869 | ||||
Stake | 15104605 | 751 days ago | IN | 0 ETH | 0.00421596 | ||||
Unstake Early | 14492566 | 851 days ago | IN | 0 ETH | 0.00287292 | ||||
Unstake Early | 14342687 | 874 days ago | IN | 0 ETH | 0.00269571 | ||||
Unstake Early | 14342682 | 874 days ago | IN | 0 ETH | 0.00280145 | ||||
Unstake Early | 14342674 | 874 days ago | IN | 0 ETH | 0.00370698 | ||||
Unstake Early | 14128145 | 907 days ago | IN | 0 ETH | 0.01237573 | ||||
Unstake Early | 13973654 | 931 days ago | IN | 0 ETH | 0.0190932 | ||||
Unstake Early | 13549300 | 998 days ago | IN | 0 ETH | 0.00627172 | ||||
Unstake Early | 13549275 | 998 days ago | IN | 0 ETH | 0.00808982 | ||||
Unstake Early | 13547826 | 998 days ago | IN | 0 ETH | 0.00905207 | ||||
Unstake Early | 13485669 | 1008 days ago | IN | 0 ETH | 0.00324624 | ||||
Unstake Early | 13432981 | 1016 days ago | IN | 0 ETH | 0.00302495 | ||||
Unstake Early | 13432981 | 1016 days ago | IN | 0 ETH | 0.00363823 | ||||
Stake | 13390635 | 1022 days ago | IN | 0 ETH | 0.01806402 | ||||
Stake | 13389512 | 1023 days ago | IN | 0 ETH | 0.0239195 | ||||
Stake | 13389440 | 1023 days ago | IN | 0 ETH | 0.02246086 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
FlashProtocol
Compiler Version
v0.7.4+commit.3f05b770
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-03-31 */ // SPDX-License-Identifier: MIT pragma solidity 0.7.4; interface IFlashToken { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transfer(address recipient, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function mint(address to, uint256 value) external returns (bool); function burn(uint256 value) external returns (bool); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; } interface IFlashReceiver { function receiveFlash( bytes32 id, uint256 amountIn, uint256 expireAfter, uint256 mintedAmount, address staker, bytes calldata data ) external returns (uint256); } interface IFlashProtocol { enum LockedFunctions { SET_MATCH_RATIO, SET_MATCH_RECEIVER } function TIMELOCK() external view returns (uint256); function FLASH_TOKEN() external view returns (address); function matchRatio() external view returns (uint256); function matchReceiver() external view returns (address); function stakes(bytes32 _id) external view returns ( uint256 amountIn, uint256 expiry, uint256 expireAfter, uint256 mintedAmount, address staker, address receiver ); function stake( uint256 _amountIn, uint256 _days, address _receiver, bytes calldata _data ) external returns ( uint256 mintedAmount, uint256 matchedAmount, bytes32 id ); function lockFunction(LockedFunctions _lockedFunction) external; function unlockFunction(LockedFunctions _lockedFunction) external; function timelock(LockedFunctions _lockedFunction) external view returns (uint256); function balances(address _staker) external view returns (uint256); function unstake(bytes32 _id) external returns (uint256 withdrawAmount); function unstakeEarly(bytes32 _id) external returns (uint256 withdrawAmount); function getFPY(uint256 _amountIn) external view returns (uint256); function setMatchReceiver(address _newMatchReceiver) external; function setMatchRatio(uint256 _newMatchRatio) external; function getMatchedAmount(uint256 mintedAmount) external view returns (uint256); function getMintAmount(uint256 _amountIn, uint256 _expiry) external view returns (uint256); function getPercentageStaked(uint256 _amountIn) external view returns (uint256 percentage); function calculateMaxStakePeriod(uint256 _amountIn) external view returns (uint256); function stakeWithPermit( address _receiver, uint256 _amountIn, uint256 _expiry, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s, bytes calldata _data ) external returns ( uint256 mintedAmount, uint256 matchedAmount, bytes32 id ); } library SafeMath { function add(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x + y) >= x, "MATH:: ADD_OVERFLOW"); } function sub(uint256 x, uint256 y) internal pure returns (uint256 z) { require((z = x - y) <= x, "MATH:: SUB_UNDERFLOW"); } 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, "MATH:: MUL_OVERFLOW"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0, "MATH:: DIVISION_BY_ZERO"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } } library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } } contract FlashProtocol is IFlashProtocol { using SafeMath for uint256; using Address for address; struct Stake { uint256 amountIn; uint256 expiry; uint256 expireAfter; uint256 mintedAmount; address staker; address receiver; } uint256 public constant override TIMELOCK = 3 days; address public constant override FLASH_TOKEN = 0x20398aD62bb2D930646d45a6D4292baa0b860C1f; uint256 internal constant PRECISION = 1e18; uint256 internal constant MAX_FPY_FOR_1_YEAR = 5e17; uint256 internal constant SECONDS_IN_1_YEAR = 365 * 86400; uint256 public override matchRatio; address public override matchReceiver; mapping(bytes32 => Stake) public override stakes; mapping(LockedFunctions => uint256) public override timelock; mapping(address => uint256) public override balances; event Staked( bytes32 _id, uint256 _amountIn, uint256 _expiry, uint256 _expireAfter, uint256 _mintedAmount, address indexed _staker, address indexed _receiver ); event Unstaked(bytes32 _id, uint256 _amountIn, address indexed _staker); modifier onlyMatchReceiver { require(msg.sender == matchReceiver, "FlashProtocol:: NOT_MATCH_RECEIVER"); _; } modifier notLocked(LockedFunctions _lockedFunction) { require( timelock[_lockedFunction] != 0 && timelock[_lockedFunction] <= block.timestamp, "FlashProtocol:: FUNCTION_TIMELOCKED" ); _; } constructor(address _initialMatchReceiver, uint256 _initialMatchRatio) { _setMatchRatio(_initialMatchRatio); _setMatchReceiver(_initialMatchReceiver); } function lockFunction(LockedFunctions _lockedFunction) external override onlyMatchReceiver { timelock[_lockedFunction] = type(uint256).max; } function unlockFunction(LockedFunctions _lockedFunction) external override onlyMatchReceiver { timelock[_lockedFunction] = block.timestamp + TIMELOCK; } function setMatchReceiver(address _newMatchReceiver) external override onlyMatchReceiver notLocked(LockedFunctions.SET_MATCH_RECEIVER) { _setMatchReceiver(_newMatchReceiver); timelock[LockedFunctions.SET_MATCH_RECEIVER] = 0; } function _setMatchReceiver(address _newMatchReceiver) internal { matchReceiver = _newMatchReceiver; } function setMatchRatio(uint256 _newMatchRatio) external override onlyMatchReceiver notLocked(LockedFunctions.SET_MATCH_RATIO) { _setMatchRatio(_newMatchRatio); timelock[LockedFunctions.SET_MATCH_RATIO] = 0; } function _setMatchRatio(uint256 _newMatchRatio) internal { require(_newMatchRatio >= 0 && _newMatchRatio <= 2000, "FlashProtocol:: INVALID_MATCH_RATIO"); // can be 0 and cannot be above 20% require(_newMatchRatio <= 2000, "FlashProtocol:: INVALID_MATCH_RATIO"); matchRatio = _newMatchRatio; } function stake( uint256 _amountIn, uint256 _expiry, address _receiver, bytes calldata _data ) external override returns ( uint256, uint256, bytes32 ) { return _stake(_amountIn, _expiry, _receiver, _data); } function stakeWithPermit( address _receiver, uint256 _amountIn, uint256 _expiry, uint256 _deadline, uint8 _v, bytes32 _r, bytes32 _s, bytes calldata _data ) external override returns ( uint256, uint256, bytes32 ) { IFlashToken(FLASH_TOKEN).permit(msg.sender, address(this), type(uint256).max, _deadline, _v, _r, _s); return _stake(_amountIn, _expiry, _receiver, _data); } function _stake( uint256 _amountIn, uint256 _expiry, address _receiver, bytes calldata _data ) internal returns ( uint256 mintedAmount, uint256 matchedAmount, bytes32 id ) { require(_amountIn > 0, "FlashProtocol:: INVALID_AMOUNT"); require(_receiver != address(this), "FlashProtocol:: INVALID_ADDRESS"); require(_expiry <= calculateMaxStakePeriod(_amountIn), "FlashProtocol:: MAX_STAKE_PERIOD_EXCEEDS"); address staker = msg.sender; uint256 expiration = block.timestamp.add(_expiry); balances[staker] = balances[staker].add(_amountIn); id = keccak256(abi.encodePacked(_amountIn, _expiry, _receiver, staker, block.timestamp)); require(stakes[id].staker == address(0), "FlashProtocol:: STAKE_EXISTS"); mintedAmount = getMintAmount(_amountIn, _expiry); matchedAmount = getMatchedAmount(mintedAmount); IFlashToken(FLASH_TOKEN).transferFrom(staker, address(this), _amountIn); IFlashToken(FLASH_TOKEN).mint(_receiver, mintedAmount); IFlashToken(FLASH_TOKEN).mint(matchReceiver, matchedAmount); stakes[id] = Stake(_amountIn, _expiry, expiration, mintedAmount, staker, _receiver); if (_receiver.isContract()) { IFlashReceiver(_receiver).receiveFlash(id, _amountIn, expiration, mintedAmount, staker, _data); } emit Staked(id, _amountIn, _expiry, expiration, mintedAmount, staker, _receiver); } function unstake(bytes32 _id) external override returns (uint256 withdrawAmount) { Stake memory s = stakes[_id]; require(block.timestamp >= s.expireAfter, "FlashProtol:: STAKE_NOT_EXPIRED"); balances[s.staker] = balances[s.staker].sub(s.amountIn); withdrawAmount = s.amountIn; delete stakes[_id]; IFlashToken(FLASH_TOKEN).transfer(s.staker, withdrawAmount); emit Unstaked(_id, s.amountIn, s.staker); } function unstakeEarly(bytes32 _id) external override returns (uint256 withdrawAmount) { Stake memory s = stakes[_id]; address staker = msg.sender; require(s.staker == staker, "FlashProtocol:: INVALID_STAKER"); uint256 remainingTime = (s.expireAfter.sub(block.timestamp)); require(s.expiry > remainingTime, "Flash Protocol:: INVALID_UNSTAKE_TIME"); uint256 burnAmount = _calculateBurn(s.amountIn, remainingTime, s.expiry); assert(burnAmount <= s.amountIn); balances[staker] = balances[staker].sub(s.amountIn); withdrawAmount = s.amountIn.sub(burnAmount); delete stakes[_id]; IFlashToken(FLASH_TOKEN).burn(burnAmount); IFlashToken(FLASH_TOKEN).transfer(staker, withdrawAmount); emit Unstaked(_id, withdrawAmount, staker); } function getMatchedAmount(uint256 _mintedAmount) public view override returns (uint256) { return _mintedAmount.mul(matchRatio).div(10000); } function getMintAmount(uint256 _amountIn, uint256 _expiry) public view override returns (uint256) { return _amountIn.mul(_expiry).mul(getFPY(_amountIn)).div(PRECISION * SECONDS_IN_1_YEAR); } function getFPY(uint256 _amountIn) public view override returns (uint256) { return (PRECISION.sub(getPercentageStaked(_amountIn))).div(2); } function getPercentageStaked(uint256 _amountIn) public view override returns (uint256) { uint256 locked = IFlashToken(FLASH_TOKEN).balanceOf(address(this)).add(_amountIn); return locked.mul(PRECISION).div(IFlashToken(FLASH_TOKEN).totalSupply()); } function calculateMaxStakePeriod(uint256 _amountIn) public view override returns (uint256) { return MAX_FPY_FOR_1_YEAR.mul(SECONDS_IN_1_YEAR).div(getFPY(_amountIn)); } function _calculateBurn( uint256 _amount, uint256 _remainingTime, uint256 _totalTime ) private pure returns (uint256) { return _amount.mul(_remainingTime).div(_totalTime); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_initialMatchReceiver","type":"address"},{"internalType":"uint256","name":"_initialMatchRatio","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_expiry","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_expireAfter","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_mintedAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"_staker","type":"address"},{"indexed":true,"internalType":"address","name":"_receiver","type":"address"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amountIn","type":"uint256"},{"indexed":true,"internalType":"address","name":"_staker","type":"address"}],"name":"Unstaked","type":"event"},{"inputs":[],"name":"FLASH_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TIMELOCK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountIn","type":"uint256"}],"name":"calculateMaxStakePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountIn","type":"uint256"}],"name":"getFPY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintedAmount","type":"uint256"}],"name":"getMatchedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountIn","type":"uint256"},{"internalType":"uint256","name":"_expiry","type":"uint256"}],"name":"getMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountIn","type":"uint256"}],"name":"getPercentageStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IFlashProtocol.LockedFunctions","name":"_lockedFunction","type":"uint8"}],"name":"lockFunction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"matchRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"matchReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMatchRatio","type":"uint256"}],"name":"setMatchRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMatchReceiver","type":"address"}],"name":"setMatchReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountIn","type":"uint256"},{"internalType":"uint256","name":"_expiry","type":"uint256"},{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"stake","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_amountIn","type":"uint256"},{"internalType":"uint256","name":"_expiry","type":"uint256"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v","type":"uint8"},{"internalType":"bytes32","name":"_r","type":"bytes32"},{"internalType":"bytes32","name":"_s","type":"bytes32"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"stakeWithPermit","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint256","name":"expireAfter","type":"uint256"},{"internalType":"uint256","name":"mintedAmount","type":"uint256"},{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IFlashProtocol.LockedFunctions","name":"","type":"uint8"}],"name":"timelock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IFlashProtocol.LockedFunctions","name":"_lockedFunction","type":"uint8"}],"name":"unlockFunction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_id","type":"bytes32"}],"name":"unstake","outputs":[{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_id","type":"bytes32"}],"name":"unstakeEarly","outputs":[{"internalType":"uint256","name":"withdrawAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162001af738038062001af7833981810160405260408110156200003757600080fd5b5080516020909101516200004b816200005e565b6200005682620000e9565b50506200010b565b6107d0811115620000a15760405162461bcd60e51b815260040180806020018281038252602381526020018062001ad46023913960400191505060405180910390fd5b6107d0811115620000e45760405162461bcd60e51b815260040180806020018281038252602381526020018062001ad46023913960400191505060405180910390fd5b600055565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6119b9806200011b6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80637aadef8b116100ad578063b4fa3b9811610071578063b4fa3b9814610448578063c17bae2a14610468578063cc704d5414610488578063d08c9702146104a5578063e345a380146104ad5761012c565b80637aadef8b146103155780638fee64071461031d578063a066983d14610379578063aa53099d14610405578063b3e1f050146104255761012c565b806332a3fcb8116100f457806332a3fcb8146101ef5780635b49129e146102b657806368220664146102be57806371ed5d1a146102db57806376f5cf28146102f85761012c565b80631051f696146101315780631f75caac1461016057806323c6e14c1461017d57806327212b5b146101a157806327e235e3146101c9575b600080fd5b61014e6004803603602081101561014757600080fd5b50356104ca565b60408051918252519081900360200190f35b61014e6004803603602081101561017657600080fd5b50356104f3565b610185610517565b604080516001600160a01b039092168252519081900360200190f35b6101c7600480360360208110156101b757600080fd5b50356001600160a01b031661052f565b005b61014e600480360360208110156101df57600080fd5b50356001600160a01b0316610649565b610298600480360361010081101561020657600080fd5b6001600160a01b038235169160208101359160408201359160608101359160ff6080830135169160a08101359160c08201359190810190610100810160e082013564010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184600183028401116401000000008311171561028d57600080fd5b50909250905061065b565b60408051938452602084019290925282820152519081900360600190f35b61014e61071a565b61014e600480360360208110156102d457600080fd5b5035610720565b61014e600480360360208110156102f157600080fd5b5035610851565b6101c76004803603602081101561030e57600080fd5b5035610a83565b61014e610b7e565b61033a6004803603602081101561033357600080fd5b5035610b85565b6040805196875260208701959095528585019390935260608501919091526001600160a01b0390811660808501521660a0830152519081900360c00190f35b6102986004803603608081101561038f57600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156103c657600080fd5b8201836020820111156103d857600080fd5b803590602001918460018302840111640100000000831117156103fa57600080fd5b509092509050610bc8565b6101c76004803603602081101561041b57600080fd5b503560ff16610beb565b61014e6004803603604081101561043b57600080fd5b5080359060200135610c69565b6101c76004803603602081101561045e57600080fd5b503560ff16610c96565b61014e6004803603602081101561047e57600080fd5b503560ff16610cf2565b61014e6004803603602081101561049e57600080fd5b5035610d04565b610185610d26565b61014e600480360360208110156104c357600080fd5b5035610d35565b60006104ed6127106104e76000548561105990919063ffffffff16565b906110be565b92915050565b60006104ed61050183610d04565b6104e76706f05b59d3b200006301e13380611059565b7320398ad62bb2d930646d45a6d4292baa0b860c1f81565b6001546001600160a01b031633146105785760405162461bcd60e51b81526004018080602001828103825260228152602001806119626022913960400191505060405180910390fd5b6001600081905260036020527fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c54158015906105dd575042600360008360018111156105c057fe5b60018111156105cb57fe5b81526020019081526020016000205411155b6106185760405162461bcd60e51b81526004018080602001828103825260238152602001806119176023913960400191505060405180910390fd5b61062182611128565b600060038160015b600181111561063457fe5b81526020810191909152604001600020555050565b60046020526000908152604090205481565b6040805163d505accf60e01b815233600482015230602482015260001960448201526064810188905260ff8716608482015260a4810186905260c481018590529051600091829182917320398ad62bb2d930646d45a6d4292baa0b860c1f9163d505accf9160e480820192869290919082900301818387803b1580156106e057600080fd5b505af11580156106f4573d6000803e3d6000fd5b505050506107058b8b8e888861114a565b92509250925099509950999650505050505050565b60005481565b6000806107ba837320398ad62bb2d930646d45a6d4292baa0b860c1f6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d60208110156107b257600080fd5b505190611744565b905061084a7320398ad62bb2d930646d45a6d4292baa0b860c1f6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561080c57600080fd5b505afa158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50516104e783670de0b6b3a7640000611059565b9392505050565b600061085b611886565b50600082815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281018390526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a082015290421015610912576040805162461bcd60e51b815260206004820152601f60248201527f466c61736850726f746f6c3a3a205354414b455f4e4f545f4558504952454400604482015290519081900360640190fd5b805160808201516001600160a01b031660009081526004602052604090205461093a91611792565b6080820180516001600160a01b0390811660009081526004602081815260408084209690965586518984526002808352878520858155600181018690559081018590556003810185905580840180546001600160a01b03199081169091556005909101805490911690559451865163a9059cbb60e01b81529416918401919091526024830184905293519295507320398ad62bb2d930646d45a6d4292baa0b860c1f9363a9059cbb93604480850194929391928390030190829087803b158015610a0357600080fd5b505af1158015610a17573d6000803e3d6000fd5b505050506040513d6020811015610a2d57600080fd5b50506080810151815160408051868152602081019290925280516001600160a01b03909316927f2ce17f91452598d1f926f6cfe29a9d42a67ff82b45d1eb94e0634c27555c14da9281900390910190a250919050565b6001546001600160a01b03163314610acc5760405162461bcd60e51b81526004018080602001828103825260228152602001806119626022913960400191505060405180910390fd5b600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5415801590610b2f57504260036000836001811115610b1257fe5b6001811115610b1d57fe5b81526020019081526020016000205411155b610b6a5760405162461bcd60e51b81526004018080602001828103825260238152602001806119176023913960400191505060405180910390fd5b610b73826117e1565b600060038180610629565b6203f48081565b6002602081905260009182526040909120805460018201549282015460038301546004840154600590940154929493919290916001600160a01b03908116911686565b6000806000610bda888888888861114a565b925092509250955095509592505050565b6001546001600160a01b03163314610c345760405162461bcd60e51b81526004018080602001828103825260228152602001806119626022913960400191505060405180910390fd5b6203f480420160036000836001811115610c4a57fe5b6001811115610c5557fe5b815260208101919091526040016000205550565b600061084a6a1a1601fc4ea7109e0000006104e7610c8686610d04565b610c908787611059565b90611059565b6001546001600160a01b03163314610cdf5760405162461bcd60e51b81526004018080602001828103825260228152602001806119626022913960400191505060405180910390fd5b60001960036000836001811115610c4a57fe5b60036020526000908152604090205481565b60006104ed60026104e7610d1785610720565b670de0b6b3a764000090611792565b6001546001600160a01b031681565b6000610d3f611886565b50600082815260026020818152604092839020835160c0810185528154815260018201549281019290925291820154928101929092526003810154606083015260048101546001600160a01b03908116608084018190526005909201541660a083015233908114610df7576040805162461bcd60e51b815260206004820152601e60248201527f466c61736850726f746f636f6c3a3a20494e56414c49445f5354414b45520000604482015290519081900360640190fd5b6040820151600090610e099042611792565b905080836020015111610e4d5760405162461bcd60e51b81526004018080602001828103825260258152602001806118cf6025913960400191505060405180910390fd5b6000610e628460000151838660200151611868565b8451909150811115610e7057fe5b83516001600160a01b038416600090815260046020526040902054610e9491611792565b6001600160a01b0384166000908152600460205260409020558351610eb99082611792565b60008781526002602081815260408084208481556001810185905592830184905560038301849055600480840180546001600160a01b0319908116909155600590940180549094169093558051630852cd8d60e31b8152928301869052519398507320398ad62bb2d930646d45a6d4292baa0b860c1f936342966c68936024808501948390030190829087803b158015610f5257600080fd5b505af1158015610f66573d6000803e3d6000fd5b505050506040513d6020811015610f7c57600080fd5b50506040805163a9059cbb60e01b81526001600160a01b03851660048201526024810187905290517320398ad62bb2d930646d45a6d4292baa0b860c1f9163a9059cbb9160448083019260209291908290030181600087803b158015610fe157600080fd5b505af1158015610ff5573d6000803e3d6000fd5b505050506040513d602081101561100b57600080fd5b5050604080518781526020810187905281516001600160a01b038616927f2ce17f91452598d1f926f6cfe29a9d42a67ff82b45d1eb94e0634c27555c14da928290030190a250505050919050565b600082611068575060006104ed565b8282028284828161107557fe5b041461084a576040805162461bcd60e51b81526020600482015260136024820152724d4154483a3a204d554c5f4f564552464c4f5760681b604482015290519081900360640190fd5b6000808211611114576040805162461bcd60e51b815260206004820152601760248201527f4d4154483a3a204449564953494f4e5f42595f5a45524f000000000000000000604482015290519081900360640190fd5b600082848161111f57fe5b04949350505050565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60008060008088116111a3576040805162461bcd60e51b815260206004820152601e60248201527f466c61736850726f746f636f6c3a3a20494e56414c49445f414d4f554e540000604482015290519081900360640190fd5b6001600160a01b038616301415611201576040805162461bcd60e51b815260206004820152601f60248201527f466c61736850726f746f636f6c3a3a20494e56414c49445f4144445245535300604482015290519081900360640190fd5b61120a886104f3565b8711156112485760405162461bcd60e51b815260040180806020018281038252602881526020018061193a6028913960400191505060405180910390fd5b336000611255428a611744565b6001600160a01b03831660009081526004602052604090205490915061127b908b611744565b60046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550898989844260405160200180868152602001858152602001846001600160a01b031660601b8152601401836001600160a01b031660601b81526014018281526020019550505050505060405160208183030381529060405280519060200120925060006001600160a01b03166002600085815260200190815260200160002060040160009054906101000a90046001600160a01b03166001600160a01b031614611395576040805162461bcd60e51b815260206004820152601c60248201527f466c61736850726f746f636f6c3a3a205354414b455f45584953545300000000604482015290519081900360640190fd5b61139f8a8a610c69565b94506113aa856104ca565b604080516323b872dd60e01b81526001600160a01b0385166004820152306024820152604481018d905290519195507320398ad62bb2d930646d45a6d4292baa0b860c1f916323b872dd916064808201926020929091908290030181600087803b15801561141757600080fd5b505af115801561142b573d6000803e3d6000fd5b505050506040513d602081101561144157600080fd5b5050604080516340c10f1960e01b81526001600160a01b038a1660048201526024810187905290517320398ad62bb2d930646d45a6d4292baa0b860c1f916340c10f199160448083019260209291908290030181600087803b1580156114a657600080fd5b505af11580156114ba573d6000803e3d6000fd5b505050506040513d60208110156114d057600080fd5b5050600154604080516340c10f1960e01b81526001600160a01b03909216600483015260248201869052517320398ad62bb2d930646d45a6d4292baa0b860c1f916340c10f199160448083019260209291908290030181600087803b15801561153857600080fd5b505af115801561154c573d6000803e3d6000fd5b505050506040513d602081101561156257600080fd5b50506040805160c0810182528b815260208181018c8152828401858152606084018a81526001600160a01b03808916608087019081528f821660a0880181815260008d8152600298899052999099209751885594516001880155925194860194909455516003850155516004840180549184166001600160a01b0319928316179055935160059093018054939092169290931691909117905561160490611880565b156116d957876001600160a01b0316632cbff446848c8489878d8d6040518863ffffffff1660e01b815260040180888152602001878152602001868152602001858152602001846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505098505050505050505050602060405180830381600087803b1580156116ac57600080fd5b505af11580156116c0573d6000803e3d6000fd5b505050506040513d60208110156116d657600080fd5b50505b60408051848152602081018c90528082018b9052606081018390526080810187905290516001600160a01b03808b1692908516917f8872a0bfe035dd55f2341f67aa0f9a8196bb3f97e132b6d3cb2f53f91aaa93f99181900360a00190a35050955095509592505050565b808201828110156104ed576040805162461bcd60e51b81526020600482015260136024820152724d4154483a3a204144445f4f564552464c4f5760681b604482015290519081900360640190fd5b808203828111156104ed576040805162461bcd60e51b81526020600482015260146024820152734d4154483a3a205355425f554e444552464c4f5760601b604482015290519081900360640190fd5b6107d08111156118225760405162461bcd60e51b81526004018080602001828103825260238152602001806118f46023913960400191505060405180910390fd5b6107d08111156118635760405162461bcd60e51b81526004018080602001828103825260238152602001806118f46023913960400191505060405180910390fd5b600055565b6000611878826104e78686611059565b949350505050565b3b151590565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b03168152509056fe466c6173682050726f746f636f6c3a3a20494e56414c49445f554e5354414b455f54494d45466c61736850726f746f636f6c3a3a20494e56414c49445f4d415443485f524154494f466c61736850726f746f636f6c3a3a2046554e4354494f4e5f54494d454c4f434b4544466c61736850726f746f636f6c3a3a204d41585f5354414b455f504552494f445f45584345454453466c61736850726f746f636f6c3a3a204e4f545f4d415443485f5245434549564552a26469706673582212206dc5d6153199f30c9e7dfd6cff75014faddcff6959bde4c24a51e128a2010df564736f6c63430007040033466c61736850726f746f636f6c3a3a20494e56414c49445f4d415443485f524154494f000000000000000000000000842f8f6fb524996d0b660621da895166e1cea69100000000000000000000000000000000000000000000000000000000000005dc
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80637aadef8b116100ad578063b4fa3b9811610071578063b4fa3b9814610448578063c17bae2a14610468578063cc704d5414610488578063d08c9702146104a5578063e345a380146104ad5761012c565b80637aadef8b146103155780638fee64071461031d578063a066983d14610379578063aa53099d14610405578063b3e1f050146104255761012c565b806332a3fcb8116100f457806332a3fcb8146101ef5780635b49129e146102b657806368220664146102be57806371ed5d1a146102db57806376f5cf28146102f85761012c565b80631051f696146101315780631f75caac1461016057806323c6e14c1461017d57806327212b5b146101a157806327e235e3146101c9575b600080fd5b61014e6004803603602081101561014757600080fd5b50356104ca565b60408051918252519081900360200190f35b61014e6004803603602081101561017657600080fd5b50356104f3565b610185610517565b604080516001600160a01b039092168252519081900360200190f35b6101c7600480360360208110156101b757600080fd5b50356001600160a01b031661052f565b005b61014e600480360360208110156101df57600080fd5b50356001600160a01b0316610649565b610298600480360361010081101561020657600080fd5b6001600160a01b038235169160208101359160408201359160608101359160ff6080830135169160a08101359160c08201359190810190610100810160e082013564010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184600183028401116401000000008311171561028d57600080fd5b50909250905061065b565b60408051938452602084019290925282820152519081900360600190f35b61014e61071a565b61014e600480360360208110156102d457600080fd5b5035610720565b61014e600480360360208110156102f157600080fd5b5035610851565b6101c76004803603602081101561030e57600080fd5b5035610a83565b61014e610b7e565b61033a6004803603602081101561033357600080fd5b5035610b85565b6040805196875260208701959095528585019390935260608501919091526001600160a01b0390811660808501521660a0830152519081900360c00190f35b6102986004803603608081101561038f57600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156103c657600080fd5b8201836020820111156103d857600080fd5b803590602001918460018302840111640100000000831117156103fa57600080fd5b509092509050610bc8565b6101c76004803603602081101561041b57600080fd5b503560ff16610beb565b61014e6004803603604081101561043b57600080fd5b5080359060200135610c69565b6101c76004803603602081101561045e57600080fd5b503560ff16610c96565b61014e6004803603602081101561047e57600080fd5b503560ff16610cf2565b61014e6004803603602081101561049e57600080fd5b5035610d04565b610185610d26565b61014e600480360360208110156104c357600080fd5b5035610d35565b60006104ed6127106104e76000548561105990919063ffffffff16565b906110be565b92915050565b60006104ed61050183610d04565b6104e76706f05b59d3b200006301e13380611059565b7320398ad62bb2d930646d45a6d4292baa0b860c1f81565b6001546001600160a01b031633146105785760405162461bcd60e51b81526004018080602001828103825260228152602001806119626022913960400191505060405180910390fd5b6001600081905260036020527fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c54158015906105dd575042600360008360018111156105c057fe5b60018111156105cb57fe5b81526020019081526020016000205411155b6106185760405162461bcd60e51b81526004018080602001828103825260238152602001806119176023913960400191505060405180910390fd5b61062182611128565b600060038160015b600181111561063457fe5b81526020810191909152604001600020555050565b60046020526000908152604090205481565b6040805163d505accf60e01b815233600482015230602482015260001960448201526064810188905260ff8716608482015260a4810186905260c481018590529051600091829182917320398ad62bb2d930646d45a6d4292baa0b860c1f9163d505accf9160e480820192869290919082900301818387803b1580156106e057600080fd5b505af11580156106f4573d6000803e3d6000fd5b505050506107058b8b8e888861114a565b92509250925099509950999650505050505050565b60005481565b6000806107ba837320398ad62bb2d930646d45a6d4292baa0b860c1f6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561078857600080fd5b505afa15801561079c573d6000803e3d6000fd5b505050506040513d60208110156107b257600080fd5b505190611744565b905061084a7320398ad62bb2d930646d45a6d4292baa0b860c1f6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561080c57600080fd5b505afa158015610820573d6000803e3d6000fd5b505050506040513d602081101561083657600080fd5b50516104e783670de0b6b3a7640000611059565b9392505050565b600061085b611886565b50600082815260026020818152604092839020835160c08101855281548152600182015492810192909252918201549281018390526003820154606082015260048201546001600160a01b03908116608083015260059092015490911660a082015290421015610912576040805162461bcd60e51b815260206004820152601f60248201527f466c61736850726f746f6c3a3a205354414b455f4e4f545f4558504952454400604482015290519081900360640190fd5b805160808201516001600160a01b031660009081526004602052604090205461093a91611792565b6080820180516001600160a01b0390811660009081526004602081815260408084209690965586518984526002808352878520858155600181018690559081018590556003810185905580840180546001600160a01b03199081169091556005909101805490911690559451865163a9059cbb60e01b81529416918401919091526024830184905293519295507320398ad62bb2d930646d45a6d4292baa0b860c1f9363a9059cbb93604480850194929391928390030190829087803b158015610a0357600080fd5b505af1158015610a17573d6000803e3d6000fd5b505050506040513d6020811015610a2d57600080fd5b50506080810151815160408051868152602081019290925280516001600160a01b03909316927f2ce17f91452598d1f926f6cfe29a9d42a67ff82b45d1eb94e0634c27555c14da9281900390910190a250919050565b6001546001600160a01b03163314610acc5760405162461bcd60e51b81526004018080602001828103825260228152602001806119626022913960400191505060405180910390fd5b600080805260036020527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff5415801590610b2f57504260036000836001811115610b1257fe5b6001811115610b1d57fe5b81526020019081526020016000205411155b610b6a5760405162461bcd60e51b81526004018080602001828103825260238152602001806119176023913960400191505060405180910390fd5b610b73826117e1565b600060038180610629565b6203f48081565b6002602081905260009182526040909120805460018201549282015460038301546004840154600590940154929493919290916001600160a01b03908116911686565b6000806000610bda888888888861114a565b925092509250955095509592505050565b6001546001600160a01b03163314610c345760405162461bcd60e51b81526004018080602001828103825260228152602001806119626022913960400191505060405180910390fd5b6203f480420160036000836001811115610c4a57fe5b6001811115610c5557fe5b815260208101919091526040016000205550565b600061084a6a1a1601fc4ea7109e0000006104e7610c8686610d04565b610c908787611059565b90611059565b6001546001600160a01b03163314610cdf5760405162461bcd60e51b81526004018080602001828103825260228152602001806119626022913960400191505060405180910390fd5b60001960036000836001811115610c4a57fe5b60036020526000908152604090205481565b60006104ed60026104e7610d1785610720565b670de0b6b3a764000090611792565b6001546001600160a01b031681565b6000610d3f611886565b50600082815260026020818152604092839020835160c0810185528154815260018201549281019290925291820154928101929092526003810154606083015260048101546001600160a01b03908116608084018190526005909201541660a083015233908114610df7576040805162461bcd60e51b815260206004820152601e60248201527f466c61736850726f746f636f6c3a3a20494e56414c49445f5354414b45520000604482015290519081900360640190fd5b6040820151600090610e099042611792565b905080836020015111610e4d5760405162461bcd60e51b81526004018080602001828103825260258152602001806118cf6025913960400191505060405180910390fd5b6000610e628460000151838660200151611868565b8451909150811115610e7057fe5b83516001600160a01b038416600090815260046020526040902054610e9491611792565b6001600160a01b0384166000908152600460205260409020558351610eb99082611792565b60008781526002602081815260408084208481556001810185905592830184905560038301849055600480840180546001600160a01b0319908116909155600590940180549094169093558051630852cd8d60e31b8152928301869052519398507320398ad62bb2d930646d45a6d4292baa0b860c1f936342966c68936024808501948390030190829087803b158015610f5257600080fd5b505af1158015610f66573d6000803e3d6000fd5b505050506040513d6020811015610f7c57600080fd5b50506040805163a9059cbb60e01b81526001600160a01b03851660048201526024810187905290517320398ad62bb2d930646d45a6d4292baa0b860c1f9163a9059cbb9160448083019260209291908290030181600087803b158015610fe157600080fd5b505af1158015610ff5573d6000803e3d6000fd5b505050506040513d602081101561100b57600080fd5b5050604080518781526020810187905281516001600160a01b038616927f2ce17f91452598d1f926f6cfe29a9d42a67ff82b45d1eb94e0634c27555c14da928290030190a250505050919050565b600082611068575060006104ed565b8282028284828161107557fe5b041461084a576040805162461bcd60e51b81526020600482015260136024820152724d4154483a3a204d554c5f4f564552464c4f5760681b604482015290519081900360640190fd5b6000808211611114576040805162461bcd60e51b815260206004820152601760248201527f4d4154483a3a204449564953494f4e5f42595f5a45524f000000000000000000604482015290519081900360640190fd5b600082848161111f57fe5b04949350505050565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60008060008088116111a3576040805162461bcd60e51b815260206004820152601e60248201527f466c61736850726f746f636f6c3a3a20494e56414c49445f414d4f554e540000604482015290519081900360640190fd5b6001600160a01b038616301415611201576040805162461bcd60e51b815260206004820152601f60248201527f466c61736850726f746f636f6c3a3a20494e56414c49445f4144445245535300604482015290519081900360640190fd5b61120a886104f3565b8711156112485760405162461bcd60e51b815260040180806020018281038252602881526020018061193a6028913960400191505060405180910390fd5b336000611255428a611744565b6001600160a01b03831660009081526004602052604090205490915061127b908b611744565b60046000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550898989844260405160200180868152602001858152602001846001600160a01b031660601b8152601401836001600160a01b031660601b81526014018281526020019550505050505060405160208183030381529060405280519060200120925060006001600160a01b03166002600085815260200190815260200160002060040160009054906101000a90046001600160a01b03166001600160a01b031614611395576040805162461bcd60e51b815260206004820152601c60248201527f466c61736850726f746f636f6c3a3a205354414b455f45584953545300000000604482015290519081900360640190fd5b61139f8a8a610c69565b94506113aa856104ca565b604080516323b872dd60e01b81526001600160a01b0385166004820152306024820152604481018d905290519195507320398ad62bb2d930646d45a6d4292baa0b860c1f916323b872dd916064808201926020929091908290030181600087803b15801561141757600080fd5b505af115801561142b573d6000803e3d6000fd5b505050506040513d602081101561144157600080fd5b5050604080516340c10f1960e01b81526001600160a01b038a1660048201526024810187905290517320398ad62bb2d930646d45a6d4292baa0b860c1f916340c10f199160448083019260209291908290030181600087803b1580156114a657600080fd5b505af11580156114ba573d6000803e3d6000fd5b505050506040513d60208110156114d057600080fd5b5050600154604080516340c10f1960e01b81526001600160a01b03909216600483015260248201869052517320398ad62bb2d930646d45a6d4292baa0b860c1f916340c10f199160448083019260209291908290030181600087803b15801561153857600080fd5b505af115801561154c573d6000803e3d6000fd5b505050506040513d602081101561156257600080fd5b50506040805160c0810182528b815260208181018c8152828401858152606084018a81526001600160a01b03808916608087019081528f821660a0880181815260008d8152600298899052999099209751885594516001880155925194860194909455516003850155516004840180549184166001600160a01b0319928316179055935160059093018054939092169290931691909117905561160490611880565b156116d957876001600160a01b0316632cbff446848c8489878d8d6040518863ffffffff1660e01b815260040180888152602001878152602001868152602001858152602001846001600160a01b03168152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505098505050505050505050602060405180830381600087803b1580156116ac57600080fd5b505af11580156116c0573d6000803e3d6000fd5b505050506040513d60208110156116d657600080fd5b50505b60408051848152602081018c90528082018b9052606081018390526080810187905290516001600160a01b03808b1692908516917f8872a0bfe035dd55f2341f67aa0f9a8196bb3f97e132b6d3cb2f53f91aaa93f99181900360a00190a35050955095509592505050565b808201828110156104ed576040805162461bcd60e51b81526020600482015260136024820152724d4154483a3a204144445f4f564552464c4f5760681b604482015290519081900360640190fd5b808203828111156104ed576040805162461bcd60e51b81526020600482015260146024820152734d4154483a3a205355425f554e444552464c4f5760601b604482015290519081900360640190fd5b6107d08111156118225760405162461bcd60e51b81526004018080602001828103825260238152602001806118f46023913960400191505060405180910390fd5b6107d08111156118635760405162461bcd60e51b81526004018080602001828103825260238152602001806118f46023913960400191505060405180910390fd5b600055565b6000611878826104e78686611059565b949350505050565b3b151590565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b03168152509056fe466c6173682050726f746f636f6c3a3a20494e56414c49445f554e5354414b455f54494d45466c61736850726f746f636f6c3a3a20494e56414c49445f4d415443485f524154494f466c61736850726f746f636f6c3a3a2046554e4354494f4e5f54494d454c4f434b4544466c61736850726f746f636f6c3a3a204d41585f5354414b455f504552494f445f45584345454453466c61736850726f746f636f6c3a3a204e4f545f4d415443485f5245434549564552a26469706673582212206dc5d6153199f30c9e7dfd6cff75014faddcff6959bde4c24a51e128a2010df564736f6c63430007040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000842f8f6fb524996d0b660621da895166e1cea69100000000000000000000000000000000000000000000000000000000000005dc
-----Decoded View---------------
Arg [0] : _initialMatchReceiver (address): 0x842f8f6fB524996d0b660621DA895166E1ceA691
Arg [1] : _initialMatchRatio (uint256): 1500
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000842f8f6fb524996d0b660621da895166e1cea691
Arg [1] : 00000000000000000000000000000000000000000000000000000000000005dc
Deployed Bytecode Sourcemap
5695:8236:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12706:154;;;;;;;;;;;;;;;;-1:-1:-1;12706:154:0;;:::i;:::-;;;;;;;;;;;;;;;;13520:181;;;;;;;;;;;;;;;;-1:-1:-1;13520:181:0;;:::i;6061:89::-;;;:::i;:::-;;;;-1:-1:-1;;;;;6061:89:0;;;;;;;;;;;;;;7833:290;;;;;;;;;;;;;;;;-1:-1:-1;7833:290:0;-1:-1:-1;;;;;7833:290:0;;:::i;:::-;;6541:52;;;;;;;;;;;;;;;;-1:-1:-1;6541:52:0;-1:-1:-1;;;;;6541:52:0;;:::i;9224:551::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9224:551:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9224:551:0;;-1:-1:-1;9224:551:0;-1:-1:-1;9224:551:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;6332:34;;;:::i;13242:270::-;;;;;;;;;;;;;;;;-1:-1:-1;13242:270:0;;:::i;11378:469::-;;;;;;;;;;;;;;;;-1:-1:-1;11378:469:0;;:::i;8254:272::-;;;;;;;;;;;;;;;;-1:-1:-1;8254:272:0;;:::i;6004:50::-;;;:::i;6419:48::-;;;;;;;;;;;;;;;;-1:-1:-1;6419:48:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6419:48:0;;;;;;;;;;;;;;;;;;;;;8875:341;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8875:341:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8875:341:0;;-1:-1:-1;8875:341:0;-1:-1:-1;8875:341:0;:::i;7659:166::-;;;;;;;;;;;;;;;;-1:-1:-1;7659:166:0;;;;:::i;12868:204::-;;;;;;;;;;;;;;;;-1:-1:-1;12868:204:0;;;;;;;:::i;7496:155::-;;;;;;;;;;;;;;;;-1:-1:-1;7496:155:0;;;;:::i;6474:60::-;;;;;;;;;;;;;;;;-1:-1:-1;6474:60:0;;;;:::i;13080:154::-;;;;;;;;;;;;;;;;-1:-1:-1;13080:154:0;;:::i;6373:37::-;;;:::i;11855:843::-;;;;;;;;;;;;;;;;-1:-1:-1;11855:843:0;;:::i;12706:154::-;12785:7;12812:40;12846:5;12812:29;12830:10;;12812:13;:17;;:29;;;;:::i;:::-;:33;;:40::i;:::-;12805:47;12706:154;-1:-1:-1;;12706:154:0:o;13520:181::-;13602:7;13629:64;13675:17;13682:9;13675:6;:17::i;:::-;13629:41;6255:4;6312:11;13629:22;:41::i;6061:89::-;6108:42;6061:89;:::o;7833:290::-;6979:13;;-1:-1:-1;;;;;6979:13:0;6965:10;:27;6957:74;;;;-1:-1:-1;;;6957:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7968:34:::1;7144:25;::::0;;;:8:::1;:25;::::0;;;:30;;::::1;::::0;:78:::1;;;7207:15;7178:8;:25;7187:15;7178:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;:44;;7144:78;7122:163;;;;-1:-1:-1::0;;;7122:163:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8020:36:::2;8038:17;8020;:36::i;:::-;8114:1;8067:8;8114:1:::0;8076:34:::2;8067:44;;;;;;;;;::::0;;::::2;::::0;::::2;::::0;;;;;;-1:-1:-1;8067:44:0;:48;-1:-1:-1;;7833:290:0:o;6541:52::-;;;;;;;;;;;;;:::o;9224:551::-;9605:100;;;-1:-1:-1;;;9605:100:0;;9637:10;9605:100;;;;9657:4;9605:100;;;;-1:-1:-1;;9605:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9526:7;;;;;;6108:42;;9605:31;;:100;;;;;9526:7;;9605:100;;;;;;;;9526:7;6108:42;9605:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9723:44;9730:9;9741:7;9750:9;9761:5;;9723:6;:44::i;:::-;9716:51;;;;;;9224:551;;;;;;;;;;;;;:::o;6332:34::-;;;;:::o;13242:270::-;13320:7;13340:14;13357:64;13411:9;6108:42;-1:-1:-1;;;;;13357:34:0;;13400:4;13357:49;;;;;;;;;;;;;-1:-1:-1;;;;;13357:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13357:49:0;;:53;:64::i;:::-;13340:81;;13439:65;6108:42;-1:-1:-1;;;;;13465:36:0;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13465:38:0;13439:21;:6;6197:4;13439:10;:21::i;:65::-;13432:72;13242:270;-1:-1:-1;;;13242:270:0:o;11378:469::-;11435:22;11470:14;;:::i;:::-;-1:-1:-1;11487:11:0;;;;:6;:11;;;;;;;;;11470:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11470:28:0;;;;;;;;;;;;;;;;;;;;11517:15;:32;;11509:76;;;;;-1:-1:-1;;;11509:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11640:10;;11626:8;;;;-1:-1:-1;;;;;11617:18:0;11640:10;11617:18;;;:8;:18;;;;;;:34;;:22;:34::i;:::-;11605:8;;;;;-1:-1:-1;;;;;11596:18:0;;;;;;;:8;:18;;;;;;;;:55;;;;11679:10;;11707:11;;;:6;:11;;;;;;11700:18;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11700:18:0;;;;;;;;;;;;;;;;;11763:8;;11729:59;;-1:-1:-1;;;11729:59:0;;;;;;;;;;;;;;;;;;;11679:10;;-1:-1:-1;6108:42:0;;11729:33;;:59;;;;;11596:18;;11729:59;;;;;;;;;6108:42;11729:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11830:8:0;;;;11818:10;;11804:35;;;;;;11729:59;11804:35;;;;;;;;-1:-1:-1;;;;;11804:35:0;;;;;;;;;;;;;;11378:469;;;;:::o;8254:272::-;6979:13;;-1:-1:-1;;;;;6979:13:0;6965:10;:27;6957:74;;;;-1:-1:-1;;;6957:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8383:31:::1;7144:25:::0;;;:8:::1;:25;::::0;;;:30;;::::1;::::0;:78:::1;;;7207:15;7178:8;:25;7187:15;7178:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;:44;;7144:78;7122:163;;;;-1:-1:-1::0;;;7122:163:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8432:30:::2;8447:14;8432;:30::i;:::-;8517:1;8473:8;8517:1:::0;;8473:41:::2;::::0;6004:50;6048:6;6004:50;:::o;6419:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6419:48:0;;;;;;:::o;8875:341::-;9078:7;9100;9122;9164:44;9171:9;9182:7;9191:9;9202:5;;9164:6;:44::i;:::-;9157:51;;;;;;8875:341;;;;;;;;;:::o;7659:166::-;6979:13;;-1:-1:-1;;;;;6979:13:0;6965:10;:27;6957:74;;;;-1:-1:-1;;;6957:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6048:6:::1;7791:15;:26;7763:8;:25;7772:15;7763:25;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;7763:25:0;:54;-1:-1:-1;7659:166:0:o;12868:204::-;12957:7;12984:80;13034:29;12984:45;13011:17;13018:9;13011:6;:17::i;:::-;12984:22;:9;12998:7;12984:13;:22::i;:::-;:26;;:45::i;7496:155::-;6979:13;;-1:-1:-1;;;;;6979:13:0;6965:10;:27;6957:74;;;;-1:-1:-1;;;6957:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7598:8:0::1;:25;7607:15;7598:25;;;;;;;6474:60:::0;;;;;;;;;;;;;:::o;13080:154::-;13145:7;13172:54;13224:1;13173:45;13187:30;13207:9;13187:19;:30::i;:::-;6197:4;;13173:13;:45::i;6373:37::-;;;-1:-1:-1;;;;;6373:37:0;;:::o;11855:843::-;11917:22;11952:14;;:::i;:::-;-1:-1:-1;11969:11:0;;;;:6;:11;;;;;;;;;11952:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11952:28:0;;;;;;;;;;;;;;;;;;;12008:10;;12037:18;;12029:61;;;;;-1:-1:-1;;;12029:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12126:13;;;;12101:21;;12126:34;;12144:15;12126:17;:34::i;:::-;12101:60;;12191:13;12180:1;:8;;;:24;12172:74;;;;-1:-1:-1;;;12172:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12257:18;12278:51;12293:1;:10;;;12305:13;12320:1;:8;;;12278:14;:51::i;:::-;12361:10;;12257:72;;-1:-1:-1;12347:24:0;;;12340:32;;;;12423:10;;-1:-1:-1;;;;;12402:16:0;;12423:10;12402:16;;;:8;:16;;;;;;:32;;:20;:32::i;:::-;-1:-1:-1;;;;;12383:16:0;;;;;;:8;:16;;;;;:51;12462:10;;:26;;12477:10;12462:14;:26::i;:::-;12506:11;;;;:6;:11;;;;;;;;12499:18;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12499:18:0;;;;;;;;;;;;;;;;;;12528:41;;-1:-1:-1;;;12528:41:0;;;;;;;;;12445:43;;-1:-1:-1;6108:42:0;;12528:29;;:41;;;;;;;;;;;;6108:42;12528:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12580:57:0;;;-1:-1:-1;;;12580:57:0;;-1:-1:-1;;;;;12580:57:0;;;;;;;;;;;;;;6108:42;;12580:33;;:57;;;;;12528:41;;12580:57;;;;;;;-1:-1:-1;6108:42:0;12580:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12653:37:0;;;;;;12580:57;12653:37;;;;;;;-1:-1:-1;;;;;12653:37:0;;;;;;;;;;;11855:843;;;;;;;:::o;3897:457::-;3955:7;4200:6;4196:47;;-1:-1:-1;4230:1:0;4223:8;;4196:47;4267:5;;;4271:1;4267;:5;:1;4291:5;;;;;:10;4283:42;;;;;-1:-1:-1;;;4283:42:0;;;;;;;;;;;;-1:-1:-1;;;4283:42:0;;;;;;;;;;;;;;4362:263;4420:7;4452:1;4448;:5;4440:41;;;;;-1:-1:-1;;;4440:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4492:9;4508:1;4504;:5;;;;;;;4362:263;-1:-1:-1;;;;4362:263:0:o;8131:115::-;8205:13;:33;;-1:-1:-1;;;;;;8205:33:0;-1:-1:-1;;;;;8205:33:0;;;;;;;;;;8131:115::o;9783:1587::-;9969:20;10004:21;10040:10;10098:1;10086:9;:13;10078:56;;;;;-1:-1:-1;;;10078:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10153:26:0;;10174:4;10153:26;;10145:70;;;;;-1:-1:-1;;;10145:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10245:34;10269:9;10245:23;:34::i;:::-;10234:7;:45;;10226:98;;;;-1:-1:-1;;;10226:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10354:10;10337:14;10398:28;:15;10418:7;10398:19;:28::i;:::-;-1:-1:-1;;;;;10456:16:0;;;;;;:8;:16;;;;;;10377:49;;-1:-1:-1;10456:31:0;;10477:9;10456:20;:31::i;:::-;10437:8;:16;10446:6;-1:-1:-1;;;;;10437:16:0;-1:-1:-1;;;;;10437:16:0;;;;;;;;;;;;:50;;;;10532:9;10543:7;10552:9;10563:6;10571:15;10515:72;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10515:72:0;;;;;;;;-1:-1:-1;;;;;10515:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10505:83;;;;;;10500:88;;10638:1;-1:-1:-1;;;;;10609:31:0;:6;:10;10616:2;10609:10;;;;;;;;;;;:17;;;;;;;;;;-1:-1:-1;;;;;10609:17:0;-1:-1:-1;;;;;10609:31:0;;10601:72;;;;;-1:-1:-1;;;10601:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10701:33;10715:9;10726:7;10701:13;:33::i;:::-;10686:48;;10761:30;10778:12;10761:16;:30::i;:::-;10804:71;;;-1:-1:-1;;;10804:71:0;;-1:-1:-1;;;;;10804:71:0;;;;;;10858:4;10804:71;;;;;;;;;;;;10745:46;;-1:-1:-1;6108:42:0;;10804:37;;:71;;;;;;;;;;;;;;;-1:-1:-1;6108:42:0;10804:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10888:54:0;;;-1:-1:-1;;;10888:54:0;;-1:-1:-1;;;;;10888:54:0;;;;;;;;;;;;;;6108:42;;10888:29;;:54;;;;;10804:71;;10888:54;;;;;;;-1:-1:-1;6108:42:0;10888:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10983:13:0;;10953:59;;;-1:-1:-1;;;10953:59:0;;-1:-1:-1;;;;;10983:13:0;;;10953:59;;;;;;;;;;;6108:42;;10953:29;;:59;;;;;10888:54;;10953:59;;;;;;;-1:-1:-1;6108:42:0;10953:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11038:70:0;;;;;;;;;;;10953:59;11038:70;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11038:70:0;;;;;;;;;;;;;;;;;;-1:-1:-1;11025:10:0;;;:6;:10;;;;;;;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11025:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11125:22;;:20;:22::i;:::-;11121:149;;;11179:9;-1:-1:-1;;;;;11164:38:0;;11203:2;11207:9;11218:10;11230:12;11244:6;11252:5;;11164:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11164:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11121:149:0;11287:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11287:75:0;;;;;;;;;;;;;;;;;9783:1587;;;;;;;;;;;:::o;3608:136::-;3701:5;;;3696:16;;;;3688:48;;;;;-1:-1:-1;;;3688:48:0;;;;;;;;;;;;-1:-1:-1;;;3688:48:0;;;;;;;;;;;;;;3752:137;3845:5;;;3840:16;;;;3832:49;;;;;-1:-1:-1;;;3832:49:0;;;;;;;;;;;;-1:-1:-1;;;3832:49:0;;;;;;;;;;;;;;8534:333;8651:4;8633:14;:22;;8602:93;;;;-1:-1:-1;;;8602:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8777:4;8759:14;:22;;8751:70;;;;-1:-1:-1;;;8751:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8832:10;:27;8534:333::o;13709:219::-;13850:7;13877:43;13909:10;13877:27;:7;13889:14;13877:11;:27::i;:43::-;13870:50;13709:219;-1:-1:-1;;;;13709:219:0:o;5242:444::-;5622:20;5670:8;;;5242:444::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://6dc5d6153199f30c9e7dfd6cff75014faddcff6959bde4c24a51e128a2010df5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.