Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 132 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Ret By Admin | 11994679 | 1408 days ago | IN | 0 ETH | 0.00730091 | ||||
CLAIMREWARD | 11976251 | 1411 days ago | IN | 0 ETH | 0.00676122 | ||||
CLAIMREWARD | 11954416 | 1414 days ago | IN | 0 ETH | 0.00978836 | ||||
CLAIMREWARD | 11952580 | 1414 days ago | IN | 0 ETH | 0.00951646 | ||||
CLAIMREWARD | 11951071 | 1415 days ago | IN | 0 ETH | 0.00761317 | ||||
CLAIMREWARD | 11950225 | 1415 days ago | IN | 0 ETH | 0.00591954 | ||||
CLAIMREWARD | 11949603 | 1415 days ago | IN | 0 ETH | 0.0066162 | ||||
CLAIMREWARD | 11949306 | 1415 days ago | IN | 0 ETH | 0.0074319 | ||||
CLAIMREWARD | 11948597 | 1415 days ago | IN | 0 ETH | 0.0079757 | ||||
CLAIMREWARD | 11942244 | 1416 days ago | IN | 0 ETH | 0.00915393 | ||||
CLAIMREWARD | 11930920 | 1418 days ago | IN | 0 ETH | 0.00897266 | ||||
CLAIMREWARD | 11905347 | 1422 days ago | IN | 0 ETH | 0.00987899 | ||||
CLAIMREWARD | 11904697 | 1422 days ago | IN | 0 ETH | 0.01042279 | ||||
CLAIMREWARD | 11897951 | 1423 days ago | IN | 0 ETH | 0.00919924 | ||||
CLAIMREWARD | 11864667 | 1428 days ago | IN | 0 ETH | 0.0175828 | ||||
CLAIMREWARD | 11854186 | 1430 days ago | IN | 0 ETH | 0.01006932 | ||||
CLAIMREWARD | 11849117 | 1430 days ago | IN | 0 ETH | 0.01114785 | ||||
CLAIMREWARD | 11845454 | 1431 days ago | IN | 0 ETH | 0.00515437 | ||||
CLAIMREWARD | 11840404 | 1432 days ago | IN | 0 ETH | 0.00804631 | ||||
CLAIMREWARD | 11833794 | 1433 days ago | IN | 0 ETH | 0.0087914 | ||||
CLAIMREWARD | 11815037 | 1436 days ago | IN | 0 ETH | 0.00996963 | ||||
CLAIMREWARD | 11814518 | 1436 days ago | IN | 0 ETH | 0.01024152 | ||||
CLAIMREWARD | 11814216 | 1436 days ago | IN | 0 ETH | 0.00815697 | ||||
CLAIMREWARD | 11813913 | 1436 days ago | IN | 0 ETH | 0.00915393 | ||||
CLAIMREWARD | 11813252 | 1436 days ago | IN | 0 ETH | 0.00815697 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
11994679 | 1408 days ago | 1.18808617 ETH | ||||
11976251 | 1411 days ago | 0.06686614 ETH | ||||
11954416 | 1414 days ago | 0.02118867 ETH | ||||
11952580 | 1414 days ago | 0.04275678 ETH | ||||
11951071 | 1415 days ago | 0.29955711 ETH | ||||
11950225 | 1415 days ago | 0.02293608 ETH | ||||
11949603 | 1415 days ago | 0.04309628 ETH | ||||
11949306 | 1415 days ago | 0.09985237 ETH | ||||
11948597 | 1415 days ago | 0.02995571 ETH | ||||
11942244 | 1416 days ago | 0.02496309 ETH | ||||
11930920 | 1418 days ago | 0.04992618 ETH | ||||
11905347 | 1422 days ago | 0.10734129 ETH | ||||
11904697 | 1422 days ago | 0.04992618 ETH | ||||
11897951 | 1423 days ago | 0.04024011 ETH | ||||
11864667 | 1428 days ago | 0.10682206 ETH | ||||
11854186 | 1430 days ago | 0.04987625 ETH | ||||
11849117 | 1430 days ago | 0.04593209 ETH | ||||
11833794 | 1433 days ago | 0.18344378 ETH | ||||
11815037 | 1436 days ago | 0.0394267 ETH | ||||
11814518 | 1436 days ago | 0.1470426 ETH | ||||
11814216 | 1436 days ago | 0.16727269 ETH | ||||
11813913 | 1436 days ago | 0.15350804 ETH | ||||
11813252 | 1436 days ago | 0.07488927 ETH | ||||
11813166 | 1436 days ago | 0.15369277 ETH | ||||
11813076 | 1436 days ago | 0.1897195 ETH |
Loading...
Loading
Contract Name:
UniswapSnipeListingBotBBPStake
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-22 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.7.5; // ---------------------------------------------------------------------------- // SafeMath library // ---------------------------------------------------------------------------- library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } function ceil(uint a, uint m) internal pure returns (uint r) { return (a + m - 1) / m * m; } } // ---------------------------------------------------------------------------- // Owned contract // ---------------------------------------------------------------------------- contract Owned { address payable public owner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address payable _newOwner) public onlyOwner { require(_newOwner != address(0), "ERC20: sending to the zero address"); owner = _newOwner; emit OwnershipTransferred(msg.sender, _newOwner); } } // ---------------------------------------------------------------------------- // ERC Token Standard #20 Interface // ---------------------------------------------------------------------------- interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address tokenOwner) external view returns (uint256 balance); function allowance(address tokenOwner, address spender) external view returns (uint256 remaining); function transfer(address to, uint256 tokens) external returns (bool success); function approve(address spender, uint256 tokens) external returns (bool success); function transferFrom(address from, address to, uint256 tokens) external returns (bool success); function burnTokens(uint256 _amount) external; function calculateFees( address sender, address recipient, uint256 amount ) external view returns (uint256, uint256); event Transfer(address indexed from, address indexed to, uint256 tokens); event Approval(address indexed tokenOwner, address indexed spender, uint256 tokens); } // ---------------------------------------------------------------------------- // ERC20 Token, with the addition of symbol, name and decimals and assisted // token transfers // ---------------------------------------------------------------------------- contract UniswapSnipeListingBotBBPStake is Owned { using SafeMath for uint256; address public BBPLP = 0x44f692888a0ED51BC5b05867d9149C5F32F5E07F; address public BBP = 0xbb0A009ba1EB20c5062C790432f080F6597662AF; address public lpLockAddress = 0x740Fda023D5aa68cB392DE148C88966BD91Ec53e; uint256 public totalStakes = 0; uint256 public totalDividends = 0; uint256 private scaledRemainder = 0; uint256 private scaling = uint256(10) ** 12; uint public round = 1; uint256 public maxAllowed = 100000000000000000000; //100 tokens total allowed to be staked uint256 public ethMade=0; //total payout given /* Fees breaker, to protect withdraws if anything ever goes wrong */ bool public breaker = true; // withdraw can be unlock,, default locked mapping(address => uint) public farmTime; // period that your sake it locked to keep it for farming //uint public lock = 0; // farm lock in blocks ~ 0 days for 15s/block //address public admin; struct USER{ uint256 stakedTokens; uint256 lastDividends; uint256 fromTotalDividend; uint round; uint256 remainder; } address[] internal stakeholders; mapping(address => USER) stakers; mapping (uint => uint256) public payouts; // keeps record of each payout event STAKED(address staker, uint256 tokens); event EARNED(address staker, uint256 tokens); event UNSTAKED(address staker, uint256 tokens); event PAYOUT(uint256 round, uint256 tokens, address sender); event CLAIMEDREWARD(address staker, uint256 reward); function setBreaker(bool _breaker) external onlyOwner { breaker = _breaker; } function isStakeholder(address _address) public view returns(bool) { for (uint256 s = 0; s < stakeholders.length; s += 1){ if (_address == stakeholders[s]) return (true); } return (false); } function addStakeholder(address _stakeholder) public { (bool _isStakeholder) = isStakeholder(_stakeholder); if(!_isStakeholder) stakeholders.push(_stakeholder); } function setLpLockAddress(address _account) public onlyOwner { require(_account != address(0), "ERC20: Setting zero address"); lpLockAddress = _account; } // ------------------------------------------------------------------------ // Token holders can stake their tokens using this function // @param tokens number of tokens to stake // ------------------------------------------------------------------------ function STAKE(uint256 tokens) external { require(totalStakes < maxAllowed, "MAX AMOUNT REACHED CANNOT STAKE NO MORE"); require(IERC20(BBPLP).transferFrom(msg.sender, address(lpLockAddress), tokens), "Tokens cannot be transferred from user for locking"); // add pending rewards to remainder to be claimed by user later, if there is any existing stake uint256 owing = pendingReward(msg.sender); stakers[msg.sender].remainder += owing; stakers[msg.sender].stakedTokens = tokens.add(stakers[msg.sender].stakedTokens); stakers[msg.sender].lastDividends = owing; stakers[msg.sender].fromTotalDividend= totalDividends; stakers[msg.sender].round = round; (bool _isStakeholder) = isStakeholder(msg.sender); if(!_isStakeholder) farmTime[msg.sender] = block.timestamp; totalStakes = totalStakes.add(tokens); addStakeholder(msg.sender); emit STAKED(msg.sender, tokens); } // ------------------------------------------------------------------------ // Owners can send the funds to be distributed to stakers using this function // @param tokens number of tokens to distribute // ------------------------------------------------------------------------ function ADDFUNDS() external payable { uint256 _amount = msg.value; ethMade = ethMade.add(_amount); _addPayout(_amount); } // ------------------------------------------------------------------------ // Private function to register payouts // ------------------------------------------------------------------------ function _addPayout(uint256 tokens) private{ // divide the funds among the currently staked tokens // scale the deposit and add the previous remainder uint256 available = (tokens.mul(scaling)).add(scaledRemainder); uint256 dividendPerToken = available.div(totalStakes); scaledRemainder = available.mod(totalStakes); totalDividends = totalDividends.add(dividendPerToken); payouts[round] = payouts[round - 1].add(dividendPerToken); emit PAYOUT(round, tokens, msg.sender); round++; } // ------------------------------------------------------------------------ // Stakers can claim their pending rewards using this function // ------------------------------------------------------------------------ function CLAIMREWARD() public { if(totalDividends >= stakers[msg.sender].fromTotalDividend){ uint256 owing = pendingReward(msg.sender); owing = owing.add(stakers[msg.sender].remainder); stakers[msg.sender].remainder = 0; msg.sender.transfer(owing); emit CLAIMEDREWARD(msg.sender, owing); stakers[msg.sender].lastDividends = owing; // unscaled stakers[msg.sender].round = round; // update the round stakers[msg.sender].fromTotalDividend = totalDividends; // scaled } } // ------------------------------------------------------------------------ // Get the pending rewards of the staker // @param _staker the address of the staker // ------------------------------------------------------------------------ function pendingReward(address staker) private returns (uint256) { require(staker != address(0), "ERC20: sending to the zero address"); uint stakersRound = stakers[staker].round; uint256 amount = ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)).div(scaling); stakers[staker].remainder += ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)) % scaling ; return amount; } function getPendingReward(address staker) public view returns(uint256 _pendingReward) { require(staker != address(0), "ERC20: sending to the zero address"); uint stakersRound = stakers[staker].round; uint256 amount = ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)).div(scaling); amount += ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)) % scaling ; return (amount.add(stakers[staker].remainder)); } // ------------------------------------------------------------------------ // Stakers can un stake the staked tokens using this function // @param tokens the number of tokens to withdraw // ------------------------------------------------------------------------ function WITHDRAW(uint256 tokens) external { require(breaker == false, "Admin Restricted WITHDRAW"); require(stakers[msg.sender].stakedTokens >= tokens && tokens > 0, "Invalid token amount to withdraw"); totalStakes = totalStakes.sub(tokens); // add pending rewards to remainder to be claimed by user later, if there is any existing stake uint256 owing = pendingReward(msg.sender); stakers[msg.sender].remainder += owing; stakers[msg.sender].stakedTokens = stakers[msg.sender].stakedTokens.sub(tokens); stakers[msg.sender].lastDividends = owing; stakers[msg.sender].fromTotalDividend= totalDividends; stakers[msg.sender].round = round; require(IERC20(BBPLP).transfer(msg.sender, tokens), "Error in un-staking tokens"); emit UNSTAKED(msg.sender, tokens); } // ------------------------------------------------------------------------ // Private function to calculate 1% percentage // ------------------------------------------------------------------------ function onePercent(uint256 _tokens) private pure returns (uint256){ uint256 roundValue = _tokens.ceil(100); uint onePercentofTokens = roundValue.mul(100).div(100 * 10**uint(2)); return onePercentofTokens; } // ------------------------------------------------------------------------ // Get the number of tokens staked by a staker // @param _staker the address of the staker // ------------------------------------------------------------------------ function yourStakedBBPLp(address staker) public view returns(uint256 stakedBBPLp){ require(staker != address(0), "ERC20: sending to the zero address"); return stakers[staker].stakedTokens; } // ------------------------------------------------------------------------ // Get the BBP balance of the token holder // @param user the address of the token holder // ------------------------------------------------------------------------ function yourBBPBalance(address user) external view returns(uint256 BBPBalance){ require(user != address(0), "ERC20: sending to the zero address"); return IERC20(BBP).balanceOf(user); } function yourBBPLpBalance(address user) external view returns(uint256 BBPLpBalance){ require(user != address(0), "ERC20: sending to the zero address"); return IERC20(BBPLP).balanceOf(user); } function retByAdmin() public onlyOwner { require(IERC20(BBPLP).transfer(owner, IERC20(BBPLP).balanceOf(address(this))), "Error in retrieving tokens"); require(IERC20(BBP).transfer(owner, IERC20(BBP).balanceOf(address(this))), "Error in retrieving bbp tokens"); owner.transfer(address(this).balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"CLAIMEDREWARD","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"EARNED","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"PAYOUT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"STAKED","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"UNSTAKED","type":"event"},{"inputs":[],"name":"ADDFUNDS","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"BBP","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"BBPLP","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CLAIMREWARD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"STAKE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"WITHDRAW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakeholder","type":"address"}],"name":"addStakeholder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"breaker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ethMade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"farmTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"getPendingReward","outputs":[{"internalType":"uint256","name":"_pendingReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isStakeholder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpLockAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"retByAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"round","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_breaker","type":"bool"}],"name":"setBreaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"setLpLockAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"yourBBPBalance","outputs":[{"internalType":"uint256","name":"BBPBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"yourBBPLpBalance","outputs":[{"internalType":"uint256","name":"BBPLpBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"yourStakedBBPLp","outputs":[{"internalType":"uint256","name":"stakedBBPLp","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600180546001600160a01b03199081167344f692888a0ed51bc5b05867d9149c5f32f5e07f17825560028054821673bb0a009ba1eb20c5062c790432f080f6597662af1790556003805490911673740fda023d5aa68cb392de148c88966bd91ec53e179055600060048190556005819055600681905564e8d4a51000600755600882905568056bc75e2d63100000600955600a55600b805460ff191690911790553480156100b157600080fd5b50600080546001600160a01b03191633179055611897806100d36000396000f3fe6080604052600436106101815760003560e01c8063997664d7116100d1578063ca3996711161008a578063e5c42fd111610064578063e5c42fd114610477578063ef037b90146104aa578063f2fde38b146104dd578063f3ec37c21461051057610181565b8063ca39967114610430578063ca84d59114610445578063cc16ab6e1461046f57610181565b8063997664d714610358578063a76267391461036d578063bf9befb1146103a0578063c3f344a8146103b5578063c5a7525a146103e8578063c5cc0f161461041b57610181565b80632c75bcda1161013e5780634e78e565116101185780634e78e565146102ed5780635c0aeb0e146103025780638da5cb5b1461032e57806398d624041461034357610181565b80632c75bcda1461027b5780634baf782e146102a55780634df9d6ba146102ba57610181565b80630f41e0d214610186578063146ca531146101af5780631c233879146101d657806323d308fa146101ed57806329272a631461022057806329652e8614610251575b600080fd5b34801561019257600080fd5b5061019b610543565b604080519115158252519081900360200190f35b3480156101bb57600080fd5b506101c461054c565b60408051918252519081900360200190f35b3480156101e257600080fd5b506101eb610552565b005b3480156101f957600080fd5b506101c46004803603602081101561021057600080fd5b50356001600160a01b0316610846565b34801561022c57600080fd5b5061023561090e565b604080516001600160a01b039092168252519081900360200190f35b34801561025d57600080fd5b506101c46004803603602081101561027457600080fd5b503561091d565b34801561028757600080fd5b506101eb6004803603602081101561029e57600080fd5b503561092f565b3480156102b157600080fd5b506101eb610b74565b3480156102c657600080fd5b506101c4600480360360208110156102dd57600080fd5b50356001600160a01b0316610c65565b3480156102f957600080fd5b50610235610d88565b34801561030e57600080fd5b506101eb6004803603602081101561032557600080fd5b50351515610d97565b34801561033a57600080fd5b50610235610dc1565b34801561034f57600080fd5b50610235610dd0565b34801561036457600080fd5b506101c4610ddf565b34801561037957600080fd5b506101c46004803603602081101561039057600080fd5b50356001600160a01b0316610de5565b3480156103ac57600080fd5b506101c4610e48565b3480156103c157600080fd5b506101c4600480360360208110156103d857600080fd5b50356001600160a01b0316610e4e565b3480156103f457600080fd5b506101c46004803603602081101561040b57600080fd5b50356001600160a01b0316610e60565b34801561042757600080fd5b506101c4610ef4565b34801561043c57600080fd5b506101c4610efa565b34801561045157600080fd5b506101eb6004803603602081101561046857600080fd5b5035610f00565b6101eb6110e4565b34801561048357600080fd5b506101eb6004803603602081101561049a57600080fd5b50356001600160a01b03166110ff565b3480156104b657600080fd5b5061019b600480360360208110156104cd57600080fd5b50356001600160a01b0316611161565b3480156104e957600080fd5b506101eb6004803603602081101561050057600080fd5b50356001600160a01b03166111b6565b34801561051c57600080fd5b506101eb6004803603602081101561053357600080fd5b50356001600160a01b031661125d565b600b5460ff1681565b60085481565b6000546001600160a01b0316331461056957600080fd5b600154600054604080516370a0823160e01b815230600482015290516001600160a01b039384169363a9059cbb93169184916370a0823191602480820192602092909190829003018186803b1580156105c157600080fd5b505afa1580156105d5573d6000803e3d6000fd5b505050506040513d60208110156105eb57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561063c57600080fd5b505af1158015610650573d6000803e3d6000fd5b505050506040513d602081101561066657600080fd5b50516106b9576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e2072657472696576696e6720746f6b656e73000000000000604482015290519081900360640190fd5b600254600054604080516370a0823160e01b815230600482015290516001600160a01b039384169363a9059cbb93169184916370a0823191602480820192602092909190829003018186803b15801561071157600080fd5b505afa158015610725573d6000803e3d6000fd5b505050506040513d602081101561073b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561078c57600080fd5b505af11580156107a0573d6000803e3d6000fd5b505050506040513d60208110156107b657600080fd5b5051610809576040805162461bcd60e51b815260206004820152601e60248201527f4572726f7220696e2072657472696576696e672062627020746f6b656e730000604482015290519081900360640190fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610843573d6000803e3d6000fd5b50565b60006001600160a01b03821661088d5760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b600154604080516370a0823160e01b81526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156108da57600080fd5b505afa1580156108ee573d6000803e3d6000fd5b505050506040513d602081101561090457600080fd5b505190505b919050565b6002546001600160a01b031681565b600f6020526000908152604090205481565b600b5460ff1615610987576040805162461bcd60e51b815260206004820152601960248201527f41646d696e205265737472696374656420574954484452415700000000000000604482015290519081900360640190fd5b336000908152600e602052604090205481118015906109a65750600081115b6109f7576040805162461bcd60e51b815260206004820181905260248201527f496e76616c696420746f6b656e20616d6f756e7420746f207769746864726177604482015290519081900360640190fd5b600454610a0490826112f1565b6004556000610a123361133c565b336000908152600e602052604090206004810180548301905554909150610a3990836112f1565b336000818152600e60209081526040808320948555600180860187905560055460028701556008546003909601959095559354845163a9059cbb60e01b815260048101949094526024840187905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b158015610ab857600080fd5b505af1158015610acc573d6000803e3d6000fd5b505050506040513d6020811015610ae257600080fd5b5051610b35576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e20756e2d7374616b696e6720746f6b656e73000000000000604482015290519081900360640190fd5b604080513381526020810184905281517f4c48d8823de8aa74e6ea4bed3a0c422e95a3d1e10f8f3e47dc7e2fe779be9514929181900390910190a15050565b336000908152600e602052604090206002015460055410610c63576000610b9a3361133c565b336000908152600e6020526040902060040154909150610bbb90829061144a565b336000818152600e602052604080822060040182905551929350909183156108fc0291849190818181858888f19350505050158015610bfe573d6000803e3d6000fd5b50604080513381526020810183905281517f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e929181900390910190a1336000908152600e60205260409020600181019190915560085460038201556005546002909101555b565b60006001600160a01b038216610cac5760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b6001600160a01b0382166000908152600e602090815260408083206003810154600754915460001982018652600f90945291842054600554929493610d0593610cff92610cf991906112f1565b906114a4565b906114fd565b6007546001600160a01b0386166000908152600e602090815260408083205460001988018452600f909252909120546005549394509192610d4a92610cf991906112f1565b81610d5157fe5b6001600160a01b0386166000908152600e60205260409020600401549190069190910190610d8090829061144a565b949350505050565b6001546001600160a01b031681565b6000546001600160a01b03163314610dae57600080fd5b600b805460ff1916911515919091179055565b6000546001600160a01b031681565b6003546001600160a01b031681565b60055481565b60006001600160a01b038216610e2c5760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b506001600160a01b03166000908152600e602052604090205490565b60045481565b600c6020526000908152604090205481565b60006001600160a01b038216610ea75760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b600254604080516370a0823160e01b81526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156108da57600080fd5b600a5481565b60095481565b60095460045410610f425760405162461bcd60e51b815260040180806020018281038252602781526020018061183b6027913960400191505060405180910390fd5b600154600354604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610fa157600080fd5b505af1158015610fb5573d6000803e3d6000fd5b505050506040513d6020811015610fcb57600080fd5b50516110085760405162461bcd60e51b81526004018080602001828103825260328152602001806117c66032913960400191505060405180910390fd5b60006110133361133c565b336000908152600e60205260409020600481018054830190555490915061103b90839061144a565b336000818152600e6020526040812092835560018301849055600554600284015560085460039093019290925561107190611161565b90508061108b57336000908152600c602052604090204290555b600454611098908461144a565b6004556110a4336110ff565b604080513381526020810185905281517f4031c63bb53dc5dfada7ef8d75bef8c44d0283658c1585fc74107ed5b75e97c8929181900390910190a1505050565b600a5434906110f3908261144a565b600a556108438161153f565b600061110a82611161565b90508061115d57600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0384161790555b5050565b6000805b600d548110156111ad57600d818154811061117c57fe5b6000918252602090912001546001600160a01b03848116911614156111a5576001915050610909565b600101611165565b50600092915050565b6000546001600160a01b031633146111cd57600080fd5b6001600160a01b0381166112125760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b0316331461127457600080fd5b6001600160a01b0381166112cf576040805162461bcd60e51b815260206004820152601c60248201527f45524332303a202053657474696e67207a65726f206164647265737300000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600061133383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b90505b92915050565b60006001600160a01b0382166113835760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b6001600160a01b0382166000908152600e602090815260408083206003810154600754915460001982018652600f909452918420546005549294936113d093610cff92610cf991906112f1565b6007546001600160a01b0386166000908152600e602090815260408083205460001988018452600f90925290912054600554939450919261141592610cf991906112f1565b8161141c57fe5b6001600160a01b03959095166000908152600e60205260409020600401805491909506019093555090919050565b600082820183811015611333576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826114b357506000611336565b828202828482816114c057fe5b04146113335760405162461bcd60e51b815260040180806020018281038252602181526020018061181a6021913960400191505060405180910390fd5b600061133383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c1565b600061156260065461155c600754856114a490919063ffffffff16565b9061144a565b9050600061157b600454836114fd90919063ffffffff16565b90506115926004548361172690919063ffffffff16565b6006556005546115a2908261144a565b600555600854600019016000908152600f60205260409020546115c5908261144a565b600880546000908152600f602090815260409182902093909355905481519081529182018590523382820152517fddf8c05dcee82ec75482e095e6c06768c848d5a7df7147686033433d141328b69181900360600190a1505060088054600101905550565b600081848411156116b95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561167e578181015183820152602001611666565b50505050905090810190601f1680156116ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836117105760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561167e578181015183820152602001611666565b50600083858161171c57fe5b0495945050505050565b600061133383836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250600081836117b25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561167e578181015183820152602001611666565b508284816117bc57fe5b0694935050505056fe546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d207573657220666f72206c6f636b696e6745524332303a2073656e64696e6720746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d415820414d4f554e5420524541434845442043414e4e4f54205354414b45204e4f204d4f5245a2646970667358221220edd951021ac77db37e7ac2fbbe16533e11e835793d426e9c9abd56c9e93d573764736f6c63430007050033
Deployed Bytecode
0x6080604052600436106101815760003560e01c8063997664d7116100d1578063ca3996711161008a578063e5c42fd111610064578063e5c42fd114610477578063ef037b90146104aa578063f2fde38b146104dd578063f3ec37c21461051057610181565b8063ca39967114610430578063ca84d59114610445578063cc16ab6e1461046f57610181565b8063997664d714610358578063a76267391461036d578063bf9befb1146103a0578063c3f344a8146103b5578063c5a7525a146103e8578063c5cc0f161461041b57610181565b80632c75bcda1161013e5780634e78e565116101185780634e78e565146102ed5780635c0aeb0e146103025780638da5cb5b1461032e57806398d624041461034357610181565b80632c75bcda1461027b5780634baf782e146102a55780634df9d6ba146102ba57610181565b80630f41e0d214610186578063146ca531146101af5780631c233879146101d657806323d308fa146101ed57806329272a631461022057806329652e8614610251575b600080fd5b34801561019257600080fd5b5061019b610543565b604080519115158252519081900360200190f35b3480156101bb57600080fd5b506101c461054c565b60408051918252519081900360200190f35b3480156101e257600080fd5b506101eb610552565b005b3480156101f957600080fd5b506101c46004803603602081101561021057600080fd5b50356001600160a01b0316610846565b34801561022c57600080fd5b5061023561090e565b604080516001600160a01b039092168252519081900360200190f35b34801561025d57600080fd5b506101c46004803603602081101561027457600080fd5b503561091d565b34801561028757600080fd5b506101eb6004803603602081101561029e57600080fd5b503561092f565b3480156102b157600080fd5b506101eb610b74565b3480156102c657600080fd5b506101c4600480360360208110156102dd57600080fd5b50356001600160a01b0316610c65565b3480156102f957600080fd5b50610235610d88565b34801561030e57600080fd5b506101eb6004803603602081101561032557600080fd5b50351515610d97565b34801561033a57600080fd5b50610235610dc1565b34801561034f57600080fd5b50610235610dd0565b34801561036457600080fd5b506101c4610ddf565b34801561037957600080fd5b506101c46004803603602081101561039057600080fd5b50356001600160a01b0316610de5565b3480156103ac57600080fd5b506101c4610e48565b3480156103c157600080fd5b506101c4600480360360208110156103d857600080fd5b50356001600160a01b0316610e4e565b3480156103f457600080fd5b506101c46004803603602081101561040b57600080fd5b50356001600160a01b0316610e60565b34801561042757600080fd5b506101c4610ef4565b34801561043c57600080fd5b506101c4610efa565b34801561045157600080fd5b506101eb6004803603602081101561046857600080fd5b5035610f00565b6101eb6110e4565b34801561048357600080fd5b506101eb6004803603602081101561049a57600080fd5b50356001600160a01b03166110ff565b3480156104b657600080fd5b5061019b600480360360208110156104cd57600080fd5b50356001600160a01b0316611161565b3480156104e957600080fd5b506101eb6004803603602081101561050057600080fd5b50356001600160a01b03166111b6565b34801561051c57600080fd5b506101eb6004803603602081101561053357600080fd5b50356001600160a01b031661125d565b600b5460ff1681565b60085481565b6000546001600160a01b0316331461056957600080fd5b600154600054604080516370a0823160e01b815230600482015290516001600160a01b039384169363a9059cbb93169184916370a0823191602480820192602092909190829003018186803b1580156105c157600080fd5b505afa1580156105d5573d6000803e3d6000fd5b505050506040513d60208110156105eb57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561063c57600080fd5b505af1158015610650573d6000803e3d6000fd5b505050506040513d602081101561066657600080fd5b50516106b9576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e2072657472696576696e6720746f6b656e73000000000000604482015290519081900360640190fd5b600254600054604080516370a0823160e01b815230600482015290516001600160a01b039384169363a9059cbb93169184916370a0823191602480820192602092909190829003018186803b15801561071157600080fd5b505afa158015610725573d6000803e3d6000fd5b505050506040513d602081101561073b57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561078c57600080fd5b505af11580156107a0573d6000803e3d6000fd5b505050506040513d60208110156107b657600080fd5b5051610809576040805162461bcd60e51b815260206004820152601e60248201527f4572726f7220696e2072657472696576696e672062627020746f6b656e730000604482015290519081900360640190fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610843573d6000803e3d6000fd5b50565b60006001600160a01b03821661088d5760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b600154604080516370a0823160e01b81526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156108da57600080fd5b505afa1580156108ee573d6000803e3d6000fd5b505050506040513d602081101561090457600080fd5b505190505b919050565b6002546001600160a01b031681565b600f6020526000908152604090205481565b600b5460ff1615610987576040805162461bcd60e51b815260206004820152601960248201527f41646d696e205265737472696374656420574954484452415700000000000000604482015290519081900360640190fd5b336000908152600e602052604090205481118015906109a65750600081115b6109f7576040805162461bcd60e51b815260206004820181905260248201527f496e76616c696420746f6b656e20616d6f756e7420746f207769746864726177604482015290519081900360640190fd5b600454610a0490826112f1565b6004556000610a123361133c565b336000908152600e602052604090206004810180548301905554909150610a3990836112f1565b336000818152600e60209081526040808320948555600180860187905560055460028701556008546003909601959095559354845163a9059cbb60e01b815260048101949094526024840187905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b158015610ab857600080fd5b505af1158015610acc573d6000803e3d6000fd5b505050506040513d6020811015610ae257600080fd5b5051610b35576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e20756e2d7374616b696e6720746f6b656e73000000000000604482015290519081900360640190fd5b604080513381526020810184905281517f4c48d8823de8aa74e6ea4bed3a0c422e95a3d1e10f8f3e47dc7e2fe779be9514929181900390910190a15050565b336000908152600e602052604090206002015460055410610c63576000610b9a3361133c565b336000908152600e6020526040902060040154909150610bbb90829061144a565b336000818152600e602052604080822060040182905551929350909183156108fc0291849190818181858888f19350505050158015610bfe573d6000803e3d6000fd5b50604080513381526020810183905281517f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e929181900390910190a1336000908152600e60205260409020600181019190915560085460038201556005546002909101555b565b60006001600160a01b038216610cac5760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b6001600160a01b0382166000908152600e602090815260408083206003810154600754915460001982018652600f90945291842054600554929493610d0593610cff92610cf991906112f1565b906114a4565b906114fd565b6007546001600160a01b0386166000908152600e602090815260408083205460001988018452600f909252909120546005549394509192610d4a92610cf991906112f1565b81610d5157fe5b6001600160a01b0386166000908152600e60205260409020600401549190069190910190610d8090829061144a565b949350505050565b6001546001600160a01b031681565b6000546001600160a01b03163314610dae57600080fd5b600b805460ff1916911515919091179055565b6000546001600160a01b031681565b6003546001600160a01b031681565b60055481565b60006001600160a01b038216610e2c5760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b506001600160a01b03166000908152600e602052604090205490565b60045481565b600c6020526000908152604090205481565b60006001600160a01b038216610ea75760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b600254604080516370a0823160e01b81526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156108da57600080fd5b600a5481565b60095481565b60095460045410610f425760405162461bcd60e51b815260040180806020018281038252602781526020018061183b6027913960400191505060405180910390fd5b600154600354604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610fa157600080fd5b505af1158015610fb5573d6000803e3d6000fd5b505050506040513d6020811015610fcb57600080fd5b50516110085760405162461bcd60e51b81526004018080602001828103825260328152602001806117c66032913960400191505060405180910390fd5b60006110133361133c565b336000908152600e60205260409020600481018054830190555490915061103b90839061144a565b336000818152600e6020526040812092835560018301849055600554600284015560085460039093019290925561107190611161565b90508061108b57336000908152600c602052604090204290555b600454611098908461144a565b6004556110a4336110ff565b604080513381526020810185905281517f4031c63bb53dc5dfada7ef8d75bef8c44d0283658c1585fc74107ed5b75e97c8929181900390910190a1505050565b600a5434906110f3908261144a565b600a556108438161153f565b600061110a82611161565b90508061115d57600d80546001810182556000919091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b0319166001600160a01b0384161790555b5050565b6000805b600d548110156111ad57600d818154811061117c57fe5b6000918252602090912001546001600160a01b03848116911614156111a5576001915050610909565b600101611165565b50600092915050565b6000546001600160a01b031633146111cd57600080fd5b6001600160a01b0381166112125760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6000546001600160a01b0316331461127457600080fd5b6001600160a01b0381166112cf576040805162461bcd60e51b815260206004820152601c60248201527f45524332303a202053657474696e67207a65726f206164647265737300000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600061133383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061162a565b90505b92915050565b60006001600160a01b0382166113835760405162461bcd60e51b81526004018080602001828103825260228152602001806117f86022913960400191505060405180910390fd5b6001600160a01b0382166000908152600e602090815260408083206003810154600754915460001982018652600f909452918420546005549294936113d093610cff92610cf991906112f1565b6007546001600160a01b0386166000908152600e602090815260408083205460001988018452600f90925290912054600554939450919261141592610cf991906112f1565b8161141c57fe5b6001600160a01b03959095166000908152600e60205260409020600401805491909506019093555090919050565b600082820183811015611333576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826114b357506000611336565b828202828482816114c057fe5b04146113335760405162461bcd60e51b815260040180806020018281038252602181526020018061181a6021913960400191505060405180910390fd5b600061133383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116c1565b600061156260065461155c600754856114a490919063ffffffff16565b9061144a565b9050600061157b600454836114fd90919063ffffffff16565b90506115926004548361172690919063ffffffff16565b6006556005546115a2908261144a565b600555600854600019016000908152600f60205260409020546115c5908261144a565b600880546000908152600f602090815260409182902093909355905481519081529182018590523382820152517fddf8c05dcee82ec75482e095e6c06768c848d5a7df7147686033433d141328b69181900360600190a1505060088054600101905550565b600081848411156116b95760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561167e578181015183820152602001611666565b50505050905090810190601f1680156116ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836117105760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561167e578181015183820152602001611666565b50600083858161171c57fe5b0495945050505050565b600061133383836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250600081836117b25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561167e578181015183820152602001611666565b508284816117bc57fe5b0694935050505056fe546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d207573657220666f72206c6f636b696e6745524332303a2073656e64696e6720746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d415820414d4f554e5420524541434845442043414e4e4f54205354414b45204e4f204d4f5245a2646970667358221220edd951021ac77db37e7ac2fbbe16533e11e835793d426e9c9abd56c9e93d573764736f6c63430007050033
Deployed Bytecode Sourcemap
7215:10620:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7986:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;7715:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17494:333;;;;;;;;;;;;;:::i;:::-;;17268:214;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17268:214:0;-1:-1:-1;;;;;17268:214:0;;:::i;7382:65::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;7382:65:0;;;;;;;;;;;;;;8537:40;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8537:40:0;;:::i;14884:927::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14884:927:0;;:::i;12630:644::-;;;;;;;;;;;;;:::i;14055:533::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14055:533:0;-1:-1:-1;;;;;14055:533:0;;:::i;7310:65::-;;;;;;;;;;;;;:::i;8924:91::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8924:91:0;;;;:::i;5299:28::-;;;;;;;;;;;;;:::i;7460:73::-;;;;;;;;;;;;;:::i;7583:33::-;;;;;;;;;;;;;:::i;16551:223::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16551:223:0;-1:-1:-1;;;;;16551:223:0;;:::i;7546:30::-;;;;;;;;;;;;;:::i;8062:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8062:40:0;-1:-1:-1;;;;;8062:40:0;;:::i;17048:208::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17048:208:0;-1:-1:-1;;;;;17048:208:0;;:::i;7857:24::-;;;;;;;;;;;;;:::i;7749:49::-;;;;;;;;;;;;;:::i;9973:1135::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9973:1135:0;;:::i;11418:164::-;;;:::i;9301:194::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9301:194:0;-1:-1:-1;;;;;9301:194:0;;:::i;9033:258::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9033:258:0;-1:-1:-1;;;;;9033:258:0;;:::i;5560:247::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5560:247:0;-1:-1:-1;;;;;5560:247:0;;:::i;9505:178::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9505:178:0;-1:-1:-1;;;;;9505:178:0;;:::i;7986:26::-;;;;;;:::o;7715:21::-;;;;:::o;17494:333::-;5526:5;;-1:-1:-1;;;;;5526:5:0;5512:10;:19;5504:28;;;;;;17559:5:::1;::::0;::::1;17575::::0;17582:38:::1;::::0;;-1:-1:-1;;;17582:38:0;;17614:4:::1;17582:38;::::0;::::1;::::0;;;-1:-1:-1;;;;;17559:5:0;;::::1;::::0;17552:22:::1;::::0;17575:5:::1;::::0;17559;;17582:23:::1;::::0;:38;;;;;::::1;::::0;;;;;;;;;17559:5;17582:38;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17582:38:0;17552:69:::1;::::0;;-1:-1:-1;;;;;;17552:69:0::1;::::0;;;;;;-1:-1:-1;;;;;17552:69:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;17582:38:::1;::::0;17552:69;;;;;;;-1:-1:-1;17552:69:0;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17552:69:0;17544:108:::1;;;::::0;;-1:-1:-1;;;17544:108:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17678:3;::::0;::::1;17692:5:::0;17699:36:::1;::::0;;-1:-1:-1;;;17699:36:0;;17729:4:::1;17699:36;::::0;::::1;::::0;;;-1:-1:-1;;;;;17678:3:0;;::::1;::::0;17671:20:::1;::::0;17692:5:::1;::::0;17678:3;;17699:21:::1;::::0;:36;;;;;::::1;::::0;;;;;;;;;17678:3;17699:36;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17699:36:0;17671:65:::1;::::0;;-1:-1:-1;;;;;;17671:65:0::1;::::0;;;;;;-1:-1:-1;;;;;17671:65:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;17699:36:::1;::::0;17671:65;;;;;;;-1:-1:-1;17671:65:0;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17671:65:0;17663:108:::1;;;::::0;;-1:-1:-1;;;17663:108:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17782:5;::::0;;:37:::1;::::0;-1:-1:-1;;;;;17782:5:0;;::::1;::::0;17797:21:::1;17782:37:::0;::::1;;;::::0;17797:21;;17782:37;:5;:37;17797:21;17782:5;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17494:333::o:0;17268:214::-;17330:20;-1:-1:-1;;;;;17370:18:0;;17362:65;;;;-1:-1:-1;;;17362:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17452:5;;17445:29;;;-1:-1:-1;;;17445:29:0;;-1:-1:-1;;;;;17445:29:0;;;;;;;;;17452:5;;;;;17445:23;;:29;;;;;;;;;;;;;;17452:5;17445:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17445:29:0;;-1:-1:-1;17268:214:0;;;;:::o;7382:65::-;;;-1:-1:-1;;;;;7382:65:0;;:::o;8537:40::-;;;;;;;;;;;;;:::o;14884:927::-;14946:7;;;;:16;14938:54;;;;;-1:-1:-1;;;14938:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15019:10;15011:19;;;;:7;:19;;;;;:32;:42;-1:-1:-1;15011:42:0;;;:56;;;15066:1;15057:6;:10;15011:56;15003:101;;;;;-1:-1:-1;;;15003:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15139:11;;:23;;15155:6;15139:15;:23::i;:::-;15125:11;:37;15288:13;15304:25;15318:10;15304:13;:25::i;:::-;15348:10;15340:19;;;;:7;:19;;;;;:29;;;:38;;;;;;15442:32;15288:41;;-1:-1:-1;15442:44:0;;15479:6;15442:36;:44::i;:::-;15415:10;15407:19;;;;:7;:19;;;;;;;;:79;;;15497:33;;;;:41;;;15588:14;;15549:37;;;:53;15642:5;;15613:25;;;;:34;;;;15693:5;;15686:42;;-1:-1:-1;;;15686:42:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15693:5:0;;;;15686:22;;:42;;;;;;;;;;;;;15693:5;15686:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15686:42:0;15678:81;;;;;-1:-1:-1;;;15678:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15775:28;;;15784:10;15775:28;;;;;;;;;;;;;;;;;;;;;14884:927;;:::o;12630:644::-;12710:10;12702:19;;;;:7;:19;;;;;:37;;;12684:14;;:55;12681:586;;12755:13;12771:25;12785:10;12771:13;:25::i;:::-;12847:10;12839:19;;;;:7;:19;;;;;:29;;;12755:41;;-1:-1:-1;12829:40:0;;12755:41;;12829:9;:40::i;:::-;12892:10;12916:1;12884:19;;;:7;:19;;;;;;:29;;:33;;;12942:26;12821:48;;-1:-1:-1;12892:10:0;;12942:26;;;;;12821:48;;12942:26;;12916:1;12942:26;12821:48;12892:10;12942:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12998:32:0;;;13012:10;12998:32;;;;;;;;;;;;;;;;;;;;;13063:10;13055:19;;;;:7;:19;;;;;:33;;;:41;;;;13151:5;;13123:25;;;:33;13231:14;;13191:37;;;;:54;12681:586;12630:644::o;14055:533::-;14117:22;-1:-1:-1;;;;;14160:20:0;;14152:67;;;;-1:-1:-1;;;14152:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14251:15:0;;14231:17;14251:15;;;:7;:15;;;;;;;;:21;;;;14400:7;;14365:28;;-1:-1:-1;;14341:16:0;;14333:25;;:7;:25;;;;;;;14314:14;;14251:21;;14231:17;14312:96;;14313:81;;14314:45;;:14;:18;:45::i;:::-;14313:51;;:81::i;:::-;14312:87;;:96::i;:::-;14515:7;;-1:-1:-1;;;;;14482:15:0;;;;;;:7;:15;;;;;;;;:28;-1:-1:-1;;14458:16:0;;14450:25;;:7;:25;;;;;;;14431:14;;14294:114;;-1:-1:-1;14515:7:0;;14430:81;;14431:45;;:14;:18;:45::i;14430:81::-;14429:93;;;;;-1:-1:-1;;;;;14553:15:0;;;;;;:7;:15;;;;;:25;;;14429:93;;;14419:103;;;;;14542:37;;14419:103;;14542:10;:37::i;:::-;14534:46;14055:533;-1:-1:-1;;;;14055:533:0:o;7310:65::-;;;-1:-1:-1;;;;;7310:65:0;;:::o;8924:91::-;5526:5;;-1:-1:-1;;;;;5526:5:0;5512:10;:19;5504:28;;;;;;8989:7:::1;:18:::0;;-1:-1:-1;;8989:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8924:91::o;5299:28::-;;;-1:-1:-1;;;;;5299:28:0;;:::o;7460:73::-;;;-1:-1:-1;;;;;7460:73:0;;:::o;7583:33::-;;;;:::o;16551:223::-;16612:19;-1:-1:-1;;;;;16651:20:0;;16643:67;;;;-1:-1:-1;;;16643:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;16738:15:0;;;;;:7;:15;;;;;:28;;16551:223::o;7546:30::-;;;;:::o;8062:40::-;;;;;;;;;;;;;:::o;17048:208::-;17108:18;-1:-1:-1;;;;;17146:18:0;;17138:65;;;;-1:-1:-1;;;17138:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17228:3;;17221:27;;;-1:-1:-1;;;17221:27:0;;-1:-1:-1;;;;;17221:27:0;;;;;;;;;17228:3;;;;;17221:21;;:27;;;;;;;;;;;;;;17228:3;17221:27;;;;;;;;;;7857:24;;;;:::o;7749:49::-;;;;:::o;9973:1135::-;10046:10;;10032:11;;:24;10024:76;;;;-1:-1:-1;;;10024:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10126:5;;10166:13;;10119:70;;;-1:-1:-1;;;10119:70:0;;10146:10;10119:70;;;;-1:-1:-1;;;;;10166:13:0;;;10119:70;;;;;;;;;;;;10126:5;;;;;10119:26;;:70;;;;;;;;;;;;;;10126:5;;10119:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10119:70:0;10111:133;;;;-1:-1:-1;;;10111:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10381:13;10397:25;10411:10;10397:13;:25::i;:::-;10445:10;10437:19;;;;:7;:19;;;;;:29;;;:38;;;;;;10550:32;10381:41;;-1:-1:-1;10539:44:0;;:6;;:10;:44::i;:::-;10512:10;10504:19;;;;:7;:19;;;;;:79;;;10598:33;;;:41;;;10693:14;;10654:37;;;:53;10751:5;;10722:25;;;;:34;;;;10809:25;;:13;:25::i;:::-;10785:49;;10854:14;10850:59;;10879:10;10870:20;;;;:8;:20;;;;;10894:15;10870:39;;10850:59;10952:11;;:23;;10968:6;10952:15;:23::i;:::-;10938:11;:37;11004:26;11019:10;11004:14;:26::i;:::-;11064;;;11071:10;11064:26;;;;;;;;;;;;;;;;;;;;;9973:1135;;;:::o;11418:164::-;11514:7;;11484:9;;11514:20;;11484:9;11514:11;:20::i;:::-;11504:7;:30;11555:19;11566:7;11555:10;:19::i;9301:194::-;9377:19;9400:27;9414:12;9400:13;:27::i;:::-;9376:51;;9441:14;9437:51;;9457:12;:31;;;;;;;-1:-1:-1;9457:31:0;;;;;;;;-1:-1:-1;;;;;;9457:31:0;-1:-1:-1;;;;;9457:31:0;;;;;9437:51;9301:194;;:::o;9033:258::-;9118:4;;9138:123;9162:12;:19;9158:23;;9138:123;;;9220:12;9233:1;9220:15;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9208:27:0;;;9220:15;;9208:27;9204:46;;;9245:4;9237:13;;;;;9204:46;9188:1;9183:6;9138:123;;;-1:-1:-1;9278:5:0;;9033:258;-1:-1:-1;;9033:258:0:o;5560:247::-;5526:5;;-1:-1:-1;;;;;5526:5:0;5512:10;:19;5504:28;;;;;;-1:-1:-1;;;;;5650:23:0;::::1;5642:70;;;;-1:-1:-1::0;;;5642:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5723:5;:17:::0;;-1:-1:-1;;;;;;5723:17:0::1;-1:-1:-1::0;;;;;5723:17:0;::::1;::::0;;::::1;::::0;;5756:43:::1;::::0;5723:17;;5777:10:::1;::::0;5756:43:::1;::::0;5723:5;5756:43:::1;5560:247:::0;:::o;9505:178::-;5526:5;;-1:-1:-1;;;;;5526:5:0;5512:10;:19;5504:28;;;;;;-1:-1:-1;;;;;9585:22:0;::::1;9577:63;;;::::0;;-1:-1:-1;;;9577:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;9651:13;:24:::0;;-1:-1:-1;;;;;;9651:24:0::1;-1:-1:-1::0;;;;;9651:24:0;;;::::1;::::0;;;::::1;::::0;;9505:178::o;982:136::-;1040:7;1067:43;1071:1;1074;1067:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1060:50;;982:136;;;;;:::o;13547:496::-;13603:7;-1:-1:-1;;;;;13631:20:0;;13623:67;;;;-1:-1:-1;;;13623:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13731:15:0;;13711:17;13731:15;;;:7;:15;;;;;;;;:21;;;;13869:7;;13834:28;;-1:-1:-1;;13810:16:0;;13802:25;;:7;:25;;;;;;;13783:14;;13731:21;;13711:17;13781:96;;13782:81;;13783:45;;:14;:18;:45::i;13781:96::-;14003:7;;-1:-1:-1;;;;;13970:15:0;;;;;;:7;:15;;;;;;;;:28;-1:-1:-1;;13946:16:0;;13938:25;;:7;:25;;;;;;;13919:14;;13763:114;;-1:-1:-1;14003:7:0;;13918:81;;13919:45;;:14;:18;:45::i;13918:81::-;13917:93;;;;;-1:-1:-1;;;;;13888:15:0;;;;;;;;:7;:15;;;;;:25;;:122;;13917:93;;;;13888:122;;;;-1:-1:-1;14029:6:0;;13547:496;-1:-1:-1;13547:496:0:o;518:181::-;576:7;608:5;;;632:6;;;;624:46;;;;;-1:-1:-1;;;624:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1872:471;1930:7;2175:6;2171:47;;-1:-1:-1;2205:1:0;2198:8;;2171:47;2242:5;;;2246:1;2242;:5;:1;2266:5;;;;;:10;2258:56;;;;-1:-1:-1;;;2258:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:132;2877:7;2904:39;2908:1;2911;2904:39;;;;;;;;;;;;;;;;;:3;:39::i;11801:587::-;11979:17;11999:42;12025:15;;12000:19;12011:7;;12000:6;:10;;:19;;;;:::i;:::-;11999:25;;:42::i;:::-;11979:62;;12053:24;12080:26;12094:11;;12080:9;:13;;:26;;;;:::i;:::-;12053:53;;12135:26;12149:11;;12135:9;:13;;:26;;;;:::i;:::-;12117:15;:44;12199:14;;:36;;12218:16;12199:18;:36::i;:::-;12182:14;:53;12271:5;;-1:-1:-1;;12271:9:0;12263:18;;;;:7;:18;;;;;;:40;;12286:16;12263:22;:40::i;:::-;12254:5;;;12246:14;;;;:7;:14;;;;;;;;;:57;;;;12336:5;;12329:33;;;;;;;;;;;12351:10;12329:33;;;;;;;;;;;;;;-1:-1:-1;;12373:5:0;:7;;;;;;-1:-1:-1;11801:587:0:o;1421:192::-;1507:7;1543:12;1535:6;;;;1527:29;;;;-1:-1:-1;;;1527:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1579:5:0;;;1421:192::o;3447:278::-;3533:7;3568:12;3561:5;3553:28;;;;-1:-1:-1;;;3553:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3592:9;3608:1;3604;:5;;;;;;;3447:278;-1:-1:-1;;;;;3447:278:0:o;4190:130::-;4248:7;4275:37;4279:1;4282;4275:37;;;;;;;;;;;;;;;;;4891:7;4927:12;4919:6;4911:29;;;;-1:-1:-1;;;4911:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4962:1;4958;:5;;;;;;;4805:166;-1:-1:-1;;;;4805:166:0:o
Swarm Source
ipfs://edd951021ac77db37e7ac2fbbe16533e11e835793d426e9c9abd56c9e93d5737
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.