Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 8 from a total of 8 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Buy | 18587229 | 839 days ago | IN | 0.02559377 ETH | 0.00486306 | ||||
| Buy | 18272218 | 883 days ago | IN | 0.00087466 ETH | 0.00221542 | ||||
| Buy | 18079988 | 910 days ago | IN | 0.02 ETH | 0.00171717 | ||||
| Buy | 18042188 | 915 days ago | IN | 0.005 ETH | 0.00421003 | ||||
| Buy | 18042147 | 915 days ago | IN | 0.001 ETH | 0.00472165 | ||||
| Set Cap | 18039824 | 915 days ago | IN | 0 ETH | 0.00031367 | ||||
| Set Cap | 18039822 | 915 days ago | IN | 0 ETH | 0.00037944 | ||||
| Transfer Ownersh... | 18024790 | 917 days ago | IN | 0 ETH | 0.0004827 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 19713033 | 681 days ago | 0.05246843 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Presale
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-08-30
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;
/**
* @dev Wrappers over Solidity's arithmetic operations.
*
* NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking.
*/
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b > a) return (false, 0);
return (true, a - b);
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, 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 (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a / b);
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a % b);
}
/**
* @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) {
require(b <= a, 'SafeMath: subtraction overflow');
return a - b;
}
/**
* @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) {
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, reverting 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) {
require(b > 0, 'SafeMath: division by zero');
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting 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) {
require(b > 0, 'SafeMath: modulo by zero');
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* 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);
return a - b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryDiv}.
*
* 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);
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* 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 Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @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);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) 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 a `value` amount of tokens 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 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}
abstract contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() public {
owner = msg.sender;
emit OwnershipTransferred(address(0), msg.sender);
}
modifier onlyOwner() {
require(owner == msg.sender, 'Ownable: caller is not the 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;
}
}
interface AggregatorV3Interface {
function decimals() external view returns (uint8);
function description() external view returns (string memory);
function version() external view returns (uint256);
function getRoundData(
uint80 _roundId
)
external
view
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
function latestRoundData()
external
view
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
}
contract Presale is Ownable {
using SafeMath for uint;
struct UserInfo {
uint fcBought;
uint fcClaimed;
bool isBuyer;
uint usdt;
uint eth;
bool isRefundable;
}
mapping(address => UserInfo) public userInfo;
// Fri Sep 01 2023 00:00:00 GMT+0000
uint public startTime = 1693526400;
struct PresaleStage {
uint period;
uint rateUsdt;
}
PresaleStage[] public presaleStage;
bool public isClaimable;
// total FC sold
uint public totalFcSold;
// 50000 usdt
uint public maxBuyUsdtAmount = 50000 * 1e6;
// 30 eth
uint public maxBuyEthAmount = 30 * 1e18;
// 2.5 millions usdt
uint public softCap = 2500000 * 1e6;
// 20 millions usdt
uint public hardCap = 20000000 * 1e6;
// total investors
uint public totalContributors;
uint public totalEth;
uint public totalUsdt;
// Furr coin token
IERC20 public token;
IERC20 public Usdt;
AggregatorV3Interface ethUsdtFeed;
constructor(address _token, address _usdt, address _feed) public {
require(_token != address(0), 'Invalid token address');
token = IERC20(_token);
Usdt = IERC20(_usdt);
ethUsdtFeed = AggregatorV3Interface(_feed);
addStage(2 weeks, 0.00001 * 1e6);
addStage(2 weeks, 0.0001 * 1e6);
addStage(4 weeks, 0.001 * 1e6);
addStage(4 weeks, 0.01 * 1e6);
}
function addStage(uint _period, uint _rateUsdt) public onlyOwner {
presaleStage.push(PresaleStage({period: _period, rateUsdt: _rateUsdt}));
}
function updateStage(uint _stage, uint _period, uint _rateUsdt) public onlyOwner {
(uint _currentStage, , , ) = currentPresaleState();
require(_stage > _currentStage || block.timestamp < startTime, 'The stage was already started');
presaleStage[_stage].period = _period;
presaleStage[_stage].rateUsdt = _rateUsdt;
}
function stageLength() public view returns (uint) {
return presaleStage.length;
}
function currentPresaleState() public view returns (uint, uint, uint, uint) {
uint currentTime = block.timestamp;
if (currentTime < startTime) {
return (0, 0, startTime, presaleStage[0].rateUsdt);
}
uint length = stageLength();
uint stageStartTime = startTime;
uint stageEndTime;
for (uint i = 0; i < length; i++) {
stageEndTime = stageStartTime.add(presaleStage[i].period);
if (stageStartTime <= currentTime && currentTime <= stageEndTime) {
return (i, stageStartTime, stageEndTime, presaleStage[i].rateUsdt);
}
stageStartTime = stageEndTime;
}
return (length, 0, block.timestamp, 0);
}
function getEthUsdtPrice() public view returns (int) {
(, int price, , , ) = ethUsdtFeed.latestRoundData();
return price;
}
function buy(uint _usdtAmount) public payable {
require(block.timestamp > startTime, 'Presale is not started');
address _user = msg.sender;
UserInfo storage user = userInfo[_user];
require(user.eth + msg.value <= maxBuyEthAmount, 'Max buy eth!');
require(user.usdt + _usdtAmount <= maxBuyUsdtAmount, 'Max buy Usdt!');
(, , , uint _rateUsdt) = currentPresaleState();
if (_usdtAmount > 0) {
Usdt.transferFrom(_user, address(this), _usdtAmount);
}
uint _fcBoughtUsdt = _usdtAmount.mul(1e18).div(_rateUsdt);
int ethPrice = getEthUsdtPrice();
uint _fcBoughtEth = msg.value.mul(1e6).div(_rateUsdt).mul(uint(ethPrice)).div(1e8);
uint _fcBought = _fcBoughtUsdt + _fcBoughtEth;
totalFcSold = totalFcSold.add(_fcBought);
user.fcBought += _fcBought;
if (user.isBuyer == false) {
user.isBuyer = true;
totalContributors += 1;
}
totalUsdt += _usdtAmount;
totalEth += msg.value;
user.usdt += _usdtAmount;
user.eth += msg.value;
}
function toogleClaim() public onlyOwner {
isClaimable = !isClaimable;
}
function claim() public {
require(isClaimable, 'Not claimable');
UserInfo storage user = userInfo[msg.sender];
uint unclaimed = user.fcBought.sub(user.fcClaimed);
require(unclaimed > 0, 'No amount to claim');
require(unclaimed < token.balanceOf(address(this)), 'Insufficient token balance');
token.transfer(msg.sender, unclaimed);
user.fcClaimed += unclaimed;
totalFcSold += unclaimed;
}
function setStartTime(uint _startTime) public onlyOwner {
startTime = _startTime;
}
function setMaxBuyAmount(uint _maxBuyUsdtAmount, uint _maxBuyEthAmount) public onlyOwner {
maxBuyUsdtAmount = _maxBuyUsdtAmount;
maxBuyEthAmount = _maxBuyEthAmount;
}
function setCap(uint _softCap, uint _hardCap) public onlyOwner {
softCap = _softCap;
hardCap = _hardCap;
}
// withdraw ETH
function withdrawFund(uint _amount, address _recipient) public onlyOwner {
uint balance = address(this).balance;
if (balance < _amount) {
_amount = balance;
}
payable(_recipient).transfer(_amount);
}
// withdarw usdt and fc
function withdrawToken(uint _amount, address _recipient) public onlyOwner {
uint balance = token.balanceOf(address(this));
if (balance < _amount) {
_amount = balance;
}
token.transfer(_recipient, _amount);
}
function setRefundable(address _user) public onlyOwner {
UserInfo storage user = userInfo[_user];
user.isRefundable = true;
}
// refund USDT for users who can't get token after presale finished
function refundUsdt(uint _amount) public {
UserInfo storage user = userInfo[msg.sender];
require(user.isRefundable, 'Not refundable');
require(user.usdt - _amount >= 0);
user.usdt = user.usdt - _amount;
uint balance = token.balanceOf(address(this));
if (balance < _amount) {
_amount = balance;
}
if (_amount > 0) {
token.transfer(msg.sender, _amount);
}
}
// refund ETH for users who can't get token after presale finished
function refundEth(uint _amount) public {
UserInfo storage user = userInfo[msg.sender];
require(user.isRefundable, 'Not refundable');
require(user.eth - _amount >= 0);
user.eth = user.eth - _amount;
uint balance = address(this).balance;
if (balance < _amount) {
_amount = balance;
}
if (_amount > 0) {
payable(msg.sender).transfer(_amount);
}
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_usdt","type":"address"},{"internalType":"address","name":"_feed","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"Usdt","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"uint256","name":"_rateUsdt","type":"uint256"}],"name":"addStage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_usdtAmount","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentPresaleState","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEthUsdtPrice","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hardCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyEthAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyUsdtAmount","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":"uint256","name":"","type":"uint256"}],"name":"presaleStage","outputs":[{"internalType":"uint256","name":"period","type":"uint256"},{"internalType":"uint256","name":"rateUsdt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"refundEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"refundUsdt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_softCap","type":"uint256"},{"internalType":"uint256","name":"_hardCap","type":"uint256"}],"name":"setCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxBuyUsdtAmount","type":"uint256"},{"internalType":"uint256","name":"_maxBuyEthAmount","type":"uint256"}],"name":"setMaxBuyAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"setRefundable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"softCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stageLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toogleClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalContributors","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalEth","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFcSold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUsdt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stage","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"uint256","name":"_rateUsdt","type":"uint256"}],"name":"updateStage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"fcBought","type":"uint256"},{"internalType":"uint256","name":"fcClaimed","type":"uint256"},{"internalType":"bool","name":"isBuyer","type":"bool"},{"internalType":"uint256","name":"usdt","type":"uint256"},{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"bool","name":"isRefundable","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"withdrawFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526364f12980600255640ba43b74006006556801a055690d9db80000600755650246139ca8006008556512309ce540006009553480156200004357600080fd5b5060405162001a9f38038062001a9f833981810160405260608110156200006957600080fd5b5080516020820151604092830151600080546001600160a01b0319163390811782559451939492939192917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600160a01b03831662000115576040805162461bcd60e51b815260206004820152601560248201527f496e76616c696420746f6b656e20616464726573730000000000000000000000604482015290519081900360640190fd5b600d80546001600160a01b038086166001600160a01b031992831617909255600e8054858416908316179055600f8054928416929091169190911790556200016262127500600a6200019d565b620001726212750060646200019d565b620001836224ea006103e86200019d565b620001946224ea006127106200019d565b50505062000275565b6000546001600160a01b03163314620001fd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60408051808201909152918252602082019081526003805460018101825560009190915291517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600290930292830155517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c90910155565b61181a80620002856000396000f3fe6080604052600436106101e75760003560e01c8063b6dd591311610102578063dcc6e7ad11610095578063f7abf33711610064578063f7abf33714610625578063fb86a40414610658578063fc0c546a1461066d578063fd152d8414610682576101ee565b8063dcc6e7ad1461059e578063eaea5a40146105c8578063f251fc8c146105dd578063f2fde38b146105f2576101ee565b8063c40cb854116100d1578063c40cb8541461052d578063ce23f54614610542578063d45e5f7c1461056c578063d96a094a14610581576101ee565b8063b6dd591314610487578063b87e603d1461049c578063be4b1772146104b1578063c3c0e489146104ea576101ee565b80636dad19f81161017a5780638ea13a8d116101495780638ea13a8d146103d7578063906a26e014610412578063989292da146104275780639f49cefb14610457576101ee565b80636dad19f81461033257806374478bb31461036857806378e97925146103915780638da5cb5b146103a6576101ee565b80633e0a322d116101b65780633e0a322d146102c95780634dbbfcc6146102f35780634e71d92d146103085780636c9c7ebe1461031d576101ee565b806308ad1672146101f35780631959a0021461021a57806325d6bfce146102825780633c3c9c23146102b4576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086106bb565b60408051918252519081900360200190f35b34801561022657600080fd5b5061024d6004803603602081101561023d57600080fd5b50356001600160a01b03166106c1565b6040805196875260208701959095529215158585015260608501919091526080840152151560a0830152519081900360c00190f35b34801561028e57600080fd5b506102b2600480360360408110156102a557600080fd5b50803590602001356106fd565b005b3480156102c057600080fd5b50610208610755565b3480156102d557600080fd5b506102b2600480360360208110156102ec57600080fd5b503561075b565b3480156102ff57600080fd5b506102086107ad565b34801561031457600080fd5b506102b26107b3565b34801561032957600080fd5b506102086109c9565b34801561033e57600080fd5b506102b26004803603606081101561035557600080fd5b50803590602081013590604001356109cf565b34801561037457600080fd5b5061037d610ad7565b604080519115158252519081900360200190f35b34801561039d57600080fd5b50610208610ae0565b3480156103b257600080fd5b506103bb610ae6565b604080516001600160a01b039092168252519081900360200190f35b3480156103e357600080fd5b506103ec610af5565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561041e57600080fd5b50610208610bf2565b34801561043357600080fd5b506102b26004803603604081101561044a57600080fd5b5080359060200135610bf8565b34801561046357600080fd5b506102b26004803603604081101561047a57600080fd5b5080359060200135610c50565b34801561049357600080fd5b506103bb610d15565b3480156104a857600080fd5b50610208610d24565b3480156104bd57600080fd5b506102b2600480360360408110156104d457600080fd5b50803590602001356001600160a01b0316610d2a565b3480156104f657600080fd5b506105146004803603602081101561050d57600080fd5b5035610e83565b6040805192835260208301919091528051918290030190f35b34801561053957600080fd5b50610208610eae565b34801561054e57600080fd5b506102b26004803603602081101561056557600080fd5b5035610eb4565b34801561057857600080fd5b506102b2610ffc565b6102b26004803603602081101561059757600080fd5b503561105d565b3480156105aa57600080fd5b506102b2600480360360208110156105c157600080fd5b50356112bb565b3480156105d457600080fd5b50610208611365565b3480156105e957600080fd5b506102086113eb565b3480156105fe57600080fd5b506102b26004803603602081101561061557600080fd5b50356001600160a01b03166113f1565b34801561063157600080fd5b506102b26004803603602081101561064857600080fd5b50356001600160a01b03166114de565b34801561066457600080fd5b50610208611555565b34801561067957600080fd5b506103bb61155b565b34801561068e57600080fd5b506102b2600480360360408110156106a557600080fd5b50803590602001356001600160a01b031661156a565b60055481565b6001602081905260009182526040909120805491810154600282015460038301546004840154600590940154929360ff92831693919290911686565b6000546001600160a01b0316331461074a576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b600691909155600755565b600b5481565b6000546001600160a01b031633146107a8576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b600255565b60035490565b60045460ff166107fa576040805162461bcd60e51b815260206004820152600d60248201526c4e6f7420636c61696d61626c6560981b604482015290519081900360640190fd5b336000908152600160208190526040822090810154815491929161081d916115fa565b905060008111610869576040805162461bcd60e51b81526020600482015260126024820152714e6f20616d6f756e7420746f20636c61696d60701b604482015290519081900360640190fd5b600d54604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156108b457600080fd5b505afa1580156108c8573d6000803e3d6000fd5b505050506040513d60208110156108de57600080fd5b50518110610933576040805162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365000000000000604482015290519081900360640190fd5b600d546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d60208110156109b157600080fd5b50506001909101805482019055600580549091019055565b60065481565b6000546001600160a01b03163314610a1c576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b6000610a26610af5565b505050905080841180610a3a575060025442105b610a8b576040805162461bcd60e51b815260206004820152601d60248201527f5468652073746167652077617320616c72656164792073746172746564000000604482015290519081900360640190fd5b8260038581548110610a9957fe5b9060005260206000209060020201600001819055508160038581548110610abc57fe5b90600052602060002090600202016001018190555050505050565b60045460ff1681565b60025481565b6000546001600160a01b031681565b6000806000806000429050600254811015610b3e576000806002546003600081548110610b1e57fe5b906000526020600020906002020160010154945094509450945050610bec565b6000610b486107ad565b6002549091506000805b83811015610bda57610b8260038281548110610b6a57fe5b6000918252602090912060029091020154849061165c565b9150848311158015610b945750818511155b15610bcd5780838360038481548110610ba957fe5b90600052602060002090600202016001015498509850985098505050505050610bec565b9091508190600101610b52565b50919650600095504294508593505050505b90919293565b60085481565b6000546001600160a01b03163314610c45576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b600891909155600955565b6000546001600160a01b03163314610c9d576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b60408051808201909152918252602082019081526003805460018101825560009190915291517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600290930292830155517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c90910155565b600e546001600160a01b031681565b60075481565b6000546001600160a01b03163314610d77576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b600d54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610dc257600080fd5b505afa158015610dd6573d6000803e3d6000fd5b505050506040513d6020811015610dec57600080fd5b5051905082811015610dfc578092505b600d546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018790529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610e5257600080fd5b505af1158015610e66573d6000803e3d6000fd5b505050506040513d6020811015610e7c57600080fd5b5050505050565b60038181548110610e9057fe5b60009182526020909120600290910201805460019091015490915082565b600c5481565b336000908152600160205260409020600581015460ff16610f0d576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420726566756e6461626c6560901b604482015290519081900360640190fd5b6003810180548390039055600d54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610f6357600080fd5b505afa158015610f77573d6000803e3d6000fd5b505050506040513d6020811015610f8d57600080fd5b5051905082811015610f9d578092505b8215610ff757600d546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015610e5257600080fd5b505050565b6000546001600160a01b03163314611049576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b6004805460ff19811660ff90911615179055565b60025442116110ac576040805162461bcd60e51b8152602060048201526016602482015275141c995cd85b19481a5cc81b9bdd081cdd185c9d195960521b604482015290519081900360640190fd5b336000818152600160205260409020600754600482015434011115611107576040805162461bcd60e51b815260206004820152600c60248201526b4d617820627579206574682160a01b604482015290519081900360640190fd5b600654838260030154011115611154576040805162461bcd60e51b815260206004820152600d60248201526c4d61782062757920557364742160981b604482015290519081900360640190fd5b600061115e610af5565b935050505060008411156111f557600e54604080516323b872dd60e01b81526001600160a01b03868116600483015230602483015260448201889052915191909216916323b872dd9160648083019260209291908290030181600087803b1580156111c857600080fd5b505af11580156111dc573d6000803e3d6000fd5b505050506040513d60208110156111f257600080fd5b50505b60006112138261120d87670de0b6b3a76400006116bd565b90611716565b9050600061121f611365565b905060006112446305f5e10061120d8461123e888334620f42406116bd565b906116bd565b60055490915083820190611258908261165c565b600555855481018655600286015460ff166112895760028601805460ff19166001908117909155600a805490910190555b5050600c8054870190555050600b80543490810190915560038301805490950190945550600401805490920190915550565b336000908152600160205260409020600581015460ff16611314576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420726566756e6461626c6560901b604482015290519081900360640190fd5b6004810180548390039055478281101561132c578092505b8215610ff757604051339084156108fc029085906000818181858888f1935050505015801561135f573d6000803e3d6000fd5b50505050565b600080600f60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156113b657600080fd5b505afa1580156113ca573d6000803e3d6000fd5b505050506040513d60a08110156113e057600080fd5b506020015191505090565b600a5481565b6000546001600160a01b0316331461143e576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b6001600160a01b0381166114835760405162461bcd60e51b815260040180806020018281038252602681526020018061177e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461152b576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120600501805460ff19169091179055565b60095481565b600d546001600160a01b031681565b6000546001600160a01b031633146115b7576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b47828110156115c4578092505b6040516001600160a01b0383169084156108fc029085906000818181858888f1935050505015801561135f573d6000803e3d6000fd5b600082821115611651576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000828201838110156116b6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000826116cc57506000611656565b828202828482816116d957fe5b04146116b65760405162461bcd60e51b81526004018080602001828103825260218152602001806117a46021913960400191505060405180910390fd5b600080821161176c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161177557fe5b04939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212203dc283be5d53801ef68d459db508ac0ecd6ef2645bc1a091751f468cb569293264736f6c634300060c0033000000000000000000000000e42ea2218b01fb887c88bd312ebdea391f56e244000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Deployed Bytecode
0x6080604052600436106101e75760003560e01c8063b6dd591311610102578063dcc6e7ad11610095578063f7abf33711610064578063f7abf33714610625578063fb86a40414610658578063fc0c546a1461066d578063fd152d8414610682576101ee565b8063dcc6e7ad1461059e578063eaea5a40146105c8578063f251fc8c146105dd578063f2fde38b146105f2576101ee565b8063c40cb854116100d1578063c40cb8541461052d578063ce23f54614610542578063d45e5f7c1461056c578063d96a094a14610581576101ee565b8063b6dd591314610487578063b87e603d1461049c578063be4b1772146104b1578063c3c0e489146104ea576101ee565b80636dad19f81161017a5780638ea13a8d116101495780638ea13a8d146103d7578063906a26e014610412578063989292da146104275780639f49cefb14610457576101ee565b80636dad19f81461033257806374478bb31461036857806378e97925146103915780638da5cb5b146103a6576101ee565b80633e0a322d116101b65780633e0a322d146102c95780634dbbfcc6146102f35780634e71d92d146103085780636c9c7ebe1461031d576101ee565b806308ad1672146101f35780631959a0021461021a57806325d6bfce146102825780633c3c9c23146102b4576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086106bb565b60408051918252519081900360200190f35b34801561022657600080fd5b5061024d6004803603602081101561023d57600080fd5b50356001600160a01b03166106c1565b6040805196875260208701959095529215158585015260608501919091526080840152151560a0830152519081900360c00190f35b34801561028e57600080fd5b506102b2600480360360408110156102a557600080fd5b50803590602001356106fd565b005b3480156102c057600080fd5b50610208610755565b3480156102d557600080fd5b506102b2600480360360208110156102ec57600080fd5b503561075b565b3480156102ff57600080fd5b506102086107ad565b34801561031457600080fd5b506102b26107b3565b34801561032957600080fd5b506102086109c9565b34801561033e57600080fd5b506102b26004803603606081101561035557600080fd5b50803590602081013590604001356109cf565b34801561037457600080fd5b5061037d610ad7565b604080519115158252519081900360200190f35b34801561039d57600080fd5b50610208610ae0565b3480156103b257600080fd5b506103bb610ae6565b604080516001600160a01b039092168252519081900360200190f35b3480156103e357600080fd5b506103ec610af5565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561041e57600080fd5b50610208610bf2565b34801561043357600080fd5b506102b26004803603604081101561044a57600080fd5b5080359060200135610bf8565b34801561046357600080fd5b506102b26004803603604081101561047a57600080fd5b5080359060200135610c50565b34801561049357600080fd5b506103bb610d15565b3480156104a857600080fd5b50610208610d24565b3480156104bd57600080fd5b506102b2600480360360408110156104d457600080fd5b50803590602001356001600160a01b0316610d2a565b3480156104f657600080fd5b506105146004803603602081101561050d57600080fd5b5035610e83565b6040805192835260208301919091528051918290030190f35b34801561053957600080fd5b50610208610eae565b34801561054e57600080fd5b506102b26004803603602081101561056557600080fd5b5035610eb4565b34801561057857600080fd5b506102b2610ffc565b6102b26004803603602081101561059757600080fd5b503561105d565b3480156105aa57600080fd5b506102b2600480360360208110156105c157600080fd5b50356112bb565b3480156105d457600080fd5b50610208611365565b3480156105e957600080fd5b506102086113eb565b3480156105fe57600080fd5b506102b26004803603602081101561061557600080fd5b50356001600160a01b03166113f1565b34801561063157600080fd5b506102b26004803603602081101561064857600080fd5b50356001600160a01b03166114de565b34801561066457600080fd5b50610208611555565b34801561067957600080fd5b506103bb61155b565b34801561068e57600080fd5b506102b2600480360360408110156106a557600080fd5b50803590602001356001600160a01b031661156a565b60055481565b6001602081905260009182526040909120805491810154600282015460038301546004840154600590940154929360ff92831693919290911686565b6000546001600160a01b0316331461074a576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b600691909155600755565b600b5481565b6000546001600160a01b031633146107a8576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b600255565b60035490565b60045460ff166107fa576040805162461bcd60e51b815260206004820152600d60248201526c4e6f7420636c61696d61626c6560981b604482015290519081900360640190fd5b336000908152600160208190526040822090810154815491929161081d916115fa565b905060008111610869576040805162461bcd60e51b81526020600482015260126024820152714e6f20616d6f756e7420746f20636c61696d60701b604482015290519081900360640190fd5b600d54604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156108b457600080fd5b505afa1580156108c8573d6000803e3d6000fd5b505050506040513d60208110156108de57600080fd5b50518110610933576040805162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365000000000000604482015290519081900360640190fd5b600d546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d60208110156109b157600080fd5b50506001909101805482019055600580549091019055565b60065481565b6000546001600160a01b03163314610a1c576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b6000610a26610af5565b505050905080841180610a3a575060025442105b610a8b576040805162461bcd60e51b815260206004820152601d60248201527f5468652073746167652077617320616c72656164792073746172746564000000604482015290519081900360640190fd5b8260038581548110610a9957fe5b9060005260206000209060020201600001819055508160038581548110610abc57fe5b90600052602060002090600202016001018190555050505050565b60045460ff1681565b60025481565b6000546001600160a01b031681565b6000806000806000429050600254811015610b3e576000806002546003600081548110610b1e57fe5b906000526020600020906002020160010154945094509450945050610bec565b6000610b486107ad565b6002549091506000805b83811015610bda57610b8260038281548110610b6a57fe5b6000918252602090912060029091020154849061165c565b9150848311158015610b945750818511155b15610bcd5780838360038481548110610ba957fe5b90600052602060002090600202016001015498509850985098505050505050610bec565b9091508190600101610b52565b50919650600095504294508593505050505b90919293565b60085481565b6000546001600160a01b03163314610c45576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b600891909155600955565b6000546001600160a01b03163314610c9d576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b60408051808201909152918252602082019081526003805460018101825560009190915291517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600290930292830155517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c90910155565b600e546001600160a01b031681565b60075481565b6000546001600160a01b03163314610d77576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b600d54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610dc257600080fd5b505afa158015610dd6573d6000803e3d6000fd5b505050506040513d6020811015610dec57600080fd5b5051905082811015610dfc578092505b600d546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018790529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610e5257600080fd5b505af1158015610e66573d6000803e3d6000fd5b505050506040513d6020811015610e7c57600080fd5b5050505050565b60038181548110610e9057fe5b60009182526020909120600290910201805460019091015490915082565b600c5481565b336000908152600160205260409020600581015460ff16610f0d576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420726566756e6461626c6560901b604482015290519081900360640190fd5b6003810180548390039055600d54604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610f6357600080fd5b505afa158015610f77573d6000803e3d6000fd5b505050506040513d6020811015610f8d57600080fd5b5051905082811015610f9d578092505b8215610ff757600d546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015610e5257600080fd5b505050565b6000546001600160a01b03163314611049576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b6004805460ff19811660ff90911615179055565b60025442116110ac576040805162461bcd60e51b8152602060048201526016602482015275141c995cd85b19481a5cc81b9bdd081cdd185c9d195960521b604482015290519081900360640190fd5b336000818152600160205260409020600754600482015434011115611107576040805162461bcd60e51b815260206004820152600c60248201526b4d617820627579206574682160a01b604482015290519081900360640190fd5b600654838260030154011115611154576040805162461bcd60e51b815260206004820152600d60248201526c4d61782062757920557364742160981b604482015290519081900360640190fd5b600061115e610af5565b935050505060008411156111f557600e54604080516323b872dd60e01b81526001600160a01b03868116600483015230602483015260448201889052915191909216916323b872dd9160648083019260209291908290030181600087803b1580156111c857600080fd5b505af11580156111dc573d6000803e3d6000fd5b505050506040513d60208110156111f257600080fd5b50505b60006112138261120d87670de0b6b3a76400006116bd565b90611716565b9050600061121f611365565b905060006112446305f5e10061120d8461123e888334620f42406116bd565b906116bd565b60055490915083820190611258908261165c565b600555855481018655600286015460ff166112895760028601805460ff19166001908117909155600a805490910190555b5050600c8054870190555050600b80543490810190915560038301805490950190945550600401805490920190915550565b336000908152600160205260409020600581015460ff16611314576040805162461bcd60e51b815260206004820152600e60248201526d4e6f7420726566756e6461626c6560901b604482015290519081900360640190fd5b6004810180548390039055478281101561132c578092505b8215610ff757604051339084156108fc029085906000818181858888f1935050505015801561135f573d6000803e3d6000fd5b50505050565b600080600f60009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156113b657600080fd5b505afa1580156113ca573d6000803e3d6000fd5b505050506040513d60a08110156113e057600080fd5b506020015191505090565b600a5481565b6000546001600160a01b0316331461143e576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b6001600160a01b0381166114835760405162461bcd60e51b815260040180806020018281038252602681526020018061177e6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461152b576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120600501805460ff19169091179055565b60095481565b600d546001600160a01b031681565b6000546001600160a01b031633146115b7576040805162461bcd60e51b815260206004820181905260248201526000805160206117c5833981519152604482015290519081900360640190fd5b47828110156115c4578092505b6040516001600160a01b0383169084156108fc029085906000818181858888f1935050505015801561135f573d6000803e3d6000fd5b600082821115611651576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b508082035b92915050565b6000828201838110156116b6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000826116cc57506000611656565b828202828482816116d957fe5b04146116b65760405162461bcd60e51b81526004018080602001828103825260218152602001806117a46021913960400191505060405180910390fd5b600080821161176c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161177557fe5b04939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212203dc283be5d53801ef68d459db508ac0ecd6ef2645bc1a091751f468cb569293264736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e42ea2218b01fb887c88bd312ebdea391f56e244000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
-----Decoded View---------------
Arg [0] : _token (address): 0xE42Ea2218B01fB887C88bD312EbDea391F56E244
Arg [1] : _usdt (address): 0xdAC17F958D2ee523a2206206994597C13D831ec7
Arg [2] : _feed (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000e42ea2218b01fb887c88bd312ebdea391f56e244
Arg [1] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [2] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Deployed Bytecode Sourcemap
11043:7066:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11598:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11281:44;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11281:44:0;-1:-1:-1;;;;;11281:44:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15923:189;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15923:189:0;;;;;;;:::i;:::-;;11955:20;;;;;;;;;;;;;:::i;15818:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15818:97:0;;:::i;13087:95::-;;;;;;;;;;;;;:::i;15346:464::-;;;;;;;;;;;;;:::i;11647:42::-;;;;;;;;;;;;;:::i;12723:356::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12723:356:0;;;;;;;;;;;;:::i;11544:23::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11376:34;;;;;;;;;;;;;:::i;9815:20::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;9815:20:0;;;;;;;;;;;;;;13190:755;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11783:35;;;;;;;;;;;;;:::i;16120:129::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16120:129:0;;;;;;;:::i;12560:155::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12560:155:0;;;;;;;:::i;12062:18::-;;;;;;;;;;;;;:::i;11711:39::-;;;;;;;;;;;;;:::i;16568:261::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16568:261:0;;;;;;-1:-1:-1;;;;;16568:261:0;;:::i;11501:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11501:34:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11982:21;;;;;;;;;;;;;:::i;17066:467::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17066:467:0;;:::i;15253:85::-;;;;;;;;;;;;;:::i;14107:1138::-;;;;;;;;;;;;;;;;-1:-1:-1;14107:1138:0;;:::i;17613:456::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17613:456:0;;:::i;13953:146::-;;;;;;;;;;;;;:::i;11917:29::-;;;;;;;;;;;;;:::i;10186:242::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10186:242:0;-1:-1:-1;;;;;10186:242:0;;:::i;16837:148::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16837:148:0;-1:-1:-1;;;;;16837:148:0;;:::i;11850:36::-;;;;;;;;;;;;;:::i;12036:19::-;;;;;;;;;;;;;:::i;16278:253::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16278:253:0;;;;;;-1:-1:-1;;;;;16278:253:0;;:::i;11598:23::-;;;;:::o;11281:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15923:189::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;16023:16:::1;:36:::0;;;;16070:15:::1;:34:::0;15923:189::o;11955:20::-;;;;:::o;15818:97::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;15885:9:::1;:22:::0;15818:97::o;13087:95::-;13155:12;:19;13087:95;:::o;15346:464::-;15389:11;;;;15381:37;;;;;-1:-1:-1;;;15381:37:0;;;;;;;;;;;;-1:-1:-1;;;15381:37:0;;;;;;;;;;;;;;;15462:10;15429:21;15453:20;;;:8;:20;;;;;;;15519:14;;;;15501:13;;15453:20;;15429:21;15501:33;;:17;:33::i;:::-;15484:50;;15565:1;15553:9;:13;15545:44;;;;;-1:-1:-1;;;15545:44:0;;;;;;;;;;;;-1:-1:-1;;;15545:44:0;;;;;;;;;;;;;;;15620:5;;:30;;;-1:-1:-1;;;15620:30:0;;15644:4;15620:30;;;;;;-1:-1:-1;;;;;15620:5:0;;;;:15;;:30;;;;;;;;;;;;;;;:5;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15620:30:0;15608:42;;15600:81;;;;;-1:-1:-1;;;15600:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15692:5;;:37;;;-1:-1:-1;;;15692:37:0;;15707:10;15692:37;;;;;;;;;;;;-1:-1:-1;;;;;15692:5:0;;;;:14;;:37;;;;;;;;;;;;;;;:5;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15740:14:0;;;;:27;;;;;;15778:11;:24;;;;;;;15346:464::o;11647:42::-;;;;:::o;12723:356::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;12816:18:::1;12844:21;:19;:21::i;:::-;12815:50;;;;;12893:13;12884:6;:22;:53;;;;12928:9;;12910:15;:27;12884:53;12876:95;;;::::0;;-1:-1:-1;;;12876:95:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;13012:7;12982:12;12995:6;12982:20;;;;;;;;;;;;;;;;;;:27;;:37;;;;13062:9;13030:12;13043:6;13030:20;;;;;;;;;;;;;;;;;;:29;;:41;;;;10169:1;12723:356:::0;;;:::o;11544:23::-;;;;;;:::o;11376:34::-;;;;:::o;9815:20::-;;;-1:-1:-1;;;;;9815:20:0;;:::o;13190:755::-;13242:4;13248;13254;13260;13277:16;13296:15;13277:34;;13340:9;;13326:11;:23;13322:106;;;13374:1;13377;13380:9;;13391:12;13404:1;13391:15;;;;;;;;;;;;;;;;;;:24;;;13366:50;;;;;;;;;;;13322:106;13438:11;13452:13;:11;:13::i;:::-;13498:9;;13438:27;;-1:-1:-1;13476:19:0;;13546:343;13567:6;13563:1;:10;13546:343;;;13610:42;13629:12;13642:1;13629:15;;;;;;;;;;;;;;;;;;;;;:22;13610:14;;:18;:42::i;:::-;13595:57;;13689:11;13671:14;:29;;:60;;;;;13719:12;13704:11;:27;;13671:60;13667:167;;;13760:1;13763:14;13779:12;13793;13806:1;13793:15;;;;;;;;;;;;;;;;;;:24;;;13752:66;;;;;;;;;;;;;;;13667:167;13865:12;;-1:-1:-1;13865:12:0;;13575:3;;13546:343;;;-1:-1:-1;13907:6:0;;-1:-1:-1;13915:1:0;;-1:-1:-1;13918:15:0;;-1:-1:-1;13915:1:0;;-1:-1:-1;;;;13190:755:0;;;;;:::o;11783:35::-;;;;:::o;16120:129::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;16194:7:::1;:18:::0;;;;16223:7:::1;:18:::0;16120:129::o;12560:155::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;12654:52:::1;::::0;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;;12636:12:::1;:71:::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;12636:71:0;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;12560:155::o;12062:18::-;;;-1:-1:-1;;;;;12062:18:0;;:::o;11711:39::-;;;;:::o;16568:261::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;16668:5:::1;::::0;:30:::1;::::0;;-1:-1:-1;;;16668:30:0;;16692:4:::1;16668:30;::::0;::::1;::::0;;;16653:12:::1;::::0;-1:-1:-1;;;;;16668:5:0::1;::::0;:15:::1;::::0;:30;;;;;::::1;::::0;;;;;;;;:5;:30;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;16668:30:0;;-1:-1:-1;16713:17:0;;::::1;16709:67;;;16757:7;16747:17;;16709:67;16786:5;::::0;:35:::1;::::0;;-1:-1:-1;;;16786:35:0;;-1:-1:-1;;;;;16786:35:0;;::::1;;::::0;::::1;::::0;;;;;;;;;:5;;;::::1;::::0;:14:::1;::::0;:35;;;;;::::1;::::0;;;;;;;;:5:::1;::::0;:35;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;;16568:261:0:o;11501:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11501:34:0;:::o;11982:21::-;;;;:::o;17066:467::-;17151:10;17118:21;17142:20;;;:8;:20;;;;;17181:17;;;;;;17173:44;;;;;-1:-1:-1;;;17173:44:0;;;;;;;;;;;;-1:-1:-1;;;17173:44:0;;;;;;;;;;;;;;;17284:9;;;;;:19;;;17272:31;;17329:5;;:30;;;-1:-1:-1;;;17329:30:0;;17353:4;17329:30;;;;;;-1:-1:-1;;;;;;;17329:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17329:30:0;;-1:-1:-1;17374:17:0;;;17370:67;;;17418:7;17408:17;;17370:67;17451:11;;17447:79;;17479:5;;:35;;;-1:-1:-1;;;17479:35:0;;17494:10;17479:35;;;;;;;;;;;;-1:-1:-1;;;;;17479:5:0;;;;:14;;:35;;;;;;;;;;;;;;;:5;;:35;;;;;;;;;;17447:79;17066:467;;;:::o;15253:85::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;15319:11:::1;::::0;;-1:-1:-1;;15304:26:0;::::1;15319:11;::::0;;::::1;15318:12;15304:26;::::0;;15253:85::o;14107:1138::-;14190:9;;14172:15;:27;14164:62;;;;;-1:-1:-1;;;14164:62:0;;;;;;;;;;;;-1:-1:-1;;;14164:62:0;;;;;;;;;;;;;;;14253:10;14237:13;14298:15;;;:8;:15;;;;;14356;;14332:8;;;;14343:9;14332:20;:39;;14324:64;;;;;-1:-1:-1;;;14324:64:0;;;;;;;;;;;;-1:-1:-1;;;14324:64:0;;;;;;;;;;;;;;;14434:16;;14419:11;14407:4;:9;;;:23;:43;;14399:69;;;;;-1:-1:-1;;;14399:69:0;;;;;;;;;;;;-1:-1:-1;;;14399:69:0;;;;;;;;;;;;;;;14486:14;14504:21;:19;:21::i;:::-;14479:46;;;;;14554:1;14540:11;:15;14536:100;;;14572:4;;:52;;;-1:-1:-1;;;14572:52:0;;-1:-1:-1;;;;;14572:52:0;;;;;;;14605:4;14572:52;;;;;;;;;;;;:4;;;;;:17;;:52;;;;;;;;;;;;;;:4;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14536:100:0;14646:18;14667:36;14693:9;14667:21;:11;14683:4;14667:15;:21::i;:::-;:25;;:36::i;:::-;14646:57;;14714:12;14729:17;:15;:17::i;:::-;14714:32;-1:-1:-1;14757:17:0;14777:62;14835:3;14777:53;14714:32;14777:33;14800:9;14777:53;:9;14791:3;14777:13;:18::i;:33::-;:37;;:53::i;:62::-;14920:11;;14757:82;;-1:-1:-1;14867:28:0;;;;14920:26;;14867:28;14920:15;:26::i;:::-;14906:11;:40;14957:26;;;;;;14998:12;;;;;;14994:110;;15036:12;;;:19;;-1:-1:-1;;15036:19:0;15051:4;15036:19;;;;;;15070:17;:22;;;;;;;14994:110;-1:-1:-1;;15114:9:0;:24;;;;;;-1:-1:-1;;15149:8:0;:21;;15161:9;15149:21;;;;;;15181:9;;;:24;;;;;;;;-1:-1:-1;15216:8:0;;:21;;;;;;;;-1:-1:-1;14107:1138:0:o;17613:456::-;17697:10;17664:21;17688:20;;;:8;:20;;;;;17727:17;;;;;;17719:44;;;;;-1:-1:-1;;;17719:44:0;;;;;;;;;;;;-1:-1:-1;;;17719:44:0;;;;;;;;;;;;;;;17828:8;;;;;:18;;;17817:29;;17872:21;17908:17;;;17904:67;;;17952:7;17942:17;;17904:67;17985:11;;17981:81;;18013:37;;18021:10;;18013:37;;;;;18042:7;;18013:37;;;;18042:7;18021:10;18013:37;;;;;;;;;;;;;;;;;;;;;17613:456;;;:::o;13953:146::-;14001:3;14020:9;14039:11;;;;;;;;;-1:-1:-1;;;;;14039:11:0;-1:-1:-1;;;;;14039:27:0;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14039:29:0;;;;-1:-1:-1;;13953:146:0;:::o;11917:29::-;;;;:::o;10186:242::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;10275:22:0;::::1;10267:73;;;;-1:-1:-1::0;;;10267:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10377:5;::::0;;10356:37:::1;::::0;-1:-1:-1;;;;;10356:37:0;;::::1;::::0;10377:5;::::1;::::0;10356:37:::1;::::0;::::1;10404:5;:16:::0;;-1:-1:-1;;;;;;10404:16:0::1;-1:-1:-1::0;;;;;10404:16:0;;;::::1;::::0;;;::::1;::::0;;10186:242::o;16837:148::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;16927:15:0::1;16903:21;16927:15:::0;;;:8:::1;:15;::::0;;;;;;;16953:17:::1;;:24:::0;;-1:-1:-1;;16953:24:0::1;::::0;;::::1;::::0;;16837:148::o;11850:36::-;;;;:::o;12036:19::-;;;-1:-1:-1;;;;;12036:19:0;;:::o;16278:253::-;10102:5;;-1:-1:-1;;;;;10102:5:0;10111:10;10102:19;10094:64;;;;;-1:-1:-1;;;10094:64:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;10094:64:0;;;;;;;;;;;;;;;16377:21:::1;16413:17:::0;;::::1;16409:67;;;16457:7;16447:17;;16409:67;16486:37;::::0;-1:-1:-1;;;;;16486:28:0;::::1;::::0;:37;::::1;;;::::0;16515:7;;16486:37:::1;::::0;;;16515:7;16486:28;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;2854:158:::0;2912:7;2945:1;2940;:6;;2932:49;;;;;-1:-1:-1;;;2932:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2999:5:0;;;2854:158;;;;;:::o;2392:179::-;2450:7;2482:5;;;2506:6;;;;2498:46;;;;;-1:-1:-1;;;2498:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2562:1;2392:179;-1:-1:-1;;;2392:179:0:o;3271:220::-;3329:7;3353:6;3349:20;;-1:-1:-1;3368:1:0;3361:8;;3349:20;3392:5;;;3396:1;3392;:5;:1;3416:5;;;;;:10;3408:56;;;;-1:-1:-1;;;3408:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3969:153;4027:7;4059:1;4055;:5;4047:44;;;;;-1:-1:-1;;;4047:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4113:1;4109;:5;;;;;;;3969:153;-1:-1:-1;;;3969:153:0:o
Swarm Source
ipfs://3dc283be5d53801ef68d459db508ac0ecd6ef2645bc1a091751f468cb5692932
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.