Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
1 wei
Eth Value
Less Than $0.01 (@ $2,238.64/ETH)More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 19 from a total of 19 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 10303515 | 1718 days ago | IN | 0 ETH | 0.00080064 | ||||
Transfer | 10303448 | 1718 days ago | IN | 0 ETH | 0.00110665 | ||||
Transfer | 10303413 | 1718 days ago | IN | 0 ETH | 0.00110665 | ||||
Transfer | 10303385 | 1718 days ago | IN | 0 ETH | 0.00110665 | ||||
Transfer | 10303344 | 1718 days ago | IN | 0 ETH | 0.00110665 | ||||
Transfer | 10251234 | 1726 days ago | IN | 0 ETH | 0.00117372 | ||||
Transfer | 10246563 | 1727 days ago | IN | 0 ETH | 0.00117372 | ||||
Transfer | 10246301 | 1727 days ago | IN | 0 ETH | 0.00142657 | ||||
0xfaf6534c | 10220802 | 1731 days ago | IN | 0.05 ETH | 0.00399912 | ||||
Transfer | 10213299 | 1732 days ago | IN | 0 ETH | 0.00127433 | ||||
Transfer | 10212164 | 1732 days ago | IN | 0 ETH | 0.0016983 | ||||
Transfer | 10206527 | 1733 days ago | IN | 0 ETH | 0.00167675 | ||||
Transfer | 10201310 | 1734 days ago | IN | 0 ETH | 0.00116455 | ||||
Transfer | 10195855 | 1735 days ago | IN | 0 ETH | 0.00116455 | ||||
Transfer | 10187993 | 1736 days ago | IN | 0 ETH | 0.00083837 | ||||
Transfer | 10180136 | 1737 days ago | IN | 0 ETH | 0.00126159 | ||||
Transfer | 10166755 | 1739 days ago | IN | 0 ETH | 0.00135864 | ||||
Transfer | 10162960 | 1740 days ago | IN | 0.1 ETH | 0.00276678 | ||||
Change Dex Giver... | 10162892 | 1740 days ago | IN | 0 ETH | 0.00148029 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
10303515 | 1718 days ago | 0.2393347 ETH | ||||
10303448 | 1718 days ago | 0.00405669 ETH | ||||
10303413 | 1718 days ago | 0.03570802 ETH | ||||
10303385 | 1718 days ago | 0.00304661 ETH | ||||
10303344 | 1718 days ago | 0.00405912 ETH | ||||
10251308 | 1726 days ago | 0.012 ETH | ||||
10251234 | 1726 days ago | 0.06526565 ETH | ||||
10246649 | 1727 days ago | 0.0135 ETH | ||||
10246563 | 1727 days ago | 0.05312736 ETH | ||||
10246301 | 1727 days ago | 0.03095505 ETH | ||||
10244905 | 1727 days ago | 0.0135 ETH | ||||
10244432 | 1727 days ago | 0.009 ETH | ||||
10243233 | 1728 days ago | 0.015 ETH | ||||
10242221 | 1728 days ago | 0.00855 ETH | ||||
10239288 | 1728 days ago | 0.018 ETH | ||||
10237880 | 1728 days ago | 0.0096 ETH | ||||
10236707 | 1729 days ago | 0.00915 ETH | ||||
10232991 | 1729 days ago | 0.0075 ETH | ||||
10231743 | 1729 days ago | 0.0225 ETH | ||||
10230171 | 1730 days ago | 0.0078 ETH | ||||
10227312 | 1730 days ago | 0.015 ETH | ||||
10224762 | 1730 days ago | 0.0075 ETH | ||||
10220809 | 1731 days ago | 0.012 ETH | ||||
10220802 | 1731 days ago | 0.0025 ETH | ||||
10213338 | 1732 days ago | 0.00975 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
dexToken
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-05-30 */ /* Donation Exchange dexToken smart-contract */ pragma solidity ^0.5.17; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } 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; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } contract dexGiverInterface { function _donationsTransfer(address _donator) external payable returns (bool); function checkDexTokenUserReferrer(address _user, address _dataAddress) external returns (bool, address); } contract dexToken { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; address private _owner; address private _dexGiverAddress; string private _name; string private _symbol; uint256 private _totalSupply; uint128 private _min; uint128 private _max; uint8 private _decimals; event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); event Sell(address indexed seller, uint256 amount, uint256 rate, uint256 ethAmount); event Reward(address indexed referrer, uint32 indexed donationId, uint256 ethAmount, uint256 rate, uint256 tokenAmount); event Buy(address indexed buyer, address indexed referrer, uint256 ethAmount, uint256 tokenRate, uint256 amountToMint); event UnreachableAdressTokensMinted(address userAddress, uint32 donationTurn, uint ethAmount, uint tokenAmount, uint rate); event TokenRateChanged(uint256 tokenRate, uint64 time); constructor () public { _name = "Donation Exchange Token"; _symbol = "DEXT"; _decimals = 18; _owner = msg.sender; _min = 50000000000000000; _max = 5000000000000000000; emit TokenRateChanged(1000000000000000000, uint64(now)); } dexGiverInterface dexGiver; modifier onlyOwner() { require (_msgSender() == _owner, "Only for owner"); _; } modifier calledByDex() { require (_msgSender() == _dexGiverAddress, "Only for dexGiver contract"); _; } modifier purchaseSize() { require (msg.value >= _min && msg.value <= _max, "Wrong Ether amount"); _; } function transferOwnership(address newOwner) external onlyOwner { _owner = newOwner; assert(_owner == newOwner); } function changeDexGiverAddress(address newAddress) external onlyOwner{ _dexGiverAddress = newAddress; dexGiver = dexGiverInterface(newAddress); assert(_dexGiverAddress == newAddress); } function changeMinMax(uint128 newMin, uint128 newMax) external onlyOwner{ _min = newMin; _max = newMax; assert(_min == newMin && _max == newMax); } function () external payable purchaseSize { (bool referrerWasSet, address referrer) = dexGiver.checkDexTokenUserReferrer(msg.sender, bytesToAddress(msg.data)); require(referrerWasSet, "Referrer was not set by dexGiver"); uint amountToDex = msg.value.div(20); uint ethAmountForBuyer = msg.value.mul(90).div(100); (uint tokenAmount, uint tokenRate) = tokenAmountForEther(msg.value); uint amountToMintForBuyer = tokenAmount.mul(90).div(100); bool dtIsDone = dexGiver._donationsTransfer.value(amountToDex)(_msgSender()); require(dtIsDone, "Donation was not accepted or transfered by dexGiver"); _mint(_msgSender(), amountToMintForBuyer); emit Buy(_msgSender(), referrer, ethAmountForBuyer, tokenRate, amountToMintForBuyer); emit TokenRateChanged(calcTokenRate(), uint64(now)); } function transfer(address recipient, uint256 tokenAmount) public returns (bool) { if (recipient == _dexGiverAddress || recipient == address(this)) { uint rate = _tokenRate(0); uint ethAmount = tokenAmount.mul(10**18).mul(rate).div(10**36); _burn(_msgSender(), tokenAmount); sendValue(_msgSender(), ethAmount); emit Sell(_msgSender(), tokenAmount, rate, ethAmount); } else { _transfer(_msgSender(), recipient, tokenAmount); } return true; } function mintRefTokens(address referrer, address founder, uint32 id) external calledByDex payable returns (bool) { (uint totalTokenAmount, uint rate) = tokenAmountForEther(msg.value); uint tokenAmount = totalTokenAmount.div(3); _mint(founder, tokenAmount); assert(balanceOf(founder) >= tokenAmount); if (referrer != address(this)) { _mint(referrer, tokenAmount); assert(balanceOf(referrer) >= tokenAmount); emit Reward(referrer, id, msg.value.div(3), rate, tokenAmount); emit TokenRateChanged(calcTokenRate(), uint64(now)); return (true); } else { emit TokenRateChanged(calcTokenRate(), uint64(now)); return (true); } } function mintForUnreachableAddress(address userAddress, uint32 donationTurn) external payable calledByDex returns (bool){ (uint tokenAmount, uint rate) = tokenAmountForEther(msg.value); _mint(userAddress, tokenAmount); assert(balanceOf(userAddress) >= tokenAmount); emit UnreachableAdressTokensMinted(userAddress, donationTurn, msg.value, tokenAmount, rate); return true; } function tokenAmountForEther(uint sum) private view returns (uint, uint) { uint rate = _tokenRate(sum); uint result = sum.mul(10**18).div(rate); return (result, rate); } function _tokenRate(uint sum) private view returns (uint) { uint ttlspl = _totalSupply; uint oldContractBalance = address(this).balance.sub(sum); if (oldContractBalance == 0 || ttlspl == 0) { return 10**18; } return oldContractBalance.mul(10**18).div(ttlspl); } function _msgSender() internal view returns (address payable) { return msg.sender; } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view returns (uint256) { return _totalSupply; } function balanceOf(address account) public view returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call.value(amount)(""); require(success, "Address: unable to send value, recipient may have reverted"); } function bytesToAddress(bytes memory bys) private pure returns (address addr) { if (bys.length == 20) { assembly { addr := mload(add(bys, 20)) } return addr; } else { return address(0); } } function calcTokenRate() public view returns (uint) { uint ttlspl = _totalSupply; uint actualContractBalance = address(this).balance; if (actualContractBalance == 0 || ttlspl == 0) { return 10**18; } return actualContractBalance.mul(10**18).div(ttlspl); } function returnUserData(address user) external view returns (uint256, uint256, uint256) { uint dextRate = calcTokenRate(); uint dextSupply = totalSupply(); uint dextUserBalance = balanceOf(user); return (dextRate, dextSupply, dextUserBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToMint","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint32","name":"donationId","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"Reward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"Sell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenRate","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"time","type":"uint64"}],"name":"TokenRateChanged","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint32","name":"donationTurn","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"}],"name":"UnreachableAdressTokensMinted","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"calcTokenRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"changeDexGiverAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint128","name":"newMin","type":"uint128"},{"internalType":"uint128","name":"newMax","type":"uint128"}],"name":"changeMinMax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint32","name":"donationTurn","type":"uint32"}],"name":"mintForUnreachableAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrer","type":"address"},{"internalType":"address","name":"founder","type":"address"},{"internalType":"uint32","name":"id","type":"uint32"}],"name":"mintRefTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"returnUserData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040805180820190915260178082527f446f6e6174696f6e2045786368616e676520546f6b656e0000000000000000006020909201918252620000589160049162000126565b50604080518082019091526004808252631111561560e21b6020909201918252620000869160059162000126565b506008805460ff19166012179055600280546001600160a01b0319163317905560078054651158e460913d60921b6001600160801b031990911666b1a2bc2ec50000176001600160801b031617905560408051670de0b6b3a764000081526001600160401b034216602082015281517f25e22348bf71130da943f466df52188b07d10e528c56c8c4d5b07af393675f51929181900390910190a1620001cb565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016957805160ff191683800117855562000199565b8280016001018555821562000199579182015b82811115620001995782518255916020019190600101906200017c565b50620001a7929150620001ab565b5090565b620001c891905b80821115620001a75760008155600101620001b2565b90565b611a7680620001db6000396000f3fe6080604052600436106100f35760003560e01c8063a9059cbb1161008a578063cbefe55c11610059578063cbefe55c14610784578063dd62ed3e14610799578063e5c5a3e6146107d4578063f2fde38b1461080f576100f3565b8063a9059cbb14610693578063af56c16a146106cc578063b76b810e146106fe578063c4861f2f1461074f576100f3565b8063313ce567116100c6578063313ce567146105e357806370a082311461060e57806395d89b4114610641578063a77652ba14610656576100f3565b806306fdde03146104a2578063095ea7b31461052c57806318160ddd1461057957806323b872dd146105a0575b6007546001600160801b031634108015906101205750600754600160801b90046001600160801b03163411155b610166576040805162461bcd60e51b815260206004820152601260248201527115dc9bdb99c8115d1a195c88185b5bdd5b9d60721b604482015290519081900360640190fd5b600080600860019054906101000a90046001600160a01b03166001600160a01b031663dacf7f22336101ce6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061084292505050565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529190921660248201528151604480830193928290030181600087803b15801561021b57600080fd5b505af115801561022f573d6000803e3d6000fd5b505050506040513d604081101561024557600080fd5b5080516020909101519092509050816102a5576040805162461bcd60e51b815260206004820181905260248201527f526566657272657220776173206e6f7420736574206279206465784769766572604482015290519081900360640190fd5b60006102b834601463ffffffff61086216565b905060006102de60646102d234605a63ffffffff6108ad16565b9063ffffffff61086216565b90506000806102ec34610906565b9092509050600061030960646102d285605a63ffffffff6108ad16565b60085490915060009061010090046001600160a01b031663d8f4ce2a8761032e61093f565b6040518363ffffffff1660e01b815260040180826001600160a01b03166001600160a01b031681526020019150506020604051808303818588803b15801561037557600080fd5b505af1158015610389573d6000803e3d6000fd5b50505050506040513d60208110156103a057600080fd5b50519050806103e05760405162461bcd60e51b81526004018080602001828103825260338152602001806118da6033913960400191505060405180910390fd5b6103f16103eb61093f565b83610944565b866001600160a01b031661040361093f565b604080518881526020810187905280820186905290516001600160a01b0392909216917ef93dbdb72854b6b6fb35433086556f2635fc83c37080c667496fecfa650fb49181900360600190a37f25e22348bf71130da943f466df52188b07d10e528c56c8c4d5b07af393675f51610478610a34565b6040805191825267ffffffffffffffff421660208301528051918290030190a15050505050505050005b3480156104ae57600080fd5b506104b7610a80565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f15781810151838201526020016104d9565b50505050905090810190601f16801561051e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053857600080fd5b506105656004803603604081101561054f57600080fd5b506001600160a01b038135169060200135610b16565b604080519115158252519081900360200190f35b34801561058557600080fd5b5061058e610b33565b60408051918252519081900360200190f35b3480156105ac57600080fd5b50610565600480360360608110156105c357600080fd5b506001600160a01b03813581169160208101359091169060400135610b39565b3480156105ef57600080fd5b506105f8610bc7565b6040805160ff9092168252519081900360200190f35b34801561061a57600080fd5b5061058e6004803603602081101561063157600080fd5b50356001600160a01b0316610bd0565b34801561064d57600080fd5b506104b7610beb565b6105656004803603606081101561066c57600080fd5b5080356001600160a01b03908116916020810135909116906040013563ffffffff16610c4c565b34801561069f57600080fd5b50610565600480360360408110156106b657600080fd5b506001600160a01b038135169060200135610e0e565b610565600480360360408110156106e257600080fd5b5080356001600160a01b0316906020013563ffffffff16610f17565b34801561070a57600080fd5b506107316004803603602081101561072157600080fd5b50356001600160a01b031661101b565b60408051938452602084019290925282820152519081900360600190f35b34801561075b57600080fd5b506107826004803603602081101561077257600080fd5b50356001600160a01b0316611050565b005b34801561079057600080fd5b5061058e610a34565b3480156107a557600080fd5b5061058e600480360360408110156107bc57600080fd5b506001600160a01b03813581169160200135166110f5565b3480156107e057600080fd5b50610782600480360360408110156107f757600080fd5b506001600160801b0381358116916020013516611120565b34801561081b57600080fd5b506107826004803603602081101561083257600080fd5b50356001600160a01b03166111e4565b60008151601414156108595750601481015161085d565b5060005b919050565b60006108a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061126f565b90505b92915050565b6000826108bc575060006108a7565b828202828482816108c957fe5b04146108a45760405162461bcd60e51b815260040180806020018281038252602181526020018061198f6021913960400191505060405180910390fd5b600080600061091484611311565b90506000610934826102d287670de0b6b3a764000063ffffffff6108ad16565b935090915050915091565b335b90565b6001600160a01b03821661099f576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6006546109b2908263ffffffff61137016565b6006556001600160a01b0382166000908152602081905260409020546109de908263ffffffff61137016565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60065460009047801580610a46575081155b15610a5d57670de0b6b3a764000092505050610941565b610a79826102d283670de0b6b3a764000063ffffffff6108ad16565b9250505090565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b0c5780601f10610ae157610100808354040283529160200191610b0c565b820191906000526020600020905b815481529060010190602001808311610aef57829003601f168201915b5050505050905090565b6000610b2a610b2361093f565b84846113ca565b50600192915050565b60065490565b6000610b468484846114b6565b610bbc84610b5261093f565b610bb7856040518060600160405280602881526020016119b0602891396001600160a01b038a16600090815260016020526040812090610b9061093f565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61161216565b6113ca565b5060015b9392505050565b60085460ff1690565b6001600160a01b031660009081526020819052604090205490565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b0c5780601f10610ae157610100808354040283529160200191610b0c565b6003546000906001600160a01b0316610c6361093f565b6001600160a01b031614610cbe576040805162461bcd60e51b815260206004820152601a60248201527f4f6e6c7920666f7220646578476976657220636f6e7472616374000000000000604482015290519081900360640190fd5b600080610cca34610906565b90925090506000610ce283600363ffffffff61086216565b9050610cee8682610944565b80610cf887610bd0565b1015610d0057fe5b6001600160a01b0387163014610de557610d1a8782610944565b80610d2488610bd0565b1015610d2c57fe5b8463ffffffff16876001600160a01b03167fdd92a58fecb7399bb560327a37ddb56d4dd3d8cd956a803243557a559718e9b1610d7260033461086290919063ffffffff16565b6040805191825260208201879052818101869052519081900360600190a37f25e22348bf71130da943f466df52188b07d10e528c56c8c4d5b07af393675f51610db9610a34565b6040805191825267ffffffffffffffff421660208301528051918290030190a160019350505050610bc0565b7f25e22348bf71130da943f466df52188b07d10e528c56c8c4d5b07af393675f51610db9610a34565b6003546000906001600160a01b0384811691161480610e3557506001600160a01b03831630145b15610f05576000610e466000611311565b90506000610e856ec097ce7bc90715b34b9f10000000006102d284610e7988670de0b6b3a764000063ffffffff6108ad16565b9063ffffffff6108ad16565b9050610e98610e9261093f565b8561166c565b610ea9610ea361093f565b82611768565b610eb161093f565b604080518681526020810185905280820184905290516001600160a01b0392909216917f846c37eef631e0943682d87352ec117c20008eb7f425c9b85ac011a6d4774cc09181900360600190a25050610b2a565b610b2a610f1061093f565b84846114b6565b6003546000906001600160a01b0316610f2e61093f565b6001600160a01b031614610f89576040805162461bcd60e51b815260206004820152601a60248201527f4f6e6c7920666f7220646578476976657220636f6e7472616374000000000000604482015290519081900360640190fd5b600080610f9534610906565b91509150610fa38583610944565b81610fad86610bd0565b1015610fb557fe5b604080516001600160a01b038716815263ffffffff861660208201523481830152606081018490526080810183905290517f880d7511ec4ecb76777409cb2f64d6a55bbd934603bdb410eb8a59aee56d0a299181900360a00190a1506001949350505050565b600080600080611029610a34565b90506000611035610b33565b9050600061104287610bd0565b929791965091945092505050565b6002546001600160a01b031661106461093f565b6001600160a01b0316146110b0576040805162461bcd60e51b815260206004820152600e60248201526d27b7363c903337b91037bbb732b960911b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b038381169182179283905560088054610100600160a81b031916610100840217905591909116146110f257fe5b50565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6002546001600160a01b031661113461093f565b6001600160a01b031614611180576040805162461bcd60e51b815260206004820152600e60248201526d27b7363c903337b91037bbb732b960911b604482015290519081900360640190fd5b600780546fffffffffffffffffffffffffffffffff19166001600160801b038481169182178116600160801b858316021792839055919091161480156111da57506007546001600160801b03828116600160801b90920416145b6111e057fe5b5050565b6002546001600160a01b03166111f861093f565b6001600160a01b031614611244576040805162461bcd60e51b815260206004820152600e60248201526d27b7363c903337b91037bbb732b960911b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b038381169182179283905591909116146110f257fe5b600081836112fb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112c05781810151838201526020016112a8565b50505050905090810190601f1680156112ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161130757fe5b0495945050505050565b60065460009081611328478563ffffffff61185216565b9050801580611335575081155b1561134c57670de0b6b3a76400009250505061085d565b611368826102d283670de0b6b3a764000063ffffffff6108ad16565b949350505050565b6000828201838110156108a4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b03831661140f5760405162461bcd60e51b8152600401808060200182810382526024815260200180611a1e6024913960400191505060405180910390fd5b6001600160a01b0382166114545760405162461bcd60e51b815260040180806020018281038252602281526020018061190d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166114fb5760405162461bcd60e51b81526004018080602001828103825260258152602001806119f96025913960400191505060405180910390fd5b6001600160a01b0382166115405760405162461bcd60e51b81526004018080602001828103825260238152602001806118956023913960400191505060405180910390fd5b6115838160405180606001604052806026815260200161192f602691396001600160a01b038616600090815260208190526040902054919063ffffffff61161216565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546115b8908263ffffffff61137016565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156116645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112c05781810151838201526020016112a8565b505050900390565b6001600160a01b0382166116b15760405162461bcd60e51b81526004018080602001828103825260218152602001806119d86021913960400191505060405180910390fd5b6116f4816040518060600160405280602281526020016118b8602291396001600160a01b038516600090815260208190526040902054919063ffffffff61161216565b6001600160a01b038316600090815260208190526040902055600654611720908263ffffffff61185216565b6006556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b804710156117bd576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114611808576040519150601f19603f3d011682016040523d82523d6000602084013e61180d565b606091505b505090508061184d5760405162461bcd60e51b815260040180806020018281038252603a815260200180611955603a913960400191505060405180910390fd5b505050565b60006108a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061161256fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365446f6e6174696f6e20776173206e6f74206163636570746564206f72207472616e73666572656420627920646578476976657245524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a72315820f182e9e872a558fabad50eacb0e6eee240ec14bb8afb477eada44372f7e3e5bf64736f6c63430005110032
Deployed Bytecode
0x6080604052600436106100f35760003560e01c8063a9059cbb1161008a578063cbefe55c11610059578063cbefe55c14610784578063dd62ed3e14610799578063e5c5a3e6146107d4578063f2fde38b1461080f576100f3565b8063a9059cbb14610693578063af56c16a146106cc578063b76b810e146106fe578063c4861f2f1461074f576100f3565b8063313ce567116100c6578063313ce567146105e357806370a082311461060e57806395d89b4114610641578063a77652ba14610656576100f3565b806306fdde03146104a2578063095ea7b31461052c57806318160ddd1461057957806323b872dd146105a0575b6007546001600160801b031634108015906101205750600754600160801b90046001600160801b03163411155b610166576040805162461bcd60e51b815260206004820152601260248201527115dc9bdb99c8115d1a195c88185b5bdd5b9d60721b604482015290519081900360640190fd5b600080600860019054906101000a90046001600160a01b03166001600160a01b031663dacf7f22336101ce6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061084292505050565b604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529190921660248201528151604480830193928290030181600087803b15801561021b57600080fd5b505af115801561022f573d6000803e3d6000fd5b505050506040513d604081101561024557600080fd5b5080516020909101519092509050816102a5576040805162461bcd60e51b815260206004820181905260248201527f526566657272657220776173206e6f7420736574206279206465784769766572604482015290519081900360640190fd5b60006102b834601463ffffffff61086216565b905060006102de60646102d234605a63ffffffff6108ad16565b9063ffffffff61086216565b90506000806102ec34610906565b9092509050600061030960646102d285605a63ffffffff6108ad16565b60085490915060009061010090046001600160a01b031663d8f4ce2a8761032e61093f565b6040518363ffffffff1660e01b815260040180826001600160a01b03166001600160a01b031681526020019150506020604051808303818588803b15801561037557600080fd5b505af1158015610389573d6000803e3d6000fd5b50505050506040513d60208110156103a057600080fd5b50519050806103e05760405162461bcd60e51b81526004018080602001828103825260338152602001806118da6033913960400191505060405180910390fd5b6103f16103eb61093f565b83610944565b866001600160a01b031661040361093f565b604080518881526020810187905280820186905290516001600160a01b0392909216917ef93dbdb72854b6b6fb35433086556f2635fc83c37080c667496fecfa650fb49181900360600190a37f25e22348bf71130da943f466df52188b07d10e528c56c8c4d5b07af393675f51610478610a34565b6040805191825267ffffffffffffffff421660208301528051918290030190a15050505050505050005b3480156104ae57600080fd5b506104b7610a80565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f15781810151838201526020016104d9565b50505050905090810190601f16801561051e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053857600080fd5b506105656004803603604081101561054f57600080fd5b506001600160a01b038135169060200135610b16565b604080519115158252519081900360200190f35b34801561058557600080fd5b5061058e610b33565b60408051918252519081900360200190f35b3480156105ac57600080fd5b50610565600480360360608110156105c357600080fd5b506001600160a01b03813581169160208101359091169060400135610b39565b3480156105ef57600080fd5b506105f8610bc7565b6040805160ff9092168252519081900360200190f35b34801561061a57600080fd5b5061058e6004803603602081101561063157600080fd5b50356001600160a01b0316610bd0565b34801561064d57600080fd5b506104b7610beb565b6105656004803603606081101561066c57600080fd5b5080356001600160a01b03908116916020810135909116906040013563ffffffff16610c4c565b34801561069f57600080fd5b50610565600480360360408110156106b657600080fd5b506001600160a01b038135169060200135610e0e565b610565600480360360408110156106e257600080fd5b5080356001600160a01b0316906020013563ffffffff16610f17565b34801561070a57600080fd5b506107316004803603602081101561072157600080fd5b50356001600160a01b031661101b565b60408051938452602084019290925282820152519081900360600190f35b34801561075b57600080fd5b506107826004803603602081101561077257600080fd5b50356001600160a01b0316611050565b005b34801561079057600080fd5b5061058e610a34565b3480156107a557600080fd5b5061058e600480360360408110156107bc57600080fd5b506001600160a01b03813581169160200135166110f5565b3480156107e057600080fd5b50610782600480360360408110156107f757600080fd5b506001600160801b0381358116916020013516611120565b34801561081b57600080fd5b506107826004803603602081101561083257600080fd5b50356001600160a01b03166111e4565b60008151601414156108595750601481015161085d565b5060005b919050565b60006108a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061126f565b90505b92915050565b6000826108bc575060006108a7565b828202828482816108c957fe5b04146108a45760405162461bcd60e51b815260040180806020018281038252602181526020018061198f6021913960400191505060405180910390fd5b600080600061091484611311565b90506000610934826102d287670de0b6b3a764000063ffffffff6108ad16565b935090915050915091565b335b90565b6001600160a01b03821661099f576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6006546109b2908263ffffffff61137016565b6006556001600160a01b0382166000908152602081905260409020546109de908263ffffffff61137016565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60065460009047801580610a46575081155b15610a5d57670de0b6b3a764000092505050610941565b610a79826102d283670de0b6b3a764000063ffffffff6108ad16565b9250505090565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b0c5780601f10610ae157610100808354040283529160200191610b0c565b820191906000526020600020905b815481529060010190602001808311610aef57829003601f168201915b5050505050905090565b6000610b2a610b2361093f565b84846113ca565b50600192915050565b60065490565b6000610b468484846114b6565b610bbc84610b5261093f565b610bb7856040518060600160405280602881526020016119b0602891396001600160a01b038a16600090815260016020526040812090610b9061093f565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61161216565b6113ca565b5060015b9392505050565b60085460ff1690565b6001600160a01b031660009081526020819052604090205490565b60058054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610b0c5780601f10610ae157610100808354040283529160200191610b0c565b6003546000906001600160a01b0316610c6361093f565b6001600160a01b031614610cbe576040805162461bcd60e51b815260206004820152601a60248201527f4f6e6c7920666f7220646578476976657220636f6e7472616374000000000000604482015290519081900360640190fd5b600080610cca34610906565b90925090506000610ce283600363ffffffff61086216565b9050610cee8682610944565b80610cf887610bd0565b1015610d0057fe5b6001600160a01b0387163014610de557610d1a8782610944565b80610d2488610bd0565b1015610d2c57fe5b8463ffffffff16876001600160a01b03167fdd92a58fecb7399bb560327a37ddb56d4dd3d8cd956a803243557a559718e9b1610d7260033461086290919063ffffffff16565b6040805191825260208201879052818101869052519081900360600190a37f25e22348bf71130da943f466df52188b07d10e528c56c8c4d5b07af393675f51610db9610a34565b6040805191825267ffffffffffffffff421660208301528051918290030190a160019350505050610bc0565b7f25e22348bf71130da943f466df52188b07d10e528c56c8c4d5b07af393675f51610db9610a34565b6003546000906001600160a01b0384811691161480610e3557506001600160a01b03831630145b15610f05576000610e466000611311565b90506000610e856ec097ce7bc90715b34b9f10000000006102d284610e7988670de0b6b3a764000063ffffffff6108ad16565b9063ffffffff6108ad16565b9050610e98610e9261093f565b8561166c565b610ea9610ea361093f565b82611768565b610eb161093f565b604080518681526020810185905280820184905290516001600160a01b0392909216917f846c37eef631e0943682d87352ec117c20008eb7f425c9b85ac011a6d4774cc09181900360600190a25050610b2a565b610b2a610f1061093f565b84846114b6565b6003546000906001600160a01b0316610f2e61093f565b6001600160a01b031614610f89576040805162461bcd60e51b815260206004820152601a60248201527f4f6e6c7920666f7220646578476976657220636f6e7472616374000000000000604482015290519081900360640190fd5b600080610f9534610906565b91509150610fa38583610944565b81610fad86610bd0565b1015610fb557fe5b604080516001600160a01b038716815263ffffffff861660208201523481830152606081018490526080810183905290517f880d7511ec4ecb76777409cb2f64d6a55bbd934603bdb410eb8a59aee56d0a299181900360a00190a1506001949350505050565b600080600080611029610a34565b90506000611035610b33565b9050600061104287610bd0565b929791965091945092505050565b6002546001600160a01b031661106461093f565b6001600160a01b0316146110b0576040805162461bcd60e51b815260206004820152600e60248201526d27b7363c903337b91037bbb732b960911b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b038381169182179283905560088054610100600160a81b031916610100840217905591909116146110f257fe5b50565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6002546001600160a01b031661113461093f565b6001600160a01b031614611180576040805162461bcd60e51b815260206004820152600e60248201526d27b7363c903337b91037bbb732b960911b604482015290519081900360640190fd5b600780546fffffffffffffffffffffffffffffffff19166001600160801b038481169182178116600160801b858316021792839055919091161480156111da57506007546001600160801b03828116600160801b90920416145b6111e057fe5b5050565b6002546001600160a01b03166111f861093f565b6001600160a01b031614611244576040805162461bcd60e51b815260206004820152600e60248201526d27b7363c903337b91037bbb732b960911b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b038381169182179283905591909116146110f257fe5b600081836112fb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112c05781810151838201526020016112a8565b50505050905090810190601f1680156112ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161130757fe5b0495945050505050565b60065460009081611328478563ffffffff61185216565b9050801580611335575081155b1561134c57670de0b6b3a76400009250505061085d565b611368826102d283670de0b6b3a764000063ffffffff6108ad16565b949350505050565b6000828201838110156108a4576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b03831661140f5760405162461bcd60e51b8152600401808060200182810382526024815260200180611a1e6024913960400191505060405180910390fd5b6001600160a01b0382166114545760405162461bcd60e51b815260040180806020018281038252602281526020018061190d6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166114fb5760405162461bcd60e51b81526004018080602001828103825260258152602001806119f96025913960400191505060405180910390fd5b6001600160a01b0382166115405760405162461bcd60e51b81526004018080602001828103825260238152602001806118956023913960400191505060405180910390fd5b6115838160405180606001604052806026815260200161192f602691396001600160a01b038616600090815260208190526040902054919063ffffffff61161216565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546115b8908263ffffffff61137016565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156116645760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156112c05781810151838201526020016112a8565b505050900390565b6001600160a01b0382166116b15760405162461bcd60e51b81526004018080602001828103825260218152602001806119d86021913960400191505060405180910390fd5b6116f4816040518060600160405280602281526020016118b8602291396001600160a01b038516600090815260208190526040902054919063ffffffff61161216565b6001600160a01b038316600090815260208190526040902055600654611720908263ffffffff61185216565b6006556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b804710156117bd576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114611808576040519150601f19603f3d011682016040523d82523d6000602084013e61180d565b606091505b505090508061184d5760405162461bcd60e51b815260040180806020018281038252603a815260200180611955603a913960400191505060405180910390fd5b505050565b60006108a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061161256fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365446f6e6174696f6e20776173206e6f74206163636570746564206f72207472616e73666572656420627920646578476976657245524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a72315820f182e9e872a558fabad50eacb0e6eee240ec14bb8afb477eada44372f7e3e5bf64736f6c63430005110032
Deployed Bytecode Sourcemap
1786:10044:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3591:4;;-1:-1:-1;;;;;3591:4:0;3578:9;:17;;;;:38;;-1:-1:-1;3612:4:0;;-1:-1:-1;;;3612:4:0;;-1:-1:-1;;;;;3612:4:0;3599:9;:17;;3578:38;3569:70;;;;;-1:-1:-1;;;3569:70:0;;;;;;;;;;;;-1:-1:-1;;;3569:70:0;;;;;;;;;;;;;;;4312:19;4333:16;4353:8;;;;;;;;;-1:-1:-1;;;;;4353:8:0;-1:-1:-1;;;;;4353:34:0;;4388:10;4400:24;4415:8;;4400:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4400:14:0;;-1:-1:-1;;;4400:24:0:i;:::-;4353:72;;;-1:-1:-1;;;;;;4353:72:0;;;;;;;-1:-1:-1;;;;;4353:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4353:72:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;4353:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4353:72:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4353:72:0;;;;;;;;;-1:-1:-1;4353:72:0;-1:-1:-1;4353:72:0;4436:59;;;;;-1:-1:-1;;;4436:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4516:16;4535:17;:9;4549:2;4535:17;:13;:17;:::i;:::-;4516:36;-1:-1:-1;4563:22:0;4588:26;4610:3;4588:17;:9;4602:2;4588:17;:13;:17;:::i;:::-;:21;:26;:21;:26;:::i;:::-;4563:51;;4636:16;4654:14;4672:30;4692:9;4672:19;:30::i;:::-;4635:67;;-1:-1:-1;4635:67:0;-1:-1:-1;4723:25:0;4751:28;4775:3;4751:19;4635:67;4767:2;4751:19;:15;:19;:::i;:28::-;4816:8;;4723:56;;-1:-1:-1;4800:13:0;;4816:8;;;-1:-1:-1;;;;;4816:8:0;:27;4850:11;4863:12;:10;:12::i;:::-;4816:60;;;;;;;;;;;;;-1:-1:-1;;;;;4816:60:0;-1:-1:-1;;;;;4816:60:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4816:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4816:60:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4816:60:0;;-1:-1:-1;4816:60:0;4887:72;;;;-1:-1:-1;;;4887:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4980:41;4986:12;:10;:12::i;:::-;5000:20;4980:5;:41::i;:::-;5065:8;-1:-1:-1;;;;;5047:79:0;5051:12;:10;:12::i;:::-;5047:79;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5047:79:0;;;;;;;;;;;;;;5142:46;5159:15;:13;:15::i;:::-;5142:46;;;;;;;5183:3;5142:46;;;;;;;;;;;;;;3650:1;;;;;;;;1786:10044;7948:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7948:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7948:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8596:152;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8596:152:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8596:152:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;8229:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8229:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;8760:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8760:304:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8760:304:0;;;;;;;;;;;;;;;;;:::i;8134:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8134:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8332:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8332:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8332:110:0;-1:-1:-1;;;;;8332:110:0;;:::i;8039:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8039:87:0;;;:::i;5826:944::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5826:944:0;;-1:-1:-1;;;;;5826:944:0;;;;;;;;;;;;;;;;;;:::i;5214:594::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5214:594:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5214:594:0;;;;;;;;:::i;6788:455::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6788:455:0;;-1:-1:-1;;;;;6788:455:0;;;;;;;;:::i;11541:286::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11541:286:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11541:286:0;-1:-1:-1;;;;;11541:286:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3816:217;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3816:217:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3816:217:0;-1:-1:-1;;;;;3816:217:0;;:::i;:::-;;11211:318;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11211:318:0;;;:::i;8454:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8454:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8454:134:0;;;;;;;;;;:::i;4045:179::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4045:179:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4045:179:0;;;;;;;;;;:::i;3667:137::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3667:137:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3667:137:0;-1:-1:-1;;;;;3667:137:0;;:::i;10913:290::-;10977:12;11006:3;:10;11020:2;11006:16;11002:194;;;-1:-1:-1;11090:2:0;11081:12;;11075:19;11123:11;;11002:194;-1:-1:-1;11182:1:0;11002:194;10913:290;;;:::o;892:132::-;950:7;977:39;981:1;984;977:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;970:46;;892:132;;;;;:::o;636:248::-;694:7;718:6;714:47;;-1:-1:-1;748:1:0;741:8;;714:47;785:5;;;789:1;785;:5;:1;809:5;;;;;:10;801:56;;;;-1:-1:-1;;;801:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7261:201;7322:4;7328;7345:9;7357:15;7368:3;7357:10;:15::i;:::-;7345:27;-1:-1:-1;7383:11:0;7397:25;7345:27;7397:15;:3;7405:6;7397:15;:7;:15;:::i;:25::-;7383:39;-1:-1:-1;7449:4:0;;-1:-1:-1;;7261:201:0;;;:::o;7842:98::-;7922:10;7842:98;;:::o;9551:308::-;-1:-1:-1;;;;;9627:21:0;;9619:65;;;;;-1:-1:-1;;;9619:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9712:12;;:24;;9729:6;9712:24;:16;:24;:::i;:::-;9697:12;:39;-1:-1:-1;;;;;9768:18:0;;:9;:18;;;;;;;;;;;:30;;9791:6;9768:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;9747:18:0;;:9;:18;;;;;;;;;;;:51;;;;9814:37;;;;;;;9747:18;;:9;;9814:37;;;;;;;;;;9551:308;;:::o;11211:318::-;11288:12;;11257:4;;11340:21;11376:26;;;:41;;-1:-1:-1;11406:11:0;;11376:41;11372:87;;;11441:6;11434:13;;;;;;11372:87;11476:45;11514:6;11476:33;:21;11502:6;11476:33;:25;:33;:::i;:45::-;11469:52;;;;11211:318;:::o;7948:83::-;8018:5;8011:12;;;;;;;;-1:-1:-1;;8011:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7985:13;;8011:12;;8018:5;;8011:12;;8018:5;8011:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7948:83;:::o;8596:152::-;8662:4;8679:39;8688:12;:10;:12::i;:::-;8702:7;8711:6;8679:8;:39::i;:::-;-1:-1:-1;8736:4:0;8596:152;;;;:::o;8229:91::-;8300:12;;8229:91;:::o;8760:304::-;8849:4;8866:36;8876:6;8884:9;8895:6;8866:9;:36::i;:::-;8913:121;8922:6;8930:12;:10;:12::i;:::-;8944:89;8982:6;8944:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8944:19:0;;;;;;:11;:19;;;;;;8964:12;:10;:12::i;:::-;-1:-1:-1;;;;;8944:33:0;;;;;;;;;;;;-1:-1:-1;8944:33:0;;;:89;;:37;:89;:::i;:::-;8913:8;:121::i;:::-;-1:-1:-1;9052:4:0;8760:304;;;;;;:::o;8134:83::-;8200:9;;;;8134:83;:::o;8332:110::-;-1:-1:-1;;;;;8416:18:0;8389:7;8416:18;;;;;;;;;;;;8332:110::o;8039:87::-;8111:7;8104:14;;;;;;;;-1:-1:-1;;8104:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8078:13;;8104:14;;8111:7;;8104:14;;8111:7;8104:14;;;;;;;;;;;;;;;;;;;;;;;;5826:944;3455:16;;5933:4;;-1:-1:-1;;;;;3455:16:0;3439:12;:10;:12::i;:::-;-1:-1:-1;;;;;3439:32:0;;3430:72;;;;;-1:-1:-1;;;3430:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5965:21;5988:9;6001:30;6021:9;6001:19;:30::i;:::-;5964:67;;-1:-1:-1;5964:67:0;-1:-1:-1;6046:16:0;6065:23;5964:67;6086:1;6065:23;:20;:23;:::i;:::-;6046:42;;6117:27;6123:7;6132:11;6117:5;:27::i;:::-;6202:11;6180:18;6190:7;6180:9;:18::i;:::-;:33;;6173:41;;;;-1:-1:-1;;;;;6243:25:0;;6263:4;6243:25;6239:524;;6299:28;6305:8;6315:11;6299:5;:28::i;:::-;6386:11;6363:19;6373:8;6363:9;:19::i;:::-;:34;;6356:42;;;;6449:2;6432:57;;6439:8;-1:-1:-1;;;;;6432:57:0;;6453:16;6467:1;6453:9;:13;;:16;;;;:::i;:::-;6432:57;;;;;;;;;;;;;;;;;;;;;;;;;;;6509:46;6526:15;:13;:15::i;:::-;6509:46;;;;;;;6550:3;6509:46;;;;;;;;;;;;;;6592:4;6584:13;;;;;;;6239:524;6663:46;6680:15;:13;:15::i;5214:594::-;5324:16;;5288:4;;-1:-1:-1;;;;;5311:29:0;;;5324:16;;5311:29;;:59;;-1:-1:-1;;;;;;5344:26:0;;5365:4;5344:26;5311:59;5307:472;;;5389:9;5401:13;5412:1;5401:10;:13::i;:::-;5389:25;-1:-1:-1;5429:14:0;5446:45;5484:6;5446:33;5389:25;5446:23;:11;5462:6;5446:23;:15;:23;:::i;:::-;:27;:33;:27;:33;:::i;:45::-;5429:62;;5520:32;5526:12;:10;:12::i;:::-;5540:11;5520:5;:32::i;:::-;5569:34;5579:12;:10;:12::i;:::-;5593:9;5569;:34::i;:::-;5642:12;:10;:12::i;:::-;5637:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5637:48:0;;;;;;;;;;;;;;5307:472;;;;;5720:47;5730:12;:10;:12::i;:::-;5744:9;5755:11;5720:9;:47::i;6788:455::-;3455:16;;6903:4;;-1:-1:-1;;;;;3455:16:0;3439:12;:10;:12::i;:::-;-1:-1:-1;;;;;3439:32:0;;3430:72;;;;;-1:-1:-1;;;3430:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6930:16;6948:9;6961:30;6981:9;6961:19;:30::i;:::-;6929:62;;;;7012:31;7018:11;7031;7012:5;:31::i;:::-;7087:11;7061:22;7071:11;7061:9;:22::i;:::-;:37;;7054:45;;;;7125:86;;;-1:-1:-1;;;;;7125:86:0;;;;;;;;;;;7182:9;7125:86;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7231:4:0;;6788:455;-1:-1:-1;;;;6788:455:0:o;11541:286::-;11602:7;11611;11620;11640:13;11656:15;:13;:15::i;:::-;11640:31;;11682:15;11700:13;:11;:13::i;:::-;11682:31;;11724:20;11747:15;11757:4;11747:9;:15::i;:::-;11781:8;;11791:10;;-1:-1:-1;11781:8:0;;-1:-1:-1;11541:286:0;-1:-1:-1;;;11541:286:0:o;3816:217::-;3339:6;;-1:-1:-1;;;;;3339:6:0;3323:12;:10;:12::i;:::-;-1:-1:-1;;;;;3323:22:0;;3314:50;;;;;-1:-1:-1;;;3314:50:0;;;;;;;;;;;;-1:-1:-1;;;3314:50:0;;;;;;;;;;;;;;;3896:16;:29;;-1:-1:-1;;;;;;3896:29:0;-1:-1:-1;;;;;3896:29:0;;;;;;;;;;3936:8;:40;;-1:-1:-1;;;;;;3936:40:0;3896:29;3936:40;;;;;3994:16;;;;:30;3987:38;;;;3816:217;:::o;8454:134::-;-1:-1:-1;;;;;8553:18:0;;;8526:7;8553:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8454:134::o;4045:179::-;3339:6;;-1:-1:-1;;;;;3339:6:0;3323:12;:10;:12::i;:::-;-1:-1:-1;;;;;3323:22:0;;3314:50;;;;;-1:-1:-1;;;3314:50:0;;;;;;;;;;;;-1:-1:-1;;;3314:50:0;;;;;;;;;;;;;;;4128:4;:13;;-1:-1:-1;;4128:13:0;-1:-1:-1;;;;;4128:13:0;;;;;;4152;;-1:-1:-1;;;4152:13:0;;;;;;;;;4183:4;;;;:14;:32;;;;-1:-1:-1;4201:4:0;;-1:-1:-1;;;;;4201:14:0;;;-1:-1:-1;;;4201:4:0;;;;:14;4183:32;4176:40;;;;4045:179;;:::o;3667:137::-;3339:6;;-1:-1:-1;;;;;3339:6:0;3323:12;:10;:12::i;:::-;-1:-1:-1;;;;;3323:22:0;;3314:50;;;;;-1:-1:-1;;;3314:50:0;;;;;;;;;;;;-1:-1:-1;;;3314:50:0;;;;;;;;;;;;;;;3742:6;:17;;-1:-1:-1;;;;;;3742:17:0;-1:-1:-1;;;;;3742:17:0;;;;;;;;;;3777:6;;;;:18;3770:26;;;1032:189;1118:7;1153:12;1146:5;1138:28;;;;-1:-1:-1;;;1138:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1138:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1177:9;1193:1;1189;:5;;;;;;;1032:189;-1:-1:-1;;;;;1032:189:0:o;7476:354::-;7569:12;;7528:4;;;7618:30;:21;7644:3;7618:30;:25;:30;:::i;:::-;7592:56;-1:-1:-1;7673:23:0;;;:38;;-1:-1:-1;7700:11:0;;7673:38;7669:84;;;7735:6;7728:13;;;;;;7669:84;7780:42;7815:6;7780:30;:18;7803:6;7780:30;:22;:30;:::i;:42::-;7773:49;7476:354;-1:-1:-1;;;;7476:354:0:o;107:179::-;165:7;197:5;;;221:6;;;;213:46;;;;;-1:-1:-1;;;213:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10227:338;-1:-1:-1;;;;;10321:19:0;;10313:68;;;;-1:-1:-1;;;10313:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10400:21:0;;10392:68;;;;-1:-1:-1;;;10392:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10473:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10525:32;;;;;;;;;;;;;;;;;10227:338;;;:::o;9072:471::-;-1:-1:-1;;;;;9170:20:0;;9162:70;;;;-1:-1:-1;;;9162:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9251:23:0;;9243:71;;;;-1:-1:-1;;;9243:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9347;9369:6;9347:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9347:17:0;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;9327:17:0;;;:9;:17;;;;;;;;;;;:91;;;;9452:20;;;;;;;:32;;9477:6;9452:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;9429:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;9500:35;;;;;;;9429:20;;9500:35;;;;;;;;;;;;;9072:471;;;:::o;438:190::-;524:7;560:12;552:6;;;;544:29;;;;-1:-1:-1;;;544:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;544:29:0;-1:-1:-1;;;596:5:0;;;438:190::o;9867:348::-;-1:-1:-1;;;;;9943:21:0;;9935:67;;;;-1:-1:-1;;;9935:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10036:68;10059:6;10036:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10036:18:0;;:9;:18;;;;;;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;10015:18:0;;:9;:18;;;;;;;;;;:89;10130:12;;:24;;10147:6;10130:24;:16;:24;:::i;:::-;10115:12;:39;10170:37;;;;;;;;10196:1;;-1:-1:-1;;;;;10170:37:0;;;;;;;;;;;;9867:348;;:::o;10577:324::-;10692:6;10667:21;:31;;10659:73;;;;;-1:-1:-1;;;10659:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10772:32;;10754:12;;-1:-1:-1;;;;;10772:14:0;;;10793:6;;10754:12;10772:32;10754:12;10772:32;10793:6;10772:14;:32;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;10753:51:0;;;10823:7;10815:78;;;;-1:-1:-1;;;10815:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10577:324;;;:::o;294:136::-;352:7;379:43;383:1;386;379:43;;;;;;;;;;;;;;;;;:3;:43::i
Swarm Source
bzzr://f182e9e872a558fabad50eacb0e6eee240ec14bb8afb477eada44372f7e3e5bf
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,238.64 | 0.000000000000000001 | <$0.000001 |
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.