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 115 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Unstake | 11831626 | 1477 days ago | IN | 0 ETH | 0.01255292 | ||||
Unstake | 11830297 | 1477 days ago | IN | 0 ETH | 0.00732616 | ||||
Unstake | 11830290 | 1477 days ago | IN | 0 ETH | 0.01874679 | ||||
Unstake | 11830285 | 1477 days ago | IN | 0 ETH | 0.01536081 | ||||
Set Block Reward | 11829953 | 1477 days ago | IN | 0 ETH | 0.0057498 | ||||
Unstake | 11828527 | 1477 days ago | IN | 0 ETH | 0.01874679 | ||||
Unstake | 11828490 | 1477 days ago | IN | 0 ETH | 0.01333417 | ||||
Withdraw Reward | 11828482 | 1477 days ago | IN | 0 ETH | 0.00887506 | ||||
Unstake | 11828413 | 1477 days ago | IN | 0 ETH | 0.01577373 | ||||
Withdraw Reward | 11828131 | 1477 days ago | IN | 0 ETH | 0.00973586 | ||||
Unstake | 11827877 | 1478 days ago | IN | 0 ETH | 0.01552598 | ||||
Withdraw Reward | 11827871 | 1478 days ago | IN | 0 ETH | 0.01297718 | ||||
Unstake | 11827544 | 1478 days ago | IN | 0 ETH | 0.01684734 | ||||
Unstake | 11826627 | 1478 days ago | IN | 0 ETH | 0.01580676 | ||||
Unstake | 11826371 | 1478 days ago | IN | 0 ETH | 0.01519564 | ||||
Withdraw Reward | 11826362 | 1478 days ago | IN | 0 ETH | 0.01062633 | ||||
Unstake | 11826326 | 1478 days ago | IN | 0 ETH | 0.00982761 | ||||
Withdraw Reward | 11826324 | 1478 days ago | IN | 0 ETH | 0.00908284 | ||||
Unstake | 11826319 | 1478 days ago | IN | 0 ETH | 0.00949727 | ||||
Unstake | 11825951 | 1478 days ago | IN | 0 ETH | 0.01754931 | ||||
Unstake | 11825814 | 1478 days ago | IN | 0 ETH | 0.01635 | ||||
Unstake | 11825809 | 1478 days ago | IN | 0 ETH | 0.013125 | ||||
Unstake | 11825371 | 1478 days ago | IN | 0 ETH | 0.01395686 | ||||
Withdraw Reward | 11825365 | 1478 days ago | IN | 0 ETH | 0.01193236 | ||||
Withdraw Reward | 11825327 | 1478 days ago | IN | 0 ETH | 0.00653015 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
StakePool
Compiler Version
v0.6.0+commit.26b70077
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-26 */ /** *Submitted for verification at Etherscan.io on 2020-11-17 */ // SPDX-License-Identifier: MIT pragma solidity 0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ 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; } } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Whitelist is Ownable { mapping(address => bool) whitelist; event AddedToWhitelist(address indexed account); event RemovedFromWhitelist(address indexed account); modifier onlyWhitelisted() { require(isWhitelisted(msg.sender)); _; } function add(address _address) public onlyOwner { whitelist[_address] = true; emit AddedToWhitelist(_address); } function remove(address _address) public onlyOwner { whitelist[_address] = false; emit RemovedFromWhitelist(_address); } function isWhitelisted(address _address) public view returns(bool) { return whitelist[_address]; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Capped { function cap() external view returns (uint256); } interface IMintable { function mint(address account, uint256 amount) external returns (bool); } contract StakePool is Whitelist { using SafeMath for uint256; event Staked( address token, address user, uint256 amountToken ); event Unstaked( address user, address token, uint256 amountToken ); event RewardWithdrawn( address user, uint256 amount ); uint256 private constant rewardMultiplier = 1e17; struct Stake { uint256 stakeAmount; // lp token address to token amount uint256 totalStakedAmountByUser; // sum of all lp tokens uint256 lastInteractionBlockNumber; // block number at last withdraw uint256 stakingPeriodEndTime; } mapping(address => Stake) public userToStakes; // user to stake uint256 public totalStakedAmount; // sum of stakes by all of the users across all lp address public stakeToken; address public rewardToken; uint256 public blockMiningTime = 15; uint256 public blockReward = 1; uint256 public stakingDuration = 60; uint256 public minimumAmount = 10000000000; uint256 public maximumAmount = 10000000000000000000000000; constructor(address sToken, address rToken) public { stakeToken = sToken; rewardToken = rToken; } fallback() external payable {} receive() external payable {} function transferETH(address payable recipient) external onlyOwner { recipient.transfer(address(this).balance); } function setMinimumAmount(uint256 amount) external onlyOwner { require( amount != 0, "minimum amount cannot be zero" ); minimumAmount = amount; } function setMaximumAmount(uint256 amount) external onlyOwner { require( amount != 0, "maximum amount cannot be zero" ); maximumAmount = amount; } function setBlockReward(uint256 rewardAmount) external onlyOwner { require( rewardAmount != 0, "new reward cannot be zero" ); blockReward = rewardAmount; } function setStakingDuration(uint256 duration) external onlyOwner { require( duration != 0, "new reward cannot be zero" ); stakingDuration = duration; } function changeBlockMiningTime(uint256 newTime) external onlyOwner { require( newTime != 0, "new time cannot be zero" ); blockMiningTime = newTime; } function stake( uint256 amount ) external onlyWhitelisted { require( amount != 0, // must send ether "amount should be greater than 0" ); require( amount >= minimumAmount, "amount too low" ); require( amount <= maximumAmount, "amount too high" ); require( IERC20(stakeToken).transferFrom(_msgSender(), address(this), amount), // transfer tokens back to the contract "#transferFrom failed" ); _withdrawReward(_msgSender()); // withdraw any existing rewards totalStakedAmount = totalStakedAmount.add(amount); // add stake amount to sum of all stakes across al lps Stake storage currentStake = userToStakes[_msgSender()]; currentStake.stakingPeriodEndTime = block.timestamp.add( stakingDuration ); // set the staking period end time currentStake.stakeAmount = currentStake.stakeAmount // add stake amount by lp .add(amount); currentStake.totalStakedAmountByUser = currentStake.totalStakedAmountByUser // add stake amount to sum of all stakes by user .add(amount); emit Staked( stakeToken, _msgSender(), amount ); // broadcast event } function unstake() external { _withdrawReward(_msgSender()); Stake storage currentStake = userToStakes[_msgSender()]; uint256 stakeAmountToDeduct; bool executeUnstaking; uint256 stakeAmount = currentStake.stakeAmount; if (currentStake.stakeAmount == 0) { revert("no stake"); } if (currentStake.stakingPeriodEndTime <= block.timestamp) { executeUnstaking = true; } require( executeUnstaking, "cannot unstake" ); currentStake.stakeAmount = 0; currentStake.totalStakedAmountByUser = currentStake.totalStakedAmountByUser .sub(stakeAmount); stakeAmountToDeduct = stakeAmountToDeduct.add(stakeAmount); require( IERC20(stakeToken).transfer(_msgSender(), stakeAmount), // transfer staked tokens back to the user "#transferFrom failed" ); emit Unstaked(stakeToken, _msgSender(), stakeAmount); totalStakedAmount = totalStakedAmount.sub(stakeAmountToDeduct); // subtract unstaked amount from total staked amount } function withdrawReward() external { _withdrawReward(_msgSender()); } function getBlockCountSinceLastIntreraction(address user) public view returns(uint256) { uint256 lastInteractionBlockNum = userToStakes[user].lastInteractionBlockNumber; if (lastInteractionBlockNum == 0) { return 0; } return block.number.sub(lastInteractionBlockNum); } function getTotalStakeAmountByUser(address user) public view returns(uint256) { return userToStakes[user].totalStakedAmountByUser; } function getStakeAmountByUser( address user ) public view returns(uint256) { return userToStakes[user].stakeAmount; } function getRewardByAddress( address user ) public view returns(uint256) { if (totalStakedAmount == 0) { return 0; } Stake storage currentStake = userToStakes[user]; uint256 blockCount = block.number .sub(currentStake.lastInteractionBlockNumber); uint256 totalReward = blockCount.mul(blockReward); return totalReward .mul(currentStake.totalStakedAmountByUser) .div(totalStakedAmount); } function _withdrawReward(address user) internal { uint256 rewardAmount = getRewardByAddress(user); uint256 totalSupply = IERC20(rewardToken).totalSupply(); uint256 cap = IERC20Capped(rewardToken).cap(); if (rewardAmount != 0) { if (totalSupply.add(rewardAmount) <= cap) { require( IMintable(rewardToken).mint(user, rewardAmount), // reward user with newly minted tokens "#mint failed" ); emit RewardWithdrawn(user, rewardAmount); } } userToStakes[user].lastInteractionBlockNumber = block.number; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"sToken","type":"address"},{"internalType":"address","name":"rToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"AddedToWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"RemovedFromWhitelist","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountToken","type":"uint256"}],"name":"Unstaked","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"blockMiningTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTime","type":"uint256"}],"name":"changeBlockMiningTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getBlockCountSinceLastIntreraction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getRewardByAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getStakeAmountByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTotalStakeAmountByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"remove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rewardAmount","type":"uint256"}],"name":"setBlockReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaximumAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinimumAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"duration","type":"uint256"}],"name":"setStakingDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"}],"name":"transferETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userToStakes","outputs":[{"internalType":"uint256","name":"stakeAmount","type":"uint256"},{"internalType":"uint256","name":"totalStakedAmountByUser","type":"uint256"},{"internalType":"uint256","name":"lastInteractionBlockNumber","type":"uint256"},{"internalType":"uint256","name":"stakingPeriodEndTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600f6006556001600755603c6008556402540be4006009556a084595161401484a000000600a5534801561003757600080fd5b50604051611a05380380611a058339818101604052604081101561005a57600080fd5b50805160209091015160006100766001600160e01b036100f116565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b039384166001600160a01b031991821617909155600580549290931691161790556100f5565b3390565b611901806101046000396000f3fe6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063d39c1fef1161008a578063f2fde38b11610064578063f2fde38b1461059b578063f7c618c1146105ce578063f7c817da146105e3578063ff86bd231461060d576101c2565b8063d39c1fef146104e5578063d50f6bf01461053e578063eeb4a9c814610571576101c2565b8063abdb2ac0116100c6578063abdb2ac01461045e578063bb0c829814610488578063be7768e91461049d578063c885bc58146104d0576101c2565b80638da5cb5b1461040a578063a694fc3a1461041f578063a9bcea6114610449576101c2565b80633da850b6116101595780636707d302116101335780636707d302146103835780636a8ca691146103b6578063715018a6146103e05780638005a7de146103f5576101c2565b80633da850b61461030a57806351ed6a301461033d578063567e98f91461036e576101c2565b806329092d0e1161019557806329092d0e146102485780632def66201461027b57806334086c95146102905780633af32abf146102c3576101c2565b80630a3b0a4f146101c45780630ac168a1146101f75780631a18e7071461021e576101c2565b366101c257005b005b3480156101d057600080fd5b506101c2600480360360208110156101e757600080fd5b50356001600160a01b0316610622565b34801561020357600080fd5b5061020c6106c9565b60408051918252519081900360200190f35b34801561022a57600080fd5b506101c26004803603602081101561024157600080fd5b50356106cf565b34801561025457600080fd5b506101c26004803603602081101561026b57600080fd5b50356001600160a01b031661077a565b34801561028757600080fd5b506101c261081b565b34801561029c57600080fd5b5061020c600480360360208110156102b357600080fd5b50356001600160a01b0316610a76565b3480156102cf57600080fd5b506102f6600480360360208110156102e657600080fd5b50356001600160a01b0316610aba565b604080519115158252519081900360200190f35b34801561031657600080fd5b5061020c6004803603602081101561032d57600080fd5b50356001600160a01b0316610ad8565b34801561034957600080fd5b50610352610b6c565b604080516001600160a01b039092168252519081900360200190f35b34801561037a57600080fd5b5061020c610b7b565b34801561038f57600080fd5b5061020c600480360360208110156103a657600080fd5b50356001600160a01b0316610b81565b3480156103c257600080fd5b506101c2600480360360208110156103d957600080fd5b5035610b9c565b3480156103ec57600080fd5b506101c2610c47565b34801561040157600080fd5b5061020c610ce9565b34801561041657600080fd5b50610352610cef565b34801561042b57600080fd5b506101c26004803603602081101561044257600080fd5b5035610cfe565b34801561045557600080fd5b5061020c610fd1565b34801561046a57600080fd5b506101c26004803603602081101561048157600080fd5b5035610fd7565b34801561049457600080fd5b5061020c611086565b3480156104a957600080fd5b5061020c600480360360208110156104c057600080fd5b50356001600160a01b031661108c565b3480156104dc57600080fd5b506101c26110aa565b3480156104f157600080fd5b506105186004803603602081101561050857600080fd5b50356001600160a01b03166110b7565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561054a57600080fd5b506101c26004803603602081101561056157600080fd5b50356001600160a01b03166110e0565b34801561057d57600080fd5b506101c26004803603602081101561059457600080fd5b5035611171565b3480156105a757600080fd5b506101c2600480360360208110156105be57600080fd5b50356001600160a01b0316611220565b3480156105da57600080fd5b50610352611318565b3480156105ef57600080fd5b506101c26004803603602081101561060657600080fd5b5035611327565b34801561061957600080fd5b5061020c6113d6565b61062a6113dc565b6000546001600160a01b0390811691161461067a576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517fa850ae9193f515cbae8d35e8925bd2be26627fc91bce650b8652ed254e9cab039190a250565b60075481565b6106d76113dc565b6000546001600160a01b03908116911614610727576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b80610775576040805162461bcd60e51b81526020600482015260196024820152786e6577207265776172642063616e6e6f74206265207a65726f60381b604482015290519081900360640190fd5b600755565b6107826113dc565b6000546001600160a01b039081169116146107d2576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df7579190a250565b61082b6108266113dc565b6113e0565b6000600260006108396113dc565b6001600160a01b03168152602081019190915260400160009081208054909250819080610898576040805162461bcd60e51b81526020600482015260086024820152676e6f207374616b6560c01b604482015290519081900360640190fd5b428460030154116108a857600191505b816108eb576040805162461bcd60e51b815260206004820152600e60248201526d63616e6e6f7420756e7374616b6560901b604482015290519081900360640190fd5b600084556001840154610904908263ffffffff61162816565b6001850155610919838263ffffffff61167316565b6004549093506001600160a01b031663a9059cbb6109356113dc565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561098557600080fd5b505af1158015610999573d6000803e3d6000fd5b505050506040513d60208110156109af57600080fd5b50516109f9576040805162461bcd60e51b815260206004820152601460248201527308dd1c985b9cd9995c919c9bdb4819985a5b195960621b604482015290519081900360640190fd5b6004547fd8654fcc8cf5b36d30b3f5e4688fc78118e6d68de60b9994e09902268b57c3e3906001600160a01b0316610a2f6113dc565b604080516001600160a01b03938416815291909216602082015280820184905290519081900360600190a1600354610a6d908463ffffffff61162816565b60035550505050565b6001600160a01b03811660009081526002602081905260408220015480610aa1576000915050610ab5565b610ab1438263ffffffff61162816565b9150505b919050565b6001600160a01b031660009081526001602052604090205460ff1690565b600060035460001415610aed57506000610ab5565b6001600160a01b0382166000908152600260208190526040822090810154909190610b1f90439063ffffffff61162816565b90506000610b38600754836116cd90919063ffffffff16565b9050610b63600354610b578560010154846116cd90919063ffffffff16565b9063ffffffff61172616565b95945050505050565b6004546001600160a01b031681565b60035481565b6001600160a01b031660009081526002602052604090205490565b610ba46113dc565b6000546001600160a01b03908116911614610bf4576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b80610c42576040805162461bcd60e51b81526020600482015260196024820152786e6577207265776172642063616e6e6f74206265207a65726f60381b604482015290519081900360640190fd5b600855565b610c4f6113dc565b6000546001600160a01b03908116911614610c9f576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60085481565b6000546001600160a01b031690565b610d0733610aba565b610d1057600080fd5b80610d62576040805162461bcd60e51b815260206004820152601f60248201527f616d6f756e742073686f756c642062652067726561746572207468616e203000604482015290519081900360640190fd5b600954811015610daa576040805162461bcd60e51b815260206004820152600e60248201526d616d6f756e7420746f6f206c6f7760901b604482015290519081900360640190fd5b600a54811115610df3576040805162461bcd60e51b815260206004820152600f60248201526e0c2dadeeadce840e8dede40d0d2ced608b1b604482015290519081900360640190fd5b6004546001600160a01b03166323b872dd610e0c6113dc565b604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152306024830152604482018590525160648083019260209291908290030181600087803b158015610e6057600080fd5b505af1158015610e74573d6000803e3d6000fd5b505050506040513d6020811015610e8a57600080fd5b5051610ed4576040805162461bcd60e51b815260206004820152601460248201527308dd1c985b9cd9995c919c9bdb4819985a5b195960621b604482015290519081900360640190fd5b610edf6108266113dc565b600354610ef2908263ffffffff61167316565b6003556000600281610f026113dc565b6001600160a01b03166001600160a01b031681526020019081526020016000209050610f396008544261167390919063ffffffff16565b60038201558054610f50908363ffffffff61167316565b81556001810154610f67908363ffffffff61167316565b60018201556004547f5dac0c1b1112564a045ba943c9d50270893e8e826c49be8e7073adc713ab7bd7906001600160a01b0316610fa26113dc565b604080516001600160a01b03938416815291909216602082015280820185905290519081900360600190a15050565b600a5481565b610fdf6113dc565b6000546001600160a01b0390811691161461102f576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b80611081576040805162461bcd60e51b815260206004820152601760248201527f6e65772074696d652063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b600655565b60095481565b6001600160a01b031660009081526002602052604090206001015490565b6110b56108266113dc565b565b600260208190526000918252604090912080546001820154928201546003909201549092919084565b6110e86113dc565b6000546001600160a01b03908116911614611138576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b6040516001600160a01b038216904780156108fc02916000818181858888f1935050505015801561116d573d6000803e3d6000fd5b5050565b6111796113dc565b6000546001600160a01b039081169116146111c9576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b8061121b576040805162461bcd60e51b815260206004820152601d60248201527f6d696e696d756d20616d6f756e742063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600955565b6112286113dc565b6000546001600160a01b03908116911614611278576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b6001600160a01b0381166112bd5760405162461bcd60e51b81526004018080602001828103825260268152602001806118656026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031681565b61132f6113dc565b6000546001600160a01b0390811691161461137f576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b806113d1576040805162461bcd60e51b815260206004820152601d60248201527f6d6178696d756d20616d6f756e742063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600a55565b60065481565b3390565b60006113eb82610ad8565b90506000600560009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561143d57600080fd5b505afa158015611451573d6000803e3d6000fd5b505050506040513d602081101561146757600080fd5b505160055460408051631aa93a7560e11b815290519293506000926001600160a01b039092169163355274ea91600480820192602092909190829003018186803b1580156114b457600080fd5b505afa1580156114c8573d6000803e3d6000fd5b505050506040513d60208110156114de57600080fd5b50519050821561160557806114f9838563ffffffff61167316565b1161160557600554604080516340c10f1960e01b81526001600160a01b03878116600483015260248201879052915191909216916340c10f199160448083019260209291908290030181600087803b15801561155457600080fd5b505af1158015611568573d6000803e3d6000fd5b505050506040513d602081101561157e57600080fd5b50516115c0576040805162461bcd60e51b815260206004820152600c60248201526b08db5a5b9d0819985a5b195960a21b604482015290519081900360640190fd5b604080516001600160a01b03861681526020810185905281517f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e1337929181900390910190a15b5050506001600160a01b0316600090815260026020819052604090912043910155565b600061166a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611768565b90505b92915050565b60008282018381101561166a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826116dc5750600061166d565b828202828482816116e957fe5b041461166a5760405162461bcd60e51b815260040180806020018281038252602181526020018061188b6021913960400191505060405180910390fd5b600061166a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117ff565b600081848411156117f75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117bc5781810151838201526020016117a4565b50505050905090810190601f1680156117e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000818361184e5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156117bc5781810151838201526020016117a4565b50600083858161185a57fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220c6f03cb9de6e2083916ba46ae528bf644a4267b3e15c0b9e4dd4fcfead671d3864736f6c634300060000330000000000000000000000004e8db204e2c284a03c28c5162a11f25327fd50990000000000000000000000007c34eafdbfcc04999e568015c2b6cec89b1a550d
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80638da5cb5b116100ec578063d39c1fef1161008a578063f2fde38b11610064578063f2fde38b1461059b578063f7c618c1146105ce578063f7c817da146105e3578063ff86bd231461060d576101c2565b8063d39c1fef146104e5578063d50f6bf01461053e578063eeb4a9c814610571576101c2565b8063abdb2ac0116100c6578063abdb2ac01461045e578063bb0c829814610488578063be7768e91461049d578063c885bc58146104d0576101c2565b80638da5cb5b1461040a578063a694fc3a1461041f578063a9bcea6114610449576101c2565b80633da850b6116101595780636707d302116101335780636707d302146103835780636a8ca691146103b6578063715018a6146103e05780638005a7de146103f5576101c2565b80633da850b61461030a57806351ed6a301461033d578063567e98f91461036e576101c2565b806329092d0e1161019557806329092d0e146102485780632def66201461027b57806334086c95146102905780633af32abf146102c3576101c2565b80630a3b0a4f146101c45780630ac168a1146101f75780631a18e7071461021e576101c2565b366101c257005b005b3480156101d057600080fd5b506101c2600480360360208110156101e757600080fd5b50356001600160a01b0316610622565b34801561020357600080fd5b5061020c6106c9565b60408051918252519081900360200190f35b34801561022a57600080fd5b506101c26004803603602081101561024157600080fd5b50356106cf565b34801561025457600080fd5b506101c26004803603602081101561026b57600080fd5b50356001600160a01b031661077a565b34801561028757600080fd5b506101c261081b565b34801561029c57600080fd5b5061020c600480360360208110156102b357600080fd5b50356001600160a01b0316610a76565b3480156102cf57600080fd5b506102f6600480360360208110156102e657600080fd5b50356001600160a01b0316610aba565b604080519115158252519081900360200190f35b34801561031657600080fd5b5061020c6004803603602081101561032d57600080fd5b50356001600160a01b0316610ad8565b34801561034957600080fd5b50610352610b6c565b604080516001600160a01b039092168252519081900360200190f35b34801561037a57600080fd5b5061020c610b7b565b34801561038f57600080fd5b5061020c600480360360208110156103a657600080fd5b50356001600160a01b0316610b81565b3480156103c257600080fd5b506101c2600480360360208110156103d957600080fd5b5035610b9c565b3480156103ec57600080fd5b506101c2610c47565b34801561040157600080fd5b5061020c610ce9565b34801561041657600080fd5b50610352610cef565b34801561042b57600080fd5b506101c26004803603602081101561044257600080fd5b5035610cfe565b34801561045557600080fd5b5061020c610fd1565b34801561046a57600080fd5b506101c26004803603602081101561048157600080fd5b5035610fd7565b34801561049457600080fd5b5061020c611086565b3480156104a957600080fd5b5061020c600480360360208110156104c057600080fd5b50356001600160a01b031661108c565b3480156104dc57600080fd5b506101c26110aa565b3480156104f157600080fd5b506105186004803603602081101561050857600080fd5b50356001600160a01b03166110b7565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561054a57600080fd5b506101c26004803603602081101561056157600080fd5b50356001600160a01b03166110e0565b34801561057d57600080fd5b506101c26004803603602081101561059457600080fd5b5035611171565b3480156105a757600080fd5b506101c2600480360360208110156105be57600080fd5b50356001600160a01b0316611220565b3480156105da57600080fd5b50610352611318565b3480156105ef57600080fd5b506101c26004803603602081101561060657600080fd5b5035611327565b34801561061957600080fd5b5061020c6113d6565b61062a6113dc565b6000546001600160a01b0390811691161461067a576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b6001600160a01b0381166000818152600160208190526040808320805460ff1916909217909155517fa850ae9193f515cbae8d35e8925bd2be26627fc91bce650b8652ed254e9cab039190a250565b60075481565b6106d76113dc565b6000546001600160a01b03908116911614610727576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b80610775576040805162461bcd60e51b81526020600482015260196024820152786e6577207265776172642063616e6e6f74206265207a65726f60381b604482015290519081900360640190fd5b600755565b6107826113dc565b6000546001600160a01b039081169116146107d2576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b6001600160a01b038116600081815260016020526040808220805460ff19169055517fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df7579190a250565b61082b6108266113dc565b6113e0565b6000600260006108396113dc565b6001600160a01b03168152602081019190915260400160009081208054909250819080610898576040805162461bcd60e51b81526020600482015260086024820152676e6f207374616b6560c01b604482015290519081900360640190fd5b428460030154116108a857600191505b816108eb576040805162461bcd60e51b815260206004820152600e60248201526d63616e6e6f7420756e7374616b6560901b604482015290519081900360640190fd5b600084556001840154610904908263ffffffff61162816565b6001850155610919838263ffffffff61167316565b6004549093506001600160a01b031663a9059cbb6109356113dc565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561098557600080fd5b505af1158015610999573d6000803e3d6000fd5b505050506040513d60208110156109af57600080fd5b50516109f9576040805162461bcd60e51b815260206004820152601460248201527308dd1c985b9cd9995c919c9bdb4819985a5b195960621b604482015290519081900360640190fd5b6004547fd8654fcc8cf5b36d30b3f5e4688fc78118e6d68de60b9994e09902268b57c3e3906001600160a01b0316610a2f6113dc565b604080516001600160a01b03938416815291909216602082015280820184905290519081900360600190a1600354610a6d908463ffffffff61162816565b60035550505050565b6001600160a01b03811660009081526002602081905260408220015480610aa1576000915050610ab5565b610ab1438263ffffffff61162816565b9150505b919050565b6001600160a01b031660009081526001602052604090205460ff1690565b600060035460001415610aed57506000610ab5565b6001600160a01b0382166000908152600260208190526040822090810154909190610b1f90439063ffffffff61162816565b90506000610b38600754836116cd90919063ffffffff16565b9050610b63600354610b578560010154846116cd90919063ffffffff16565b9063ffffffff61172616565b95945050505050565b6004546001600160a01b031681565b60035481565b6001600160a01b031660009081526002602052604090205490565b610ba46113dc565b6000546001600160a01b03908116911614610bf4576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b80610c42576040805162461bcd60e51b81526020600482015260196024820152786e6577207265776172642063616e6e6f74206265207a65726f60381b604482015290519081900360640190fd5b600855565b610c4f6113dc565b6000546001600160a01b03908116911614610c9f576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60085481565b6000546001600160a01b031690565b610d0733610aba565b610d1057600080fd5b80610d62576040805162461bcd60e51b815260206004820152601f60248201527f616d6f756e742073686f756c642062652067726561746572207468616e203000604482015290519081900360640190fd5b600954811015610daa576040805162461bcd60e51b815260206004820152600e60248201526d616d6f756e7420746f6f206c6f7760901b604482015290519081900360640190fd5b600a54811115610df3576040805162461bcd60e51b815260206004820152600f60248201526e0c2dadeeadce840e8dede40d0d2ced608b1b604482015290519081900360640190fd5b6004546001600160a01b03166323b872dd610e0c6113dc565b604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152306024830152604482018590525160648083019260209291908290030181600087803b158015610e6057600080fd5b505af1158015610e74573d6000803e3d6000fd5b505050506040513d6020811015610e8a57600080fd5b5051610ed4576040805162461bcd60e51b815260206004820152601460248201527308dd1c985b9cd9995c919c9bdb4819985a5b195960621b604482015290519081900360640190fd5b610edf6108266113dc565b600354610ef2908263ffffffff61167316565b6003556000600281610f026113dc565b6001600160a01b03166001600160a01b031681526020019081526020016000209050610f396008544261167390919063ffffffff16565b60038201558054610f50908363ffffffff61167316565b81556001810154610f67908363ffffffff61167316565b60018201556004547f5dac0c1b1112564a045ba943c9d50270893e8e826c49be8e7073adc713ab7bd7906001600160a01b0316610fa26113dc565b604080516001600160a01b03938416815291909216602082015280820185905290519081900360600190a15050565b600a5481565b610fdf6113dc565b6000546001600160a01b0390811691161461102f576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b80611081576040805162461bcd60e51b815260206004820152601760248201527f6e65772074696d652063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b600655565b60095481565b6001600160a01b031660009081526002602052604090206001015490565b6110b56108266113dc565b565b600260208190526000918252604090912080546001820154928201546003909201549092919084565b6110e86113dc565b6000546001600160a01b03908116911614611138576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b6040516001600160a01b038216904780156108fc02916000818181858888f1935050505015801561116d573d6000803e3d6000fd5b5050565b6111796113dc565b6000546001600160a01b039081169116146111c9576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b8061121b576040805162461bcd60e51b815260206004820152601d60248201527f6d696e696d756d20616d6f756e742063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600955565b6112286113dc565b6000546001600160a01b03908116911614611278576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b6001600160a01b0381166112bd5760405162461bcd60e51b81526004018080602001828103825260268152602001806118656026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031681565b61132f6113dc565b6000546001600160a01b0390811691161461137f576040805162461bcd60e51b815260206004820181905260248201526000805160206118ac833981519152604482015290519081900360640190fd5b806113d1576040805162461bcd60e51b815260206004820152601d60248201527f6d6178696d756d20616d6f756e742063616e6e6f74206265207a65726f000000604482015290519081900360640190fd5b600a55565b60065481565b3390565b60006113eb82610ad8565b90506000600560009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561143d57600080fd5b505afa158015611451573d6000803e3d6000fd5b505050506040513d602081101561146757600080fd5b505160055460408051631aa93a7560e11b815290519293506000926001600160a01b039092169163355274ea91600480820192602092909190829003018186803b1580156114b457600080fd5b505afa1580156114c8573d6000803e3d6000fd5b505050506040513d60208110156114de57600080fd5b50519050821561160557806114f9838563ffffffff61167316565b1161160557600554604080516340c10f1960e01b81526001600160a01b03878116600483015260248201879052915191909216916340c10f199160448083019260209291908290030181600087803b15801561155457600080fd5b505af1158015611568573d6000803e3d6000fd5b505050506040513d602081101561157e57600080fd5b50516115c0576040805162461bcd60e51b815260206004820152600c60248201526b08db5a5b9d0819985a5b195960a21b604482015290519081900360640190fd5b604080516001600160a01b03861681526020810185905281517f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e1337929181900390910190a15b5050506001600160a01b0316600090815260026020819052604090912043910155565b600061166a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611768565b90505b92915050565b60008282018381101561166a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826116dc5750600061166d565b828202828482816116e957fe5b041461166a5760405162461bcd60e51b815260040180806020018281038252602181526020018061188b6021913960400191505060405180910390fd5b600061166a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117ff565b600081848411156117f75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117bc5781810151838201526020016117a4565b50505050905090810190601f1680156117e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000818361184e5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156117bc5781810151838201526020016117a4565b50600083858161185a57fe5b049594505050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220c6f03cb9de6e2083916ba46ae528bf644a4267b3e15c0b9e4dd4fcfead671d3864736f6c63430006000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004e8db204e2c284a03c28c5162a11f25327fd50990000000000000000000000007c34eafdbfcc04999e568015c2b6cec89b1a550d
-----Decoded View---------------
Arg [0] : sToken (address): 0x4E8DB204E2c284a03c28c5162a11F25327fd5099
Arg [1] : rToken (address): 0x7C34EafdbFCc04999E568015c2B6cEC89b1A550d
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000004e8db204e2c284a03c28c5162a11f25327fd5099
Arg [1] : 0000000000000000000000007c34eafdbfcc04999e568015c2b6cec89b1a550d
Deployed Bytecode Sourcemap
12138:7383:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8823:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8823:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8823:135:0;-1:-1:-1;;;;;8823:135:0;;:::i;13146:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13146:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;14125:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14125:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14125:213:0;;:::i;8966:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8966:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8966:143:0;-1:-1:-1;;;;;8966:143:0;;:::i;16245:1238::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16245:1238:0;;;:::i;17590:333::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17590:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17590:333:0;-1:-1:-1;;;;;17590:333:0;;:::i;9117:112::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9117:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9117:112:0;-1:-1:-1;;;;;9117:112:0;;:::i;:::-;;;;;;;;;;;;;;;;;;18250:551;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18250:551:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18250:551:0;-1:-1:-1;;;;;18250:551:0;;:::i;13033:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13033:25:0;;;:::i;:::-;;;;-1:-1:-1;;;;;13033:25:0;;;;;;;;;;;;;;12937:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12937:32:0;;;:::i;18093:145::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18093:145:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18093:145:0;-1:-1:-1;;;;;18093:145:0;;:::i;14350:209::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14350:209:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14350:209:0;;:::i;7977:148::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7977:148:0;;;:::i;13183:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13183:35:0;;;:::i;7335:79::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7335:79:0;;;:::i;14782:1451::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14782:1451:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14782:1451:0;;:::i;13274:57::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13274:57:0;;;:::i;14567:207::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14567:207:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14567:207:0;;:::i;13225:42::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13225:42:0;;;:::i;17935:146::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17935:146:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17935:146:0;-1:-1:-1;;;;;17935:146:0;;:::i;17495:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17495:83:0;;;:::i;12868:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12868:45:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12868:45:0;-1:-1:-1;;;;;12868:45:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13556:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13556:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13556:127:0;-1:-1:-1;;;;;13556:127:0;;:::i;13695:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13695:203:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13695:203:0;;:::i;8280:244::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8280:244:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8280:244:0;-1:-1:-1;;;;;8280:244:0;;:::i;13065:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13065:26:0;;;:::i;13910:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13910:203:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13910:203:0;;:::i;13104:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13104:35:0;;;:::i;8823:135::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8882:19:0;::::1;;::::0;;;8904:4:::1;8882:19;::::0;;;;;;;:26;;-1:-1:-1;;8882:26:0::1;::::0;;::::1;::::0;;;8924;::::1;::::0;8882:19;8924:26:::1;8823:135:::0;:::o;13146:30::-;;;;:::o;14125:213::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;14223:17;14201:92:::1;;;::::0;;-1:-1:-1;;;14201:92:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;14201:92:0;;;;;;;;;;;;;::::1;;14304:11;:26:::0;14125:213::o;8966:143::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;9028:19:0;::::1;9050:5;9028:19:::0;;;:9:::1;:19;::::0;;;;;:27;;-1:-1:-1;;9028:27:0::1;::::0;;9071:30;::::1;::::0;9050:5;9071:30:::1;8966:143:::0;:::o;16245:1238::-;16284:29;16300:12;:10;:12::i;:::-;16284:15;:29::i;:::-;16324:26;16353:12;:26;16366:12;:10;:12::i;:::-;-1:-1:-1;;;;;16353:26:0;;;;;;;;;;;;-1:-1:-1;16353:26:0;;;16482:24;;16353:26;;-1:-1:-1;;;16535:29:0;16531:80;;16581:18;;;-1:-1:-1;;;16581:18:0;;;;;;;;;;;;-1:-1:-1;;;16581:18:0;;;;;;;;;;;;;;16531:80;16664:15;16627:12;:33;;;:52;16623:108;;16715:4;16696:23;;16623:108;16765:16;16743:80;;;;;-1:-1:-1;;;16743:80:0;;;;;;;;;;;;-1:-1:-1;;;16743:80:0;;;;;;;;;;;;;;;16871:1;16844:28;;16932:36;;;;:67;;16987:11;16932:67;:54;:67;:::i;:::-;16893:36;;;:106;17042:36;:19;17066:11;17042:36;:23;:36;:::i;:::-;17128:10;;17020:58;;-1:-1:-1;;;;;;17128:10:0;17121:27;17149:12;:10;:12::i;:::-;17163:11;17121:54;;;;;;;;;;;;;-1:-1:-1;;;;;17121:54:0;-1:-1:-1;;;;;17121:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17121:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17121:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17121:54:0;17099:167;;;;;-1:-1:-1;;;17099:167:0;;;;;;;;;;;;-1:-1:-1;;;17099:167:0;;;;;;;;;;;;;;;17301:10;;17292:47;;-1:-1:-1;;;;;17301:10:0;17313:12;:10;:12::i;:::-;17292:47;;;-1:-1:-1;;;;;17292:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17380:17;;:42;;17402:19;17380:42;:21;:42;:::i;:::-;17360:17;:62;-1:-1:-1;;;;16245:1238:0:o;17590:333::-;-1:-1:-1;;;;;17722:18:0;;17668:7;17722:18;;;:12;:18;;;;;;;:45;;17782:28;17778:69;;17834:1;17827:8;;;;;17778:69;17874:41;:12;17891:23;17874:41;:16;:41;:::i;:::-;17867:48;;;17590:333;;;;:::o;9117:112::-;-1:-1:-1;;;;;9202:19:0;9178:4;9202:19;;;:9;:19;;;;;;;;;9117:112::o;18250:551::-;18328:7;18352:17;;18373:1;18352:22;18348:63;;;-1:-1:-1;18398:1:0;18391:8;;18348:63;-1:-1:-1;;;;;18460:18:0;;18431:26;18460:18;;;:12;:18;;;;;;;18551:39;;;;18460:18;;18431:26;18520:71;;:12;;:71;:30;:71;:::i;:::-;18499:92;;18612:19;18634:27;18649:11;;18634:10;:14;;:27;;;;:::i;:::-;18612:49;;18689:104;18775:17;;18689:67;18719:12;:36;;;18689:11;:29;;:67;;;;:::i;:::-;:85;:104;:85;:104;:::i;:::-;18682:111;18250:551;-1:-1:-1;;;;;18250:551:0:o;13033:25::-;;;-1:-1:-1;;;;;13033:25:0;;:::o;12937:32::-;;;;:::o;18093:145::-;-1:-1:-1;;;;;18200:18:0;18173:7;18200:18;;;:12;:18;;;;;:30;;18093:145::o;14350:209::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;14448:13;14426:88:::1;;;::::0;;-1:-1:-1;;;14426:88:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;14426:88:0;;;;;;;;;;;;;::::1;;14525:15;:26:::0;14350:209::o;7977:148::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;8084:1:::1;8068:6:::0;;8047:40:::1;::::0;-1:-1:-1;;;;;8068:6:0;;::::1;::::0;8047:40:::1;::::0;8084:1;;8047:40:::1;8115:1;8098:19:::0;;-1:-1:-1;;;;;;8098:19:0::1;::::0;;7977:148::o;13183:35::-;;;;:::o;7335:79::-;7373:7;7400:6;-1:-1:-1;;;;;7400:6:0;7335:79;:::o;14782:1451::-;8769:25;8783:10;8769:13;:25::i;:::-;8761:34;;;;;;14887:11;14865:111:::1;;;::::0;;-1:-1:-1;;;14865:111:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15029:13;;15019:6;:23;;14997:87;;;::::0;;-1:-1:-1;;;14997:87:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;14997:87:0;;;;;;;;;;;;;::::1;;15137:13;;15127:6;:23;;15105:88;;;::::0;;-1:-1:-1;;;15105:88:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15105:88:0;;;;;;;;;;;;;::::1;;15243:10;::::0;-1:-1:-1;;;;;15243:10:0::1;15236:31;15268:12;:10;:12::i;:::-;15236:68;::::0;;-1:-1:-1;;;;;;15236:68:0::1;::::0;;;;;;-1:-1:-1;;;;;15236:68:0;;::::1;;::::0;::::1;::::0;15290:4:::1;15236:68:::0;;;;;;;;;;;;;;;;::::1;::::0;;;;;;;;-1:-1:-1;15236:68:0;;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;15236:68:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15236:68:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;15236:68:0;15214:178:::1;;;::::0;;-1:-1:-1;;;15214:178:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;15214:178:0;;;;;;;;;;;;;::::1;;15413:29;15429:12;:10;:12::i;15413:29::-;15508:17;::::0;:29:::1;::::0;15530:6;15508:29:::1;:21;:29;:::i;:::-;15488:17;:49:::0;15613:26:::1;15642:12;15613:26:::0;15655:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;15642:26:0::1;-1:-1:-1::0;;;;;15642:26:0::1;;;;;;;;;;;;15613:55;;15715:60;15749:15;;15715;:19;;:60;;;;:::i;:::-;15679:33;::::0;::::1;:96:::0;15851:24;;:76:::1;::::0;15920:6;15851:76:::1;:68;:76;:::i;:::-;15823:104:::0;;15987:36:::1;::::0;::::1;::::0;:111:::1;::::0;16091:6;15987:111:::1;:103;:111;:::i;:::-;15948:36;::::0;::::1;:150:::0;16137:10:::1;::::0;16116:90:::1;::::0;-1:-1:-1;;;;;16137:10:0::1;16162:12;:10;:12::i;:::-;16116:90;::::0;;-1:-1:-1;;;;;16116:90:0;;::::1;::::0;;;;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;;::::1;8806:1;14782:1451:::0;:::o;13274:57::-;;;;:::o;14567:207::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;14667:12;14645:85:::1;;;::::0;;-1:-1:-1;;;14645:85:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14741:15;:25:::0;14567:207::o;13225:42::-;;;;:::o;17935:146::-;-1:-1:-1;;;;;18031:18:0;18004:7;18031:18;;;:12;:18;;;;;:42;;;;17935:146::o;17495:83::-;17541:29;17557:12;:10;:12::i;17541:29::-;17495:83::o;12868:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13556:127::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;13634:41:::1;::::0;-1:-1:-1;;;;;13634:18:0;::::1;::::0;13653:21:::1;13634:41:::0;::::1;;;::::0;::::1;::::0;;;13653:21;13634:18;:41;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;13634:41:0;13556:127:::0;:::o;13695:203::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;13789:11;13767:90:::1;;;::::0;;-1:-1:-1;;;13767:90:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13868:13;:22:::0;13695:203::o;8280:244::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8369:22:0;::::1;8361:73;;;;-1:-1:-1::0;;;8361:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8471:6;::::0;;8450:38:::1;::::0;-1:-1:-1;;;;;8450:38:0;;::::1;::::0;8471:6;::::1;::::0;8450:38:::1;::::0;::::1;8499:6;:17:::0;;-1:-1:-1;;;;;;8499:17:0::1;-1:-1:-1::0;;;;;8499:17:0;;;::::1;::::0;;;::::1;::::0;;8280:244::o;13065:26::-;;;-1:-1:-1;;;;;13065:26:0;;:::o;13910:203::-;7557:12;:10;:12::i;:::-;7547:6;;-1:-1:-1;;;;;7547:6:0;;;:22;;;7539:67;;;;;-1:-1:-1;;;7539:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7539:67:0;;;;;;;;;;;;;;;14004:11;13982:90:::1;;;::::0;;-1:-1:-1;;;13982:90:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14083:13;:22:::0;13910:203::o;13104:35::-;;;;:::o;5973:106::-;6061:10;5973:106;:::o;18813:705::-;18872:20;18895:24;18914:4;18895:18;:24::i;:::-;18872:47;;18940:19;18969:11;;;;;;;;;-1:-1:-1;;;;;18969:11:0;-1:-1:-1;;;;;18962:31:0;;:33;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18962:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18962:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18962:33:0;19033:11;;19020:31;;;-1:-1:-1;;;19020:31:0;;;;18962:33;;-1:-1:-1;19006:11:0;;-1:-1:-1;;;;;19033:11:0;;;;19020:29;;:31;;;;;18962:33;;19020:31;;;;;;;;19033:11;19020:31;;;5:2:-1;;;;30:1;27;20:12;5:2;19020:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19020:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19020:31:0;;-1:-1:-1;19076:17:0;;19072:358;;19147:3;19114:29;:11;19130:12;19114:29;:15;:29;:::i;:::-;:36;19110:309;;19211:11;;19201:47;;;-1:-1:-1;;;19201:47:0;;-1:-1:-1;;;;;19201:47:0;;;;;;;;;;;;;;;19211:11;;;;;19201:27;;:47;;;;;;;;;;;;;;19211:11;;19201:47;;;5:2:-1;;;;30:1;27;20:12;5:2;19201:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19201:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19201:47:0;19171:173;;;;;-1:-1:-1;;;19171:173:0;;;;;;;;;;;;-1:-1:-1;;;19171:173:0;;;;;;;;;;;;;;;19368:35;;;-1:-1:-1;;;;;19368:35:0;;;;;;;;;;;;;;;;;;;;;;;19110:309;-1:-1:-1;;;;;;;;19450:18:0;;;;;:12;:18;;;;;;;;19498:12;19450:45;;:60;18813:705::o;1434:136::-;1492:7;1519:43;1523:1;1526;1519:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1512:50;;1434:136;;;;;:::o;970:181::-;1028:7;1060:5;;;1084:6;;;;1076:46;;;;;-1:-1:-1;;;1076:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:471;2382:7;2627:6;2623:47;;-1:-1:-1;2657:1:0;2650:8;;2623:47;2694:5;;;2698:1;2694;:5;:1;2718:5;;;;;:10;2710:56;;;;-1:-1:-1;;;2710:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3271:132;3329:7;3356:39;3360:1;3363;3356:39;;;;;;;;;;;;;;;;;:3;:39::i;1873:192::-;1959:7;1995:12;1987:6;;;;1979:29;;;;-1:-1:-1;;;1979:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1979:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2031:5:0;;;1873:192::o;3899:278::-;3985:7;4020:12;4013:5;4005:28;;;;-1:-1:-1;;;4005:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;4005:28:0;;4044:9;4060:1;4056;:5;;;;;;;3899:278;-1:-1:-1;;;;;3899:278:0:o
Swarm Source
ipfs://c6f03cb9de6e2083916ba46ae528bf644a4267b3e15c0b9e4dd4fcfead671d38
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 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.