Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,620 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Enter In Pool | 18578648 | 413 days ago | IN | 0 ETH | 0.00799644 | ||||
Harvest | 18571615 | 414 days ago | IN | 0 ETH | 0.00391001 | ||||
Policy Claim | 18571186 | 414 days ago | IN | 0 ETH | 0.00436253 | ||||
Policy Claim | 18571176 | 414 days ago | IN | 0 ETH | 0.00334897 | ||||
Enter In Pool | 18570086 | 414 days ago | IN | 0 ETH | 0.00283176 | ||||
Harvest | 18570079 | 414 days ago | IN | 0 ETH | 0.00276122 | ||||
Enter In Pool | 18558509 | 416 days ago | IN | 0 ETH | 0.00280679 | ||||
Harvest | 18558505 | 416 days ago | IN | 0 ETH | 0.00261694 | ||||
Enter In Pool | 18555526 | 416 days ago | IN | 0 ETH | 0.00274545 | ||||
Leave From Pendi... | 18548638 | 417 days ago | IN | 0 ETH | 0.00312716 | ||||
Harvest | 18548609 | 417 days ago | IN | 0 ETH | 0.00208299 | ||||
Enter In Pool | 18538356 | 419 days ago | IN | 0 ETH | 0.00368998 | ||||
Harvest | 18531735 | 420 days ago | IN | 0 ETH | 0.00306864 | ||||
Harvest | 18520821 | 421 days ago | IN | 0 ETH | 0.00388854 | ||||
Harvest | 18515667 | 422 days ago | IN | 0 ETH | 0.00298418 | ||||
Enter In Pool | 18512711 | 422 days ago | IN | 0 ETH | 0.00331307 | ||||
Enter In Pool | 18494177 | 425 days ago | IN | 0 ETH | 0.00207217 | ||||
Harvest | 18494173 | 425 days ago | IN | 0 ETH | 0.00178353 | ||||
Harvest | 18476138 | 427 days ago | IN | 0 ETH | 0.00121372 | ||||
Harvest | 18473020 | 428 days ago | IN | 0 ETH | 0.00190551 | ||||
Leave From Pendi... | 18468505 | 428 days ago | IN | 0 ETH | 0.00215028 | ||||
Harvest | 18467769 | 429 days ago | IN | 0 ETH | 0.0012485 | ||||
Leave From Pendi... | 18467767 | 429 days ago | IN | 0 ETH | 0.00201478 | ||||
Leave From Pool ... | 18462404 | 429 days ago | IN | 0 ETH | 0.00309221 | ||||
Harvest | 18462389 | 429 days ago | IN | 0 ETH | 0.00171082 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SingleSidedReinsurancePool
Compiler Version
v0.8.0+commit.c7dfd78e
Optimization Enabled:
Yes with 500 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.0; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "./interfaces/IMigration.sol"; import "./interfaces/IRiskPoolFactory.sol"; import "./interfaces/IRewarderFactory.sol"; import "./interfaces/ISingleSidedReinsurancePool.sol"; import "./interfaces/ISyntheticSSRPFactory.sol"; import "./interfaces/IRewarder.sol"; import "./interfaces/IRiskPool.sol"; import "./libraries/TransferHelper.sol"; contract SingleSidedReinsurancePool is ISingleSidedReinsurancePool, ReentrancyGuard { address public owner; address public claimAssessor; address public migrateTo; address public syntheticSSRP; uint256 public LOCK_TIME = 1 days; uint256 public constant ACC_UNO_PRECISION = 1e18; uint256 public STAKING_START_TIME; address public rewarder; address public override riskPool; struct PoolInfo { uint128 lastRewardBlock; uint128 accUnoPerShare; uint256 unoMultiplierPerBlock; } struct UserInfo { uint256 lastWithdrawTime; uint256 rewardDebt; uint256 amount; } mapping(address => UserInfo) public userInfo; PoolInfo public poolInfo; event RiskPoolCreated(address indexed _SSRP, address indexed _pool); event StakedInPool(address indexed _staker, address indexed _pool, uint256 _amount); event LeftPool(address indexed _staker, address indexed _pool, uint256 _requestAmount); event LogUpdatePool(uint128 _lastRewardBlock, uint256 _lpSupply, uint256 _accUnoPerShare); event Harvest(address indexed _user, address indexed _receiver, uint256 _amount); event LogLeaveFromPendingSSRP(address indexed _user, uint256 _withdrawLpAmount, uint256 _withdrawUnoAmount); event PolicyClaim(address indexed _user, uint256 _claimAmount); event LogLpTransferInSSRP(address indexed _from, address indexed _to, uint256 _amount); event LogCreateRewarder(address indexed _SSRP, address indexed _rewarder, address _currency); event LogCreateSyntheticSSRP(address indexed _SSRP, address indexed _syntheticSSRP, address indexed _lpToken); event LogCancelWithdrawRequest(address indexed _user, uint256 _cancelAmount, uint256 _cancelAmountInUno); event LogMigrate(address indexed _user, address indexed _migrateTo, uint256 _migratedAmount); constructor(address _owner, address _claimAssessor) { owner = _owner; claimAssessor = _claimAssessor; STAKING_START_TIME = block.timestamp + 3 days; } modifier onlyOwner() { require(msg.sender == owner, "UnoRe: Forbidden"); _; } modifier onlyClaimAssessor() { require(msg.sender == claimAssessor, "UnoRe: Forbidden"); _; } modifier isStartTime() { require(block.timestamp >= STAKING_START_TIME, "UnoRe: not available time"); _; } function setRewardMultiplier(uint256 _rewardMultiplier) external onlyOwner { require(_rewardMultiplier > 0, "UnoRe: zero value"); poolInfo.unoMultiplierPerBlock = _rewardMultiplier; } function setClaimAssessor(address _claimAssessor) external onlyOwner { require(_claimAssessor != address(0), "UnoRe: zero address"); claimAssessor = _claimAssessor; } function setMigrateTo(address _migrateTo) external onlyOwner { require(_migrateTo != address(0), "UnoRe: zero address"); migrateTo = _migrateTo; } function setMinLPCapital(uint256 _minLPCapital) external onlyOwner { require(_minLPCapital > 0, "UnoRe: not allow zero value"); IRiskPool(riskPool).setMinLPCapital(_minLPCapital); } function setLockTime(uint256 _lockTime) external onlyOwner { require(_lockTime > 0, "UnoRe: not allow zero lock time"); LOCK_TIME = _lockTime; } function setStakingStartTime(uint256 _startTime) external onlyOwner { require(_startTime > 0, "UnoRe: not allow zero start time"); STAKING_START_TIME = _startTime; } /** * @dev create Risk pool with UNO from SSRP owner */ function createRiskPool( string calldata _name, string calldata _symbol, address _factory, address _currency, uint256 _rewardMultiplier ) external onlyOwner nonReentrant { require(riskPool == address(0), "UnoRe: risk pool created already"); riskPool = IRiskPoolFactory(_factory).newRiskPool(_name, _symbol, address(this), _currency); poolInfo.lastRewardBlock = uint128(block.number); poolInfo.accUnoPerShare = 0; poolInfo.unoMultiplierPerBlock = _rewardMultiplier; emit RiskPoolCreated(address(this), riskPool); } function createRewarder( address _operator, address _factory, address _currency ) external onlyOwner nonReentrant { require(_factory != address(0), "UnoRe: rewarder factory no exist"); rewarder = IRewarderFactory(_factory).newRewarder(_operator, _currency, address(this)); emit LogCreateRewarder(address(this), rewarder, _currency); } function createSyntheticSSRP(address _owner, address _factory) external onlyOwner nonReentrant { require(_owner != address(0), "UnoRe: zero owner address"); require(_factory != address(0), "UnoRe:zero factory address"); require(riskPool != address(0), "UnoRe:zero LP token address"); syntheticSSRP = ISyntheticSSRPFactory(_factory).newSyntheticSSRP(_owner, riskPool); emit LogCreateSyntheticSSRP(address(this), syntheticSSRP, riskPool); } function migrate() external nonReentrant { require(migrateTo != address(0), "UnoRe: zero address"); _harvest(msg.sender); uint256 amount = userInfo[msg.sender].amount; bool isUnLocked = block.timestamp - userInfo[msg.sender].lastWithdrawTime > LOCK_TIME; uint256 migratedAmount = IRiskPool(riskPool).migrateLP(msg.sender, migrateTo, isUnLocked); IMigration(migrateTo).onMigration(msg.sender, amount, ""); userInfo[msg.sender].amount = 0; userInfo[msg.sender].rewardDebt = 0; emit LogMigrate(msg.sender, migrateTo, migratedAmount); } function pendingUno(address _to) external view returns (uint256 pending) { uint256 tokenSupply = IERC20(riskPool).totalSupply(); uint128 accUnoPerShare = poolInfo.accUnoPerShare; if (block.number > poolInfo.lastRewardBlock && tokenSupply != 0) { uint256 blocks = block.number - uint256(poolInfo.lastRewardBlock); uint256 unoReward = blocks * poolInfo.unoMultiplierPerBlock; accUnoPerShare = accUnoPerShare + uint128((unoReward * ACC_UNO_PRECISION) / tokenSupply); } uint256 userBalance = userInfo[_to].amount; pending = (userBalance * uint256(accUnoPerShare)) / ACC_UNO_PRECISION - userInfo[_to].rewardDebt; } function updatePool() public override { if (block.number > poolInfo.lastRewardBlock) { uint256 tokenSupply = IERC20(riskPool).totalSupply(); if (tokenSupply > 0) { uint256 blocks = block.number - uint256(poolInfo.lastRewardBlock); uint256 unoReward = blocks * poolInfo.unoMultiplierPerBlock; poolInfo.accUnoPerShare = poolInfo.accUnoPerShare + uint128(((unoReward * ACC_UNO_PRECISION) / tokenSupply)); } poolInfo.lastRewardBlock = uint128(block.number); emit LogUpdatePool(poolInfo.lastRewardBlock, tokenSupply, poolInfo.accUnoPerShare); } } function enterInPool(uint256 _amount) external override isStartTime nonReentrant { require(_amount != 0, "UnoRe: ZERO Value"); updatePool(); address token = IRiskPool(riskPool).currency(); uint256 lpPriceUno = IRiskPool(riskPool).lpPriceUno(); TransferHelper.safeTransferFrom(token, msg.sender, riskPool, _amount); IRiskPool(riskPool).enter(msg.sender, _amount); userInfo[msg.sender].rewardDebt = userInfo[msg.sender].rewardDebt + ((_amount * 1e18 * uint256(poolInfo.accUnoPerShare)) / lpPriceUno) / ACC_UNO_PRECISION; userInfo[msg.sender].amount = userInfo[msg.sender].amount + ((_amount * 1e18) / lpPriceUno); emit StakedInPool(msg.sender, riskPool, _amount); } /** * @dev WR will be in pending for 10 days at least */ function leaveFromPoolInPending(uint256 _amount) external override isStartTime nonReentrant { _harvest(msg.sender); // Withdraw desired amount from pool uint256 amount = userInfo[msg.sender].amount; uint256 lpPriceUno = IRiskPool(riskPool).lpPriceUno(); (uint256 pendingAmount, , ) = IRiskPool(riskPool).getWithdrawRequest(msg.sender); require(((amount - pendingAmount) * lpPriceUno) / 1e18 >= _amount, "UnoRe: withdraw amount overflow"); IRiskPool(riskPool).leaveFromPoolInPending(msg.sender, _amount); userInfo[msg.sender].lastWithdrawTime = block.timestamp; emit LeftPool(msg.sender, riskPool, _amount); } /** * @dev user can submit claim again and receive his funds into his wallet after 10 days since last WR. */ function leaveFromPending() external override isStartTime nonReentrant { require(block.timestamp - userInfo[msg.sender].lastWithdrawTime >= LOCK_TIME, "UnoRe: Locked time"); _harvest(msg.sender); uint256 amount = userInfo[msg.sender].amount; (uint256 pendingAmount, , ) = IRiskPool(riskPool).getWithdrawRequest(msg.sender); uint256 accumulatedUno = (amount * uint256(poolInfo.accUnoPerShare)) / ACC_UNO_PRECISION; userInfo[msg.sender].rewardDebt = accumulatedUno - ((pendingAmount * uint256(poolInfo.accUnoPerShare)) / ACC_UNO_PRECISION); (uint256 withdrawAmount, uint256 withdrawAmountInUNO) = IRiskPool(riskPool).leaveFromPending(msg.sender); userInfo[msg.sender].amount = amount - withdrawAmount; emit LogLeaveFromPendingSSRP(msg.sender, withdrawAmount, withdrawAmountInUNO); } function lpTransfer( address _from, address _to, uint256 _amount ) external override nonReentrant { require(msg.sender == address(riskPool), "UnoRe: not allow others transfer"); if (_from != syntheticSSRP && _to != syntheticSSRP) { _harvest(_from); uint256 amount = userInfo[_from].amount; (uint256 pendingAmount, , ) = IRiskPool(riskPool).getWithdrawRequest(_from); require(amount - pendingAmount >= _amount, "UnoRe: balance overflow"); uint256 accumulatedUno = (amount * uint256(poolInfo.accUnoPerShare)) / ACC_UNO_PRECISION; userInfo[_from].rewardDebt = accumulatedUno - ((_amount * uint256(poolInfo.accUnoPerShare)) / ACC_UNO_PRECISION); userInfo[_from].amount = amount - _amount; userInfo[_to].rewardDebt = userInfo[_to].rewardDebt + ((_amount * uint256(poolInfo.accUnoPerShare)) / ACC_UNO_PRECISION); userInfo[_to].amount = userInfo[_to].amount + _amount; emit LogLpTransferInSSRP(_from, _to, _amount); } } function harvest(address _to) external override isStartTime nonReentrant { _harvest(_to); } function _harvest(address _to) private { updatePool(); uint256 amount = userInfo[_to].amount; uint256 accumulatedUno = (amount * uint256(poolInfo.accUnoPerShare)) / ACC_UNO_PRECISION; uint256 _pendingUno = accumulatedUno - userInfo[_to].rewardDebt; // Effects userInfo[msg.sender].rewardDebt = accumulatedUno; uint256 rewardAmount = 0; if (rewarder != address(0) && _pendingUno != 0) { rewardAmount = IRewarder(rewarder).onReward(_to, _pendingUno); } emit Harvest(msg.sender, _to, rewardAmount); } function cancelWithdrawRequest() external nonReentrant { (uint256 cancelAmount, uint256 cancelAmountInUno) = IRiskPool(riskPool).cancelWithrawRequest(msg.sender); emit LogCancelWithdrawRequest(msg.sender, cancelAmount, cancelAmountInUno); } function policyClaim(address _to, uint256 _amount) external onlyClaimAssessor isStartTime nonReentrant { require(_to != address(0), "UnoRe: zero address"); require(_amount > 0, "UnoRe: zero amount"); uint256 realClaimAmount = IRiskPool(riskPool).policyClaim(_to, _amount); emit PolicyClaim(_to, realClaimAmount); } function getStakedAmountPerUser(address _to) external view returns (uint256 unoAmount, uint256 lpAmount) { lpAmount = userInfo[_to].amount; uint256 lpPriceUno = IRiskPool(riskPool).lpPriceUno(); unoAmount = (lpAmount * lpPriceUno) / 1e18; } /** * @dev get withdraw request amount in pending per user in UNO */ function getWithdrawRequestPerUser(address _user) external view returns ( uint256 pendingAmount, uint256 pendingAmountInUno, uint256 originUnoAmount, uint256 requestTime ) { uint256 lpPriceUno = IRiskPool(riskPool).lpPriceUno(); (pendingAmount, requestTime, originUnoAmount) = IRiskPool(riskPool).getWithdrawRequest(_user); pendingAmountInUno = (pendingAmount * lpPriceUno) / 1e18; } /** * @dev get total withdraw request amount in pending for the risk pool in UNO */ function getTotalWithdrawPendingAmount() external view returns (uint256) { return IRiskPool(riskPool).getTotalWithdrawRequestAmount(); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.0; interface IMigration { function onMigration( address who_, uint256 amount_, bytes memory data_ ) external; }
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.0; interface IRiskPoolFactory { function newRiskPool( string calldata _name, string calldata _symbol, address _pool, address _currency ) external returns (address); }
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.0; interface IRewarderFactory { function newRewarder( address _operator, address _currency, address _pool ) external returns (address); }
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.0; interface ISingleSidedReinsurancePool { function updatePool() external; function enterInPool(uint256 _amount) external; function leaveFromPoolInPending(uint256 _amount) external; function leaveFromPending() external; function harvest(address _to) external; function lpTransfer( address _from, address _to, uint256 _amount ) external; function riskPool() external view returns (address); }
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.0; interface ISyntheticSSRPFactory { function newSyntheticSSRP(address _owner, address _lpToken) external returns (address); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.0; interface IRewarder { function currency() external view returns (address); function onReward(address to, uint256 unoAmount) external payable returns (uint256); }
// SPDX-License-Identifier: GPL-3.0 pragma solidity 0.8.0; interface IRiskPool { function enter(address _from, uint256 _amount) external; function leaveFromPoolInPending(address _to, uint256 _amount) external; function leaveFromPending(address _to) external returns (uint256, uint256); function cancelWithrawRequest(address _to) external returns (uint256, uint256); function policyClaim(address _to, uint256 _amount) external returns (uint256 realClaimAmount); function migrateLP( address _to, address _migrateTo, bool _isUnLocked ) external returns (uint256); function setMinLPCapital(uint256 _minLPCapital) external; function currency() external view returns (address); function getTotalWithdrawRequestAmount() external view returns (uint256); function getWithdrawRequest(address _to) external view returns ( uint256, uint256, uint256 ); function lpPriceUno() external view returns (uint256); }
// SPDX-License-Identifier: GPL-3.0-or-later pragma solidity 0.8.0; // from Uniswap TransferHelper library library TransferHelper { function safeApprove( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('approve(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper::safeApprove: approve failed"); } function safeTransfer( address token, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transfer(address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper::safeTransfer: transfer failed"); } function safeTransferFrom( address token, address from, address to, uint256 value ) internal { // bytes4(keccak256(bytes('transferFrom(address,address,uint256)'))); (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value)); require(success && (data.length == 0 || abi.decode(data, (bool))), "TransferHelper::transferFrom: transferFrom failed"); } function safeTransferETH(address to, uint256 value) internal { (bool success, ) = to.call{value: value}(new bytes(0)); require(success, "TransferHelper::safeTransferETH: ETH transfer failed"); } }
{ "optimizer": { "enabled": true, "runs": 500 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "metadata": { "useLiteralContent": true }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_claimAssessor","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"address","name":"_receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Harvest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_staker","type":"address"},{"indexed":true,"internalType":"address","name":"_pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"_requestAmount","type":"uint256"}],"name":"LeftPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_cancelAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_cancelAmountInUno","type":"uint256"}],"name":"LogCancelWithdrawRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_SSRP","type":"address"},{"indexed":true,"internalType":"address","name":"_rewarder","type":"address"},{"indexed":false,"internalType":"address","name":"_currency","type":"address"}],"name":"LogCreateRewarder","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_SSRP","type":"address"},{"indexed":true,"internalType":"address","name":"_syntheticSSRP","type":"address"},{"indexed":true,"internalType":"address","name":"_lpToken","type":"address"}],"name":"LogCreateSyntheticSSRP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_withdrawLpAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_withdrawUnoAmount","type":"uint256"}],"name":"LogLeaveFromPendingSSRP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"LogLpTransferInSSRP","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"address","name":"_migrateTo","type":"address"},{"indexed":false,"internalType":"uint256","name":"_migratedAmount","type":"uint256"}],"name":"LogMigrate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint128","name":"_lastRewardBlock","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"_lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_accUnoPerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_claimAmount","type":"uint256"}],"name":"PolicyClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_SSRP","type":"address"},{"indexed":true,"internalType":"address","name":"_pool","type":"address"}],"name":"RiskPoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_staker","type":"address"},{"indexed":true,"internalType":"address","name":"_pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"StakedInPool","type":"event"},{"inputs":[],"name":"ACC_UNO_PRECISION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LOCK_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKING_START_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelWithdrawRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimAssessor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_currency","type":"address"}],"name":"createRewarder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_currency","type":"address"},{"internalType":"uint256","name":"_rewardMultiplier","type":"uint256"}],"name":"createRiskPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_factory","type":"address"}],"name":"createSyntheticSSRP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"enterInPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"getStakedAmountPerUser","outputs":[{"internalType":"uint256","name":"unoAmount","type":"uint256"},{"internalType":"uint256","name":"lpAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalWithdrawPendingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getWithdrawRequestPerUser","outputs":[{"internalType":"uint256","name":"pendingAmount","type":"uint256"},{"internalType":"uint256","name":"pendingAmountInUno","type":"uint256"},{"internalType":"uint256","name":"originUnoAmount","type":"uint256"},{"internalType":"uint256","name":"requestTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"leaveFromPending","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"leaveFromPoolInPending","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"lpTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrateTo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"pendingUno","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"policyClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"poolInfo","outputs":[{"internalType":"uint128","name":"lastRewardBlock","type":"uint128"},{"internalType":"uint128","name":"accUnoPerShare","type":"uint128"},{"internalType":"uint256","name":"unoMultiplierPerBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riskPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_claimAssessor","type":"address"}],"name":"setClaimAssessor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lockTime","type":"uint256"}],"name":"setLockTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_migrateTo","type":"address"}],"name":"setMigrateTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minLPCapital","type":"uint256"}],"name":"setMinLPCapital","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardMultiplier","type":"uint256"}],"name":"setRewardMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStakingStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"syntheticSSRP","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"lastWithdrawTime","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052620151806005553480156200001857600080fd5b5060405162002f1f38038062002f1f8339810160408190526200003b91620000a8565b6001600081905580546001600160a01b038085166001600160a01b03199283161790925560028054928416929091169190911790556200007f426203f480620000df565b60065550620001049050565b80516001600160a01b0381168114620000a357600080fd5b919050565b60008060408385031215620000bb578182fd5b620000c6836200008b565b9150620000d6602084016200008b565b90509250929050565b60008219821115620000ff57634e487b7160e01b81526011600452602481fd5b500190565b612e0b80620001146000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c80639336f4061161011a578063bc8f8828116100ad578063dcc3e06e1161007c578063dcc3e06e146103f1578063e08c5de1146103f9578063e19e71681461040c578063e3161ddd14610414578063e3824a381461041c576101fb565b8063bc8f8828146103d1578063c4e5dacf146103d9578063c6e89915146103e1578063dba6f962146103e9576101fb565b8063a3bdd632116100e9578063a3bdd63214610382578063ae04d45d1461038a578063af16d6e01461039d578063ba619457146103b0576101fb565b80639336f4061461033157806393b6b86c1461035457806398c6e760146103675780639cdf6c271461036f576101fb565b80635a2f3d091161019257806389919b711161016157806389919b71146103065780638ba04b171461030e5780638da5cb5b146103215780638fd3ab8014610329576101fb565b80635a2f3d09146102b65780635d90bad9146102cd578063736ec05c146102e05780638395206c146102f3576101fb565b80631959a002116101ce5780631959a0021461024e5780632e4a014214610279578063413d9c3a1461028c5780634c032366146102a1576101fb565b80630bd075a1146102005780630e5c011e146102155780630e9ae42014610228578063157f71ed1461023b575b600080fd5b61021361020e36600461260a565b61042f565b005b610213610223366004612421565b610487565b6102136102363660046124e2565b6104e2565b610213610249366004612421565b6107da565b61026161025c366004612421565b61084c565b60405161027093929190612cdd565b60405180910390f35b610213610287366004612522565b61086d565b6102946109f9565b6040516102709190612cc6565b6102a96109ff565b60405161027091906126ed565b6102be610a0e565b60405161027093929190612c7f565b6102136102db36600461260a565b610a2c565b6102136102ee366004612421565b610a7b565b61021361030136600461260a565b610aed565b610294610d6c565b61021361031c36600461256d565b610d78565b6102a9610f04565b610213610f13565b61034461033f366004612421565b6110fc565b6040516102709493929190612cf3565b61021361036236600461260a565b61123a565b6102a96112e9565b61021361037d366004612460565b6112f8565b6102946114a0565b61021361039836600461260a565b611522565b6102136103ab366004612498565b611571565b6103c36103be366004612421565b6116be565b604051610270929190612ccf565b610213611779565b6102a9611a17565b6102a9611a26565b610294611a35565b6102a9611a3b565b610294610407366004612421565b611a4a565b610213611bb4565b610213611caf565b61021361042a36600461260a565b611e45565b6001546001600160a01b031633146104625760405162461bcd60e51b815260040161045990612b39565b60405180910390fd5b600081116104825760405162461bcd60e51b8152600401610459906129ba565b600b55565b6006544210156104a95760405162461bcd60e51b815260040161045990612ba5565b600260005414156104cc5760405162461bcd60e51b815260040161045990612bdc565b60026000556104da81612143565b506001600055565b600260005414156105055760405162461bcd60e51b815260040161045990612bdc565b60026000556008546001600160a01b031633146105345760405162461bcd60e51b815260040161045990612c4a565b6004546001600160a01b0384811691161480159061056057506004546001600160a01b03838116911614155b156107d05761056e83612143565b6001600160a01b03808416600090815260096020526040808220600201546008549151631665744b60e11b815290939190911690632ccae896906105b69088906004016126ed565b60606040518083038186803b1580156105ce57600080fd5b505afa1580156105e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610606919061265d565b505090508281836106179190612d90565b10156106355760405162461bcd60e51b815260040161045990612917565b600a54600090670de0b6b3a76400009061065f90600160801b90046001600160801b031685612d71565b6106699190612d51565b600a54909150670de0b6b3a76400009061069390600160801b90046001600160801b031686612d71565b61069d9190612d51565b6106a79082612d90565b6001600160a01b0387166000908152600960205260409020600101556106cd8484612d90565b6001600160a01b038716600090815260096020526040902060020155600a54670de0b6b3a76400009061071090600160801b90046001600160801b031686612d71565b61071a9190612d51565b6001600160a01b0386166000908152600960205260409020600101546107409190612d39565b6001600160a01b038616600090815260096020526040902060018101919091556002015461076f908590612d39565b6001600160a01b0380871660008181526009602052604090819020600201939093559151908816907fe97af49bf17de46bed3f953a242569bed68114f89f39c1afe4012bba1c5963d4906107c4908890612cc6565b60405180910390a35050505b5050600160005550565b6001546001600160a01b031633146108045760405162461bcd60e51b815260040161045990612b39565b6001600160a01b03811661082a5760405162461bcd60e51b815260040161045990612815565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60096020526000908152604090208054600182015460029092015490919083565b6002546001600160a01b031633146108975760405162461bcd60e51b815260040161045990612b39565b6006544210156108b95760405162461bcd60e51b815260040161045990612ba5565b600260005414156108dc5760405162461bcd60e51b815260040161045990612bdc565b60026000556001600160a01b0382166109075760405162461bcd60e51b815260040161045990612815565b600081116109275760405162461bcd60e51b815260040161045990612a26565b60085460405163172500a160e11b81526000916001600160a01b031690632e4a01429061095a9086908690600401612786565b602060405180830381600087803b15801561097457600080fd5b505af1158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612622565b9050826001600160a01b03167f6420c9536b9a539410a930b1fd8d115dc296d8b71426dcc0ab64f2f736b7d59f826040516109e79190612cc6565b60405180910390a25050600160005550565b60055481565b6004546001600160a01b031681565b600a54600b546001600160801b0380831692600160801b9004169083565b6001546001600160a01b03163314610a565760405162461bcd60e51b815260040161045990612b39565b60008111610a765760405162461bcd60e51b8152600401610459906129f1565b600655565b6001546001600160a01b03163314610aa55760405162461bcd60e51b815260040161045990612b39565b6001600160a01b038116610acb5760405162461bcd60e51b815260040161045990612815565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600654421015610b0f5760405162461bcd60e51b815260040161045990612ba5565b60026000541415610b325760405162461bcd60e51b815260040161045990612bdc565b6002600055610b4033612143565b336000908152600960209081526040808320600201546008548251627a9fd960e91b815292519194936001600160a01b039091169263f53fb2009260048083019392829003018186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190612622565b600854604051631665744b60e11b81529192506000916001600160a01b0390911690632ccae89690610c049033906004016126ed565b60606040518083038186803b158015610c1c57600080fd5b505afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c54919061265d565b5050905083670de0b6b3a7640000838386610c6f9190612d90565b610c799190612d71565b610c839190612d51565b1015610ca15760405162461bcd60e51b815260040161045990612883565b6008546040516323de6d9560e11b81526001600160a01b03909116906347bcdb2a90610cd39033908890600401612786565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b5050336000818152600960205260409081902042905560085490516001600160a01b0390911693509091507f940a14c75c418e7230a2e65567722d2dda5a6713cf71b369bd0fa219fdc1ac5e90610d59908890612cc6565b60405180910390a3505060016000555050565b670de0b6b3a764000081565b6001546001600160a01b03163314610da25760405162461bcd60e51b815260040161045990612b39565b60026000541415610dc55760405162461bcd60e51b815260040161045990612bdc565b60026000556008546001600160a01b031615610df35760405162461bcd60e51b81526004016104599061294e565b604051630d98e31f60e01b81526001600160a01b03841690630d98e31f90610e29908a908a908a908a9030908a906004016127c7565b602060405180830381600087803b158015610e4357600080fd5b505af1158015610e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7b9190612444565b600880546001600160a01b0319166001600160a01b039283161790819055600a80546fffffffffffffffffffffffffffffffff1916436001600160801b0390811691909117169055600b83905560405191169030907f184d7691bf4a73930a21086fa1bdf0ee3075421531a60730288325fd5838021790600090a3505060016000555050505050565b6001546001600160a01b031681565b60026000541415610f365760405162461bcd60e51b815260040161045990612bdc565b60026000556003546001600160a01b0316610f635760405162461bcd60e51b815260040161045990612815565b610f6c33612143565b3360009081526009602052604081206002810154600554915490929190610f939042612d90565b600854600354604051633613302f60e01b81529390921193506000926001600160a01b0391821692633613302f92610fd592339290911690879060040161273e565b602060405180830381600087803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110279190612622565b60035460405163ed59344b60e01b81529192506001600160a01b03169063ed59344b9061105a903390879060040161279f565b600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505033600081815260096020526040808220600281018390556001019190915560035490516001600160a01b0390911693509091507ff0fee1f70845d356d6a3e0baa0944ce846437b6469ea89416dad2cd7067919a4906110ea908590612cc6565b60405180910390a35050600160005550565b6000806000806000600860009054906101000a90046001600160a01b03166001600160a01b031663f53fb2006040518163ffffffff1660e01b815260040160206040518083038186803b15801561115257600080fd5b505afa158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a9190612622565b600854604051631665744b60e11b81529192506001600160a01b031690632ccae896906111bb9089906004016126ed565b60606040518083038186803b1580156111d357600080fd5b505afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b919061265d565b9196509093509150670de0b6b3a76400006112268287612d71565b6112309190612d51565b9350509193509193565b6001546001600160a01b031633146112645760405162461bcd60e51b815260040161045990612b39565b600081116112845760405162461bcd60e51b815260040161045990612c13565b6008546040516324edae1b60e21b81526001600160a01b03909116906393b6b86c906112b4908490600401612cc6565b600060405180830381600087803b1580156112ce57600080fd5b505af11580156112e2573d6000803e3d6000fd5b5050505050565b6003546001600160a01b031681565b6001546001600160a01b031633146113225760405162461bcd60e51b815260040161045990612b39565b600260005414156113455760405162461bcd60e51b815260040161045990612bdc565b60026000556001600160a01b0382166113705760405162461bcd60e51b815260040161045990612a94565b6001600160a01b0381166113965760405162461bcd60e51b81526004016104599061284c565b6008546001600160a01b03166113be5760405162461bcd60e51b815260040161045990612a5d565b6008546040516377b3d99760e01b81526001600160a01b03808416926377b3d997926113f09287921690600401612701565b602060405180830381600087803b15801561140a57600080fd5b505af115801561141e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114429190612444565b600480546001600160a01b0319166001600160a01b03928316179081905560085460405190831692919091169030907f3d2362862a7867eb0f64552c1fa638b6adf3907a7defe349eab238f6a0b2d83190600090a450506001600055565b6008546040805163e95aa8d360e01b815290516000926001600160a01b03169163e95aa8d3916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151d9190612622565b905090565b6001546001600160a01b0316331461154c5760405162461bcd60e51b815260040161045990612b39565b6000811161156c5760405162461bcd60e51b815260040161045990612acb565b600555565b6001546001600160a01b0316331461159b5760405162461bcd60e51b815260040161045990612b39565b600260005414156115be5760405162461bcd60e51b815260040161045990612bdc565b60026000556001600160a01b0382166115e95760405162461bcd60e51b815260040161045990612b70565b6040516369ee745160e01b81526001600160a01b038316906369ee7451906116199086908590309060040161271b565b602060405180830381600087803b15801561163357600080fd5b505af1158015611647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166b9190612444565b600780546001600160a01b0319166001600160a01b03928316179081905560405191169030907f6c409a36847a0a3870deae25f656f4300d45957d2643fc27faab145e19cfcf1b906110ea9085906126ed565b6001600160a01b038082166000908152600960209081526040808320600201546008548251627a9fd960e91b81529251949591948694919092169263f53fb2009260048083019392829003018186803b15801561171a57600080fd5b505afa15801561172e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117529190612622565b9050670de0b6b3a76400006117678284612d71565b6117719190612d51565b925050915091565b60065442101561179b5760405162461bcd60e51b815260040161045990612ba5565b600260005414156117be5760405162461bcd60e51b815260040161045990612bdc565b6002600090815560055433825260096020526040909120546117e09042612d90565b10156117fe5760405162461bcd60e51b815260040161045990612983565b61180733612143565b33600081815260096020526040808220600201546008549151631665744b60e11b815290936001600160a01b0390921691632ccae8969161184b91906004016126ed565b60606040518083038186803b15801561186357600080fd5b505afa158015611877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189b919061265d565b5050600a54909150600090670de0b6b3a7640000906118ca90600160801b90046001600160801b031685612d71565b6118d49190612d51565b600a54909150670de0b6b3a7640000906118fe90600160801b90046001600160801b031684612d71565b6119089190612d51565b6119129082612d90565b3360008181526009602052604080822060010193909355600854925163b20ecd1560e01b8152909283926001600160a01b039091169163b20ecd159161195a916004016126ed565b6040805180830381600087803b15801561197357600080fd5b505af1158015611987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ab919061263a565b90925090506119ba8286612d90565b33600081815260096020526040908190206002019290925590517f617c612e91653c86cd4538e3de94b98c8dd628b41e343380d1cf858f95c0674a90611a039085908590612ccf565b60405180910390a250506001600055505050565b6008546001600160a01b031681565b6002546001600160a01b031681565b60065481565b6007546001600160a01b031681565b600080600860009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a9b57600080fd5b505afa158015611aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad39190612622565b600a549091506001600160801b03600160801b82048116911643118015611af957508115155b15611b5857600a54600090611b17906001600160801b031643612d90565b600b54909150600090611b2a9083612d71565b905083611b3f670de0b6b3a764000083612d71565b611b499190612d51565b611b539084612d0e565b925050505b6001600160a01b03841660009081526009602052604090206002810154600190910154670de0b6b3a7640000611b976001600160801b03851684612d71565b611ba19190612d51565b611bab9190612d90565b95945050505050565b60026000541415611bd75760405162461bcd60e51b815260040161045990612bdc565b600260009081556008546040516306e6829960e51b815282916001600160a01b03169063dcd0532090611c0e9033906004016126ed565b6040805180830381600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5f919061263a565b91509150336001600160a01b03167f09c6481cb228ea7f61ceb67c8e708038eb74bbb68cfcc54a9cfca199087ecfb78383604051611c9e929190612ccf565b60405180910390a250506001600055565b600a546001600160801b0316431115611e4357600854604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015611d0757600080fd5b505afa158015611d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3f9190612622565b90508015611dcf57600a54600090611d60906001600160801b031643612d90565b600b54909150600090611d739083612d71565b905082611d88670de0b6b3a764000083612d71565b611d929190612d51565b600a54611daf9190600160801b90046001600160801b0316612d0e565b600a80546001600160801b03928316600160801b02921691909117905550505b600a80546fffffffffffffffffffffffffffffffff1916436001600160801b0390811691909117918290556040517f982b813c7d00a9ffce9441ba40f429b2e4a35068d75532f496d0c63585c2fa6892611e3992818116928692600160801b900490911690612ca3565b60405180910390a1505b565b600654421015611e675760405162461bcd60e51b815260040161045990612ba5565b60026000541415611e8a5760405162461bcd60e51b815260040161045990612bdc565b600260005580611eac5760405162461bcd60e51b815260040161045990612b02565b611eb4611caf565b6008546040805163e5a6b10f60e01b815290516000926001600160a01b03169163e5a6b10f916004808301926020929190829003018186803b158015611ef957600080fd5b505afa158015611f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f319190612444565b90506000600860009054906101000a90046001600160a01b03166001600160a01b031663f53fb2006040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8357600080fd5b505afa158015611f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbb9190612622565b600854909150611fd890839033906001600160a01b0316866122d5565b600854604051637e348b7d60e01b81526001600160a01b0390911690637e348b7d9061200a9033908790600401612786565b600060405180830381600087803b15801561202457600080fd5b505af1158015612038573d6000803e3d6000fd5b5050600a54670de0b6b3a76400009250839150600160801b90046001600160801b03166120658684612d71565b61206f9190612d71565b6120799190612d51565b6120839190612d51565b336000908152600960205260409020600101546120a09190612d39565b33600090815260096020526040902060010155806120c684670de0b6b3a7640000612d71565b6120d09190612d51565b336000908152600960205260409020600201546120ed9190612d39565b33600081815260096020526040908190206002019290925560085491516001600160a01b03909216917fd3dba7b5565b16b7749db7d1938410a636e3c7a6ea46ed8ce7e259e19f2f3b9f906110ea908790612cc6565b61214b611caf565b6001600160a01b038116600090815260096020526040812060020154600a54909190670de0b6b3a76400009061219190600160801b90046001600160801b031684612d71565b61219b9190612d51565b6001600160a01b038416600090815260096020526040812060010154919250906121c59083612d90565b336000908152600960205260408120600101849055600754919250906001600160a01b0316158015906121f757508115155b156122835760075460405163186e465160e31b81526001600160a01b039091169063c37232889061222e9088908690600401612786565b602060405180830381600087803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122809190612622565b90505b846001600160a01b0316336001600160a01b03167fa0306f61d3fafe13787b78e276cb6b644382854a66cb46daae14227d3ec26797836040516122c69190612cc6565b60405180910390a35050505050565b600080856001600160a01b03166323b872dd8686866040516024016122fc93929190612762565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161234a91906126b4565b6000604051808303816000865af19150503d8060008114612387576040519150601f19603f3d011682016040523d82523d6000602084013e61238c565b606091505b50915091508180156123b65750805115806123b65750808060200190518101906123b6919061254d565b6123d25760405162461bcd60e51b8152600401610459906128ba565b505050505050565b60008083601f8401126123eb578182fd5b50813567ffffffffffffffff811115612402578182fd5b60208301915083602082850101111561241a57600080fd5b9250929050565b600060208284031215612432578081fd5b813561243d81612dbd565b9392505050565b600060208284031215612455578081fd5b815161243d81612dbd565b60008060408385031215612472578081fd5b823561247d81612dbd565b9150602083013561248d81612dbd565b809150509250929050565b6000806000606084860312156124ac578081fd5b83356124b781612dbd565b925060208401356124c781612dbd565b915060408401356124d781612dbd565b809150509250925092565b6000806000606084860312156124f6578283fd5b833561250181612dbd565b9250602084013561251181612dbd565b929592945050506040919091013590565b60008060408385031215612534578182fd5b823561253f81612dbd565b946020939093013593505050565b60006020828403121561255e578081fd5b8151801515811461243d578182fd5b600080600080600080600060a0888a031215612587578283fd5b873567ffffffffffffffff8082111561259e578485fd5b6125aa8b838c016123da565b909950975060208a01359150808211156125c2578485fd5b506125cf8a828b016123da565b90965094505060408801356125e381612dbd565b925060608801356125f381612dbd565b809250506080880135905092959891949750929550565b60006020828403121561261b578081fd5b5035919050565b600060208284031215612633578081fd5b5051919050565b6000806040838503121561264c578182fd5b505080516020909101519092909150565b600080600060608486031215612671578283fd5b8351925060208401519150604084015190509250925092565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251815b818110156126d457602081860181015185830152016126ba565b818111156126e25782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03929092168252602082015260606040820181905260009082015260800190565b6000608082526127db60808301888a61268a565b82810360208401526127ee81878961268a565b9150506001600160a01b038085166040840152808416606084015250979650505050505050565b60208082526013908201527f556e6f52653a207a65726f206164647265737300000000000000000000000000604082015260600190565b6020808252601a908201527f556e6f52653a7a65726f20666163746f72792061646472657373000000000000604082015260600190565b6020808252601f908201527f556e6f52653a20776974686472617720616d6f756e74206f766572666c6f7700604082015260600190565b60208082526031908201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260408201527f616e7366657246726f6d206661696c6564000000000000000000000000000000606082015260800190565b60208082526017908201527f556e6f52653a2062616c616e6365206f766572666c6f77000000000000000000604082015260600190565b6020808252818101527f556e6f52653a207269736b20706f6f6c206372656174656420616c7265616479604082015260600190565b60208082526012908201527f556e6f52653a204c6f636b65642074696d650000000000000000000000000000604082015260600190565b60208082526011908201527f556e6f52653a207a65726f2076616c7565000000000000000000000000000000604082015260600190565b6020808252818101527f556e6f52653a206e6f7420616c6c6f77207a65726f2073746172742074696d65604082015260600190565b60208082526012908201527f556e6f52653a207a65726f20616d6f756e740000000000000000000000000000604082015260600190565b6020808252601b908201527f556e6f52653a7a65726f204c5020746f6b656e20616464726573730000000000604082015260600190565b60208082526019908201527f556e6f52653a207a65726f206f776e6572206164647265737300000000000000604082015260600190565b6020808252601f908201527f556e6f52653a206e6f7420616c6c6f77207a65726f206c6f636b2074696d6500604082015260600190565b60208082526011908201527f556e6f52653a205a45524f2056616c7565000000000000000000000000000000604082015260600190565b60208082526010908201527f556e6f52653a20466f7262696464656e00000000000000000000000000000000604082015260600190565b6020808252818101527f556e6f52653a20726577617264657220666163746f7279206e6f206578697374604082015260600190565b60208082526019908201527f556e6f52653a206e6f7420617661696c61626c652074696d6500000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252601b908201527f556e6f52653a206e6f7420616c6c6f77207a65726f2076616c75650000000000604082015260600190565b6020808252818101527f556e6f52653a206e6f7420616c6c6f77206f7468657273207472616e73666572604082015260600190565b6001600160801b039384168152919092166020820152604081019190915260600190565b6001600160801b0393841681526020810192909252909116604082015260600190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b60006001600160801b03808316818516808303821115612d3057612d30612da7565b01949350505050565b60008219821115612d4c57612d4c612da7565b500190565b600082612d6c57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612d8b57612d8b612da7565b500290565b600082821015612da257612da2612da7565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612dd257600080fd5b5056fea26469706673582212204b84feadf47b5c3f0986ff9deef2077a7eadaa903b0aa631febc80576797bd9664736f6c634300080000330000000000000000000000008c3d5c9538256dab8eb4b197370574340fe3254f0000000000000000000000008c3d5c9538256dab8eb4b197370574340fe3254f
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101fb5760003560e01c80639336f4061161011a578063bc8f8828116100ad578063dcc3e06e1161007c578063dcc3e06e146103f1578063e08c5de1146103f9578063e19e71681461040c578063e3161ddd14610414578063e3824a381461041c576101fb565b8063bc8f8828146103d1578063c4e5dacf146103d9578063c6e89915146103e1578063dba6f962146103e9576101fb565b8063a3bdd632116100e9578063a3bdd63214610382578063ae04d45d1461038a578063af16d6e01461039d578063ba619457146103b0576101fb565b80639336f4061461033157806393b6b86c1461035457806398c6e760146103675780639cdf6c271461036f576101fb565b80635a2f3d091161019257806389919b711161016157806389919b71146103065780638ba04b171461030e5780638da5cb5b146103215780638fd3ab8014610329576101fb565b80635a2f3d09146102b65780635d90bad9146102cd578063736ec05c146102e05780638395206c146102f3576101fb565b80631959a002116101ce5780631959a0021461024e5780632e4a014214610279578063413d9c3a1461028c5780634c032366146102a1576101fb565b80630bd075a1146102005780630e5c011e146102155780630e9ae42014610228578063157f71ed1461023b575b600080fd5b61021361020e36600461260a565b61042f565b005b610213610223366004612421565b610487565b6102136102363660046124e2565b6104e2565b610213610249366004612421565b6107da565b61026161025c366004612421565b61084c565b60405161027093929190612cdd565b60405180910390f35b610213610287366004612522565b61086d565b6102946109f9565b6040516102709190612cc6565b6102a96109ff565b60405161027091906126ed565b6102be610a0e565b60405161027093929190612c7f565b6102136102db36600461260a565b610a2c565b6102136102ee366004612421565b610a7b565b61021361030136600461260a565b610aed565b610294610d6c565b61021361031c36600461256d565b610d78565b6102a9610f04565b610213610f13565b61034461033f366004612421565b6110fc565b6040516102709493929190612cf3565b61021361036236600461260a565b61123a565b6102a96112e9565b61021361037d366004612460565b6112f8565b6102946114a0565b61021361039836600461260a565b611522565b6102136103ab366004612498565b611571565b6103c36103be366004612421565b6116be565b604051610270929190612ccf565b610213611779565b6102a9611a17565b6102a9611a26565b610294611a35565b6102a9611a3b565b610294610407366004612421565b611a4a565b610213611bb4565b610213611caf565b61021361042a36600461260a565b611e45565b6001546001600160a01b031633146104625760405162461bcd60e51b815260040161045990612b39565b60405180910390fd5b600081116104825760405162461bcd60e51b8152600401610459906129ba565b600b55565b6006544210156104a95760405162461bcd60e51b815260040161045990612ba5565b600260005414156104cc5760405162461bcd60e51b815260040161045990612bdc565b60026000556104da81612143565b506001600055565b600260005414156105055760405162461bcd60e51b815260040161045990612bdc565b60026000556008546001600160a01b031633146105345760405162461bcd60e51b815260040161045990612c4a565b6004546001600160a01b0384811691161480159061056057506004546001600160a01b03838116911614155b156107d05761056e83612143565b6001600160a01b03808416600090815260096020526040808220600201546008549151631665744b60e11b815290939190911690632ccae896906105b69088906004016126ed565b60606040518083038186803b1580156105ce57600080fd5b505afa1580156105e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610606919061265d565b505090508281836106179190612d90565b10156106355760405162461bcd60e51b815260040161045990612917565b600a54600090670de0b6b3a76400009061065f90600160801b90046001600160801b031685612d71565b6106699190612d51565b600a54909150670de0b6b3a76400009061069390600160801b90046001600160801b031686612d71565b61069d9190612d51565b6106a79082612d90565b6001600160a01b0387166000908152600960205260409020600101556106cd8484612d90565b6001600160a01b038716600090815260096020526040902060020155600a54670de0b6b3a76400009061071090600160801b90046001600160801b031686612d71565b61071a9190612d51565b6001600160a01b0386166000908152600960205260409020600101546107409190612d39565b6001600160a01b038616600090815260096020526040902060018101919091556002015461076f908590612d39565b6001600160a01b0380871660008181526009602052604090819020600201939093559151908816907fe97af49bf17de46bed3f953a242569bed68114f89f39c1afe4012bba1c5963d4906107c4908890612cc6565b60405180910390a35050505b5050600160005550565b6001546001600160a01b031633146108045760405162461bcd60e51b815260040161045990612b39565b6001600160a01b03811661082a5760405162461bcd60e51b815260040161045990612815565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60096020526000908152604090208054600182015460029092015490919083565b6002546001600160a01b031633146108975760405162461bcd60e51b815260040161045990612b39565b6006544210156108b95760405162461bcd60e51b815260040161045990612ba5565b600260005414156108dc5760405162461bcd60e51b815260040161045990612bdc565b60026000556001600160a01b0382166109075760405162461bcd60e51b815260040161045990612815565b600081116109275760405162461bcd60e51b815260040161045990612a26565b60085460405163172500a160e11b81526000916001600160a01b031690632e4a01429061095a9086908690600401612786565b602060405180830381600087803b15801561097457600080fd5b505af1158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190612622565b9050826001600160a01b03167f6420c9536b9a539410a930b1fd8d115dc296d8b71426dcc0ab64f2f736b7d59f826040516109e79190612cc6565b60405180910390a25050600160005550565b60055481565b6004546001600160a01b031681565b600a54600b546001600160801b0380831692600160801b9004169083565b6001546001600160a01b03163314610a565760405162461bcd60e51b815260040161045990612b39565b60008111610a765760405162461bcd60e51b8152600401610459906129f1565b600655565b6001546001600160a01b03163314610aa55760405162461bcd60e51b815260040161045990612b39565b6001600160a01b038116610acb5760405162461bcd60e51b815260040161045990612815565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600654421015610b0f5760405162461bcd60e51b815260040161045990612ba5565b60026000541415610b325760405162461bcd60e51b815260040161045990612bdc565b6002600055610b4033612143565b336000908152600960209081526040808320600201546008548251627a9fd960e91b815292519194936001600160a01b039091169263f53fb2009260048083019392829003018186803b158015610b9657600080fd5b505afa158015610baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bce9190612622565b600854604051631665744b60e11b81529192506000916001600160a01b0390911690632ccae89690610c049033906004016126ed565b60606040518083038186803b158015610c1c57600080fd5b505afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c54919061265d565b5050905083670de0b6b3a7640000838386610c6f9190612d90565b610c799190612d71565b610c839190612d51565b1015610ca15760405162461bcd60e51b815260040161045990612883565b6008546040516323de6d9560e11b81526001600160a01b03909116906347bcdb2a90610cd39033908890600401612786565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b5050336000818152600960205260409081902042905560085490516001600160a01b0390911693509091507f940a14c75c418e7230a2e65567722d2dda5a6713cf71b369bd0fa219fdc1ac5e90610d59908890612cc6565b60405180910390a3505060016000555050565b670de0b6b3a764000081565b6001546001600160a01b03163314610da25760405162461bcd60e51b815260040161045990612b39565b60026000541415610dc55760405162461bcd60e51b815260040161045990612bdc565b60026000556008546001600160a01b031615610df35760405162461bcd60e51b81526004016104599061294e565b604051630d98e31f60e01b81526001600160a01b03841690630d98e31f90610e29908a908a908a908a9030908a906004016127c7565b602060405180830381600087803b158015610e4357600080fd5b505af1158015610e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7b9190612444565b600880546001600160a01b0319166001600160a01b039283161790819055600a80546fffffffffffffffffffffffffffffffff1916436001600160801b0390811691909117169055600b83905560405191169030907f184d7691bf4a73930a21086fa1bdf0ee3075421531a60730288325fd5838021790600090a3505060016000555050505050565b6001546001600160a01b031681565b60026000541415610f365760405162461bcd60e51b815260040161045990612bdc565b60026000556003546001600160a01b0316610f635760405162461bcd60e51b815260040161045990612815565b610f6c33612143565b3360009081526009602052604081206002810154600554915490929190610f939042612d90565b600854600354604051633613302f60e01b81529390921193506000926001600160a01b0391821692633613302f92610fd592339290911690879060040161273e565b602060405180830381600087803b158015610fef57600080fd5b505af1158015611003573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110279190612622565b60035460405163ed59344b60e01b81529192506001600160a01b03169063ed59344b9061105a903390879060040161279f565b600060405180830381600087803b15801561107457600080fd5b505af1158015611088573d6000803e3d6000fd5b505033600081815260096020526040808220600281018390556001019190915560035490516001600160a01b0390911693509091507ff0fee1f70845d356d6a3e0baa0944ce846437b6469ea89416dad2cd7067919a4906110ea908590612cc6565b60405180910390a35050600160005550565b6000806000806000600860009054906101000a90046001600160a01b03166001600160a01b031663f53fb2006040518163ffffffff1660e01b815260040160206040518083038186803b15801561115257600080fd5b505afa158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061118a9190612622565b600854604051631665744b60e11b81529192506001600160a01b031690632ccae896906111bb9089906004016126ed565b60606040518083038186803b1580156111d357600080fd5b505afa1580156111e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120b919061265d565b9196509093509150670de0b6b3a76400006112268287612d71565b6112309190612d51565b9350509193509193565b6001546001600160a01b031633146112645760405162461bcd60e51b815260040161045990612b39565b600081116112845760405162461bcd60e51b815260040161045990612c13565b6008546040516324edae1b60e21b81526001600160a01b03909116906393b6b86c906112b4908490600401612cc6565b600060405180830381600087803b1580156112ce57600080fd5b505af11580156112e2573d6000803e3d6000fd5b5050505050565b6003546001600160a01b031681565b6001546001600160a01b031633146113225760405162461bcd60e51b815260040161045990612b39565b600260005414156113455760405162461bcd60e51b815260040161045990612bdc565b60026000556001600160a01b0382166113705760405162461bcd60e51b815260040161045990612a94565b6001600160a01b0381166113965760405162461bcd60e51b81526004016104599061284c565b6008546001600160a01b03166113be5760405162461bcd60e51b815260040161045990612a5d565b6008546040516377b3d99760e01b81526001600160a01b03808416926377b3d997926113f09287921690600401612701565b602060405180830381600087803b15801561140a57600080fd5b505af115801561141e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114429190612444565b600480546001600160a01b0319166001600160a01b03928316179081905560085460405190831692919091169030907f3d2362862a7867eb0f64552c1fa638b6adf3907a7defe349eab238f6a0b2d83190600090a450506001600055565b6008546040805163e95aa8d360e01b815290516000926001600160a01b03169163e95aa8d3916004808301926020929190829003018186803b1580156114e557600080fd5b505afa1580156114f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151d9190612622565b905090565b6001546001600160a01b0316331461154c5760405162461bcd60e51b815260040161045990612b39565b6000811161156c5760405162461bcd60e51b815260040161045990612acb565b600555565b6001546001600160a01b0316331461159b5760405162461bcd60e51b815260040161045990612b39565b600260005414156115be5760405162461bcd60e51b815260040161045990612bdc565b60026000556001600160a01b0382166115e95760405162461bcd60e51b815260040161045990612b70565b6040516369ee745160e01b81526001600160a01b038316906369ee7451906116199086908590309060040161271b565b602060405180830381600087803b15801561163357600080fd5b505af1158015611647573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166b9190612444565b600780546001600160a01b0319166001600160a01b03928316179081905560405191169030907f6c409a36847a0a3870deae25f656f4300d45957d2643fc27faab145e19cfcf1b906110ea9085906126ed565b6001600160a01b038082166000908152600960209081526040808320600201546008548251627a9fd960e91b81529251949591948694919092169263f53fb2009260048083019392829003018186803b15801561171a57600080fd5b505afa15801561172e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117529190612622565b9050670de0b6b3a76400006117678284612d71565b6117719190612d51565b925050915091565b60065442101561179b5760405162461bcd60e51b815260040161045990612ba5565b600260005414156117be5760405162461bcd60e51b815260040161045990612bdc565b6002600090815560055433825260096020526040909120546117e09042612d90565b10156117fe5760405162461bcd60e51b815260040161045990612983565b61180733612143565b33600081815260096020526040808220600201546008549151631665744b60e11b815290936001600160a01b0390921691632ccae8969161184b91906004016126ed565b60606040518083038186803b15801561186357600080fd5b505afa158015611877573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189b919061265d565b5050600a54909150600090670de0b6b3a7640000906118ca90600160801b90046001600160801b031685612d71565b6118d49190612d51565b600a54909150670de0b6b3a7640000906118fe90600160801b90046001600160801b031684612d71565b6119089190612d51565b6119129082612d90565b3360008181526009602052604080822060010193909355600854925163b20ecd1560e01b8152909283926001600160a01b039091169163b20ecd159161195a916004016126ed565b6040805180830381600087803b15801561197357600080fd5b505af1158015611987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ab919061263a565b90925090506119ba8286612d90565b33600081815260096020526040908190206002019290925590517f617c612e91653c86cd4538e3de94b98c8dd628b41e343380d1cf858f95c0674a90611a039085908590612ccf565b60405180910390a250506001600055505050565b6008546001600160a01b031681565b6002546001600160a01b031681565b60065481565b6007546001600160a01b031681565b600080600860009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611a9b57600080fd5b505afa158015611aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad39190612622565b600a549091506001600160801b03600160801b82048116911643118015611af957508115155b15611b5857600a54600090611b17906001600160801b031643612d90565b600b54909150600090611b2a9083612d71565b905083611b3f670de0b6b3a764000083612d71565b611b499190612d51565b611b539084612d0e565b925050505b6001600160a01b03841660009081526009602052604090206002810154600190910154670de0b6b3a7640000611b976001600160801b03851684612d71565b611ba19190612d51565b611bab9190612d90565b95945050505050565b60026000541415611bd75760405162461bcd60e51b815260040161045990612bdc565b600260009081556008546040516306e6829960e51b815282916001600160a01b03169063dcd0532090611c0e9033906004016126ed565b6040805180830381600087803b158015611c2757600080fd5b505af1158015611c3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5f919061263a565b91509150336001600160a01b03167f09c6481cb228ea7f61ceb67c8e708038eb74bbb68cfcc54a9cfca199087ecfb78383604051611c9e929190612ccf565b60405180910390a250506001600055565b600a546001600160801b0316431115611e4357600854604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015611d0757600080fd5b505afa158015611d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3f9190612622565b90508015611dcf57600a54600090611d60906001600160801b031643612d90565b600b54909150600090611d739083612d71565b905082611d88670de0b6b3a764000083612d71565b611d929190612d51565b600a54611daf9190600160801b90046001600160801b0316612d0e565b600a80546001600160801b03928316600160801b02921691909117905550505b600a80546fffffffffffffffffffffffffffffffff1916436001600160801b0390811691909117918290556040517f982b813c7d00a9ffce9441ba40f429b2e4a35068d75532f496d0c63585c2fa6892611e3992818116928692600160801b900490911690612ca3565b60405180910390a1505b565b600654421015611e675760405162461bcd60e51b815260040161045990612ba5565b60026000541415611e8a5760405162461bcd60e51b815260040161045990612bdc565b600260005580611eac5760405162461bcd60e51b815260040161045990612b02565b611eb4611caf565b6008546040805163e5a6b10f60e01b815290516000926001600160a01b03169163e5a6b10f916004808301926020929190829003018186803b158015611ef957600080fd5b505afa158015611f0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f319190612444565b90506000600860009054906101000a90046001600160a01b03166001600160a01b031663f53fb2006040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8357600080fd5b505afa158015611f97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbb9190612622565b600854909150611fd890839033906001600160a01b0316866122d5565b600854604051637e348b7d60e01b81526001600160a01b0390911690637e348b7d9061200a9033908790600401612786565b600060405180830381600087803b15801561202457600080fd5b505af1158015612038573d6000803e3d6000fd5b5050600a54670de0b6b3a76400009250839150600160801b90046001600160801b03166120658684612d71565b61206f9190612d71565b6120799190612d51565b6120839190612d51565b336000908152600960205260409020600101546120a09190612d39565b33600090815260096020526040902060010155806120c684670de0b6b3a7640000612d71565b6120d09190612d51565b336000908152600960205260409020600201546120ed9190612d39565b33600081815260096020526040908190206002019290925560085491516001600160a01b03909216917fd3dba7b5565b16b7749db7d1938410a636e3c7a6ea46ed8ce7e259e19f2f3b9f906110ea908790612cc6565b61214b611caf565b6001600160a01b038116600090815260096020526040812060020154600a54909190670de0b6b3a76400009061219190600160801b90046001600160801b031684612d71565b61219b9190612d51565b6001600160a01b038416600090815260096020526040812060010154919250906121c59083612d90565b336000908152600960205260408120600101849055600754919250906001600160a01b0316158015906121f757508115155b156122835760075460405163186e465160e31b81526001600160a01b039091169063c37232889061222e9088908690600401612786565b602060405180830381600087803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122809190612622565b90505b846001600160a01b0316336001600160a01b03167fa0306f61d3fafe13787b78e276cb6b644382854a66cb46daae14227d3ec26797836040516122c69190612cc6565b60405180910390a35050505050565b600080856001600160a01b03166323b872dd8686866040516024016122fc93929190612762565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161234a91906126b4565b6000604051808303816000865af19150503d8060008114612387576040519150601f19603f3d011682016040523d82523d6000602084013e61238c565b606091505b50915091508180156123b65750805115806123b65750808060200190518101906123b6919061254d565b6123d25760405162461bcd60e51b8152600401610459906128ba565b505050505050565b60008083601f8401126123eb578182fd5b50813567ffffffffffffffff811115612402578182fd5b60208301915083602082850101111561241a57600080fd5b9250929050565b600060208284031215612432578081fd5b813561243d81612dbd565b9392505050565b600060208284031215612455578081fd5b815161243d81612dbd565b60008060408385031215612472578081fd5b823561247d81612dbd565b9150602083013561248d81612dbd565b809150509250929050565b6000806000606084860312156124ac578081fd5b83356124b781612dbd565b925060208401356124c781612dbd565b915060408401356124d781612dbd565b809150509250925092565b6000806000606084860312156124f6578283fd5b833561250181612dbd565b9250602084013561251181612dbd565b929592945050506040919091013590565b60008060408385031215612534578182fd5b823561253f81612dbd565b946020939093013593505050565b60006020828403121561255e578081fd5b8151801515811461243d578182fd5b600080600080600080600060a0888a031215612587578283fd5b873567ffffffffffffffff8082111561259e578485fd5b6125aa8b838c016123da565b909950975060208a01359150808211156125c2578485fd5b506125cf8a828b016123da565b90965094505060408801356125e381612dbd565b925060608801356125f381612dbd565b809250506080880135905092959891949750929550565b60006020828403121561261b578081fd5b5035919050565b600060208284031215612633578081fd5b5051919050565b6000806040838503121561264c578182fd5b505080516020909101519092909150565b600080600060608486031215612671578283fd5b8351925060208401519150604084015190509250925092565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b60008251815b818110156126d457602081860181015185830152016126ba565b818111156126e25782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b039384168152919092166020820152901515604082015260600190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b03929092168252602082015260606040820181905260009082015260800190565b6000608082526127db60808301888a61268a565b82810360208401526127ee81878961268a565b9150506001600160a01b038085166040840152808416606084015250979650505050505050565b60208082526013908201527f556e6f52653a207a65726f206164647265737300000000000000000000000000604082015260600190565b6020808252601a908201527f556e6f52653a7a65726f20666163746f72792061646472657373000000000000604082015260600190565b6020808252601f908201527f556e6f52653a20776974686472617720616d6f756e74206f766572666c6f7700604082015260600190565b60208082526031908201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260408201527f616e7366657246726f6d206661696c6564000000000000000000000000000000606082015260800190565b60208082526017908201527f556e6f52653a2062616c616e6365206f766572666c6f77000000000000000000604082015260600190565b6020808252818101527f556e6f52653a207269736b20706f6f6c206372656174656420616c7265616479604082015260600190565b60208082526012908201527f556e6f52653a204c6f636b65642074696d650000000000000000000000000000604082015260600190565b60208082526011908201527f556e6f52653a207a65726f2076616c7565000000000000000000000000000000604082015260600190565b6020808252818101527f556e6f52653a206e6f7420616c6c6f77207a65726f2073746172742074696d65604082015260600190565b60208082526012908201527f556e6f52653a207a65726f20616d6f756e740000000000000000000000000000604082015260600190565b6020808252601b908201527f556e6f52653a7a65726f204c5020746f6b656e20616464726573730000000000604082015260600190565b60208082526019908201527f556e6f52653a207a65726f206f776e6572206164647265737300000000000000604082015260600190565b6020808252601f908201527f556e6f52653a206e6f7420616c6c6f77207a65726f206c6f636b2074696d6500604082015260600190565b60208082526011908201527f556e6f52653a205a45524f2056616c7565000000000000000000000000000000604082015260600190565b60208082526010908201527f556e6f52653a20466f7262696464656e00000000000000000000000000000000604082015260600190565b6020808252818101527f556e6f52653a20726577617264657220666163746f7279206e6f206578697374604082015260600190565b60208082526019908201527f556e6f52653a206e6f7420617661696c61626c652074696d6500000000000000604082015260600190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252601b908201527f556e6f52653a206e6f7420616c6c6f77207a65726f2076616c75650000000000604082015260600190565b6020808252818101527f556e6f52653a206e6f7420616c6c6f77206f7468657273207472616e73666572604082015260600190565b6001600160801b039384168152919092166020820152604081019190915260600190565b6001600160801b0393841681526020810192909252909116604082015260600190565b90815260200190565b918252602082015260400190565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b60006001600160801b03808316818516808303821115612d3057612d30612da7565b01949350505050565b60008219821115612d4c57612d4c612da7565b500190565b600082612d6c57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612d8b57612d8b612da7565b500290565b600082821015612da257612da2612da7565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612dd257600080fd5b5056fea26469706673582212204b84feadf47b5c3f0986ff9deef2077a7eadaa903b0aa631febc80576797bd9664736f6c63430008000033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008c3d5c9538256dab8eb4b197370574340fe3254f0000000000000000000000008c3d5c9538256dab8eb4b197370574340fe3254f
-----Decoded View---------------
Arg [0] : _owner (address): 0x8c3d5c9538256DAB8Eb4B197370574340fe3254F
Arg [1] : _claimAssessor (address): 0x8c3d5c9538256DAB8Eb4B197370574340fe3254F
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000008c3d5c9538256dab8eb4b197370574340fe3254f
Arg [1] : 0000000000000000000000008c3d5c9538256dab8eb4b197370574340fe3254f
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.