Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 4,508 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 20591346 | 142 days ago | IN | 0 ETH | 0.00012959 | ||||
Claim | 19357368 | 315 days ago | IN | 0 ETH | 0.00350895 | ||||
Claim | 19285384 | 325 days ago | IN | 0 ETH | 0.00361784 | ||||
Claim | 18005043 | 505 days ago | IN | 0 ETH | 0.000722 | ||||
Claim | 17949623 | 512 days ago | IN | 0 ETH | 0.00089668 | ||||
Claim | 17561862 | 567 days ago | IN | 0 ETH | 0.00087437 | ||||
Claim | 17476238 | 579 days ago | IN | 0 ETH | 0.00104663 | ||||
Claim | 17434222 | 585 days ago | IN | 0 ETH | 0.00097242 | ||||
Claim | 17245498 | 611 days ago | IN | 0 ETH | 0.00510681 | ||||
Claim | 17245496 | 611 days ago | IN | 0 ETH | 0.00474237 | ||||
Claim | 17171166 | 622 days ago | IN | 0 ETH | 0.00445656 | ||||
Claim | 17139337 | 626 days ago | IN | 0 ETH | 0.00235667 | ||||
Claim | 17133605 | 627 days ago | IN | 0 ETH | 0.00240091 | ||||
Claim | 17120344 | 629 days ago | IN | 0 ETH | 0.00250571 | ||||
Claim | 17100371 | 632 days ago | IN | 0 ETH | 0.00208853 | ||||
Claim | 17091392 | 633 days ago | IN | 0 ETH | 0.00271995 | ||||
Claim | 17091184 | 633 days ago | IN | 0 ETH | 0.00305452 | ||||
Claim | 17074104 | 635 days ago | IN | 0 ETH | 0.0027183 | ||||
Claim | 17065005 | 637 days ago | IN | 0 ETH | 0.00175296 | ||||
Claim | 17063505 | 637 days ago | IN | 0 ETH | 0.00123873 | ||||
Claim | 17058485 | 638 days ago | IN | 0 ETH | 0.0018711 | ||||
Claim | 17053969 | 638 days ago | IN | 0 ETH | 0.00178603 | ||||
Claim | 17045065 | 640 days ago | IN | 0 ETH | 0.0013725 | ||||
Claim | 17020450 | 643 days ago | IN | 0 ETH | 0.00186711 | ||||
Claim | 17020015 | 643 days ago | IN | 0 ETH | 0.00173533 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
20591346 | 142 days ago | 0 ETH | |||||
19357368 | 315 days ago | 0 ETH | |||||
19285384 | 325 days ago | 0 ETH | |||||
18005043 | 505 days ago | 0 ETH | |||||
17949623 | 512 days ago | 0 ETH | |||||
17561862 | 567 days ago | 0 ETH | |||||
17494250 | 576 days ago | 0 ETH | |||||
17494250 | 576 days ago | 0 ETH | |||||
17476238 | 579 days ago | 0 ETH | |||||
17434222 | 585 days ago | 0 ETH | |||||
17245498 | 611 days ago | 0 ETH | |||||
17245496 | 611 days ago | 0 ETH | |||||
17171166 | 622 days ago | 0 ETH | |||||
17139337 | 626 days ago | 0 ETH | |||||
17133605 | 627 days ago | 0 ETH | |||||
17120344 | 629 days ago | 0 ETH | |||||
17100371 | 632 days ago | 0 ETH | |||||
17091392 | 633 days ago | 0 ETH | |||||
17091184 | 633 days ago | 0 ETH | |||||
17074104 | 635 days ago | 0 ETH | |||||
17065005 | 637 days ago | 0 ETH | |||||
17063505 | 637 days ago | 0 ETH | |||||
17058485 | 638 days ago | 0 ETH | |||||
17053969 | 638 days ago | 0 ETH | |||||
17045065 | 640 days ago | 0 ETH |
Loading...
Loading
Contract Name:
Vesting
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-26 */ pragma solidity ^0.6.12; /* SPDX-License-Identifier: UNLICENSED */ // ---------------------------------------------------------------------------- // Safe maths // ---------------------------------------------------------------------------- library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a); } function sub(uint a, uint b) internal pure returns (uint c) { require(b <= a); c = a - b; } function mul(uint a, uint b) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function div(uint a, uint b) internal pure returns (uint c) { require(b > 0); c = a / b; } } // ---------------------------------------------------------------------------- // Owned contract // ---------------------------------------------------------------------------- contract Owned { address public owner; address public newOwner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } // ---------------------------------------------------------------------------- // ERC Token Standard #20 Interface // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md // ---------------------------------------------------------------------------- abstract contract ERC20Interface { function totalSupply() virtual public view returns (uint); function balanceOf(address tokenOwner) virtual public view returns (uint balance); function allowance(address tokenOwner, address spender) virtual public view returns (uint remaining); function transfer(address to, uint tokens) virtual public returns (bool success); function approve(address spender, uint tokens) virtual public returns (bool success); function transferFrom(address from, address to, uint tokens) virtual public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } struct Schedule { uint32 start; uint32 length; uint256 initial; uint256 tokens; } contract Vesting is Owned, ERC20Interface { using SafeMath for uint; string public symbol; string public name; uint8 public decimals; mapping(address => Schedule) public schedules; mapping(address => uint256) balances; address public lockedTokenAddress; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ constructor() public { symbol = "VTLM"; name = "Vesting Alien Worlds Trilium"; decimals = 4; } /* ERC-20 functions, null most of them */ function balanceOf(address tokenOwner) override virtual public view returns (uint balance) { return balances[tokenOwner]; } function totalSupply() override virtual public view returns (uint) { return 0; } function allowance(address tokenOwner, address spender) override virtual public view returns (uint remaining){ return 0; } function transfer(address to, uint tokens) override virtual public returns (bool success) { require(false, "Use the claim function, not transfer"); } function approve(address spender, uint tokens) override virtual public returns (bool success) { require(false, "Cannot approve spending"); } function transferFrom(address from, address to, uint tokens) override virtual public returns (bool success) { require(false, "Use the claim function, not transferFrom"); } /* My functions */ function vestedTotal(address user) private view returns (uint256){ uint256 time_now = block.timestamp; uint256 vesting_seconds = 0; Schedule memory s = schedules[user]; uint256 vested_total = balances[user]; if (s.start > 0) { if (time_now >= s.start) { vesting_seconds = time_now - s.start; uint256 vest_per_second_sats = s.tokens.sub(s.initial); vest_per_second_sats = vest_per_second_sats.div(s.length); vested_total = vesting_seconds.mul(vest_per_second_sats); vested_total = vested_total.add(s.initial); // amount they can withdraw } else { vested_total = 1; } if (vested_total > s.tokens) { vested_total = s.tokens; } } return vested_total; } function maxClaim(address user) public view returns (uint256) { uint256 vested_total = vestedTotal(user); Schedule memory s = schedules[user]; uint256 max = 0; if (s.start > 0){ uint256 claimed = s.tokens.sub(balances[user]); max = vested_total.sub(claimed); if (max > balances[user]){ max = balances[user]; } } return max; } function claim(uint256 amount) public { require(lockedTokenAddress != address(0x0), "Locked token contract has not been set"); require(amount > 0, "Must claim more than 0"); require(balances[msg.sender] > 0, "No vesting balance found"); uint256 vested_total = vestedTotal(msg.sender); Schedule memory s = schedules[msg.sender]; if (s.start > 0){ uint256 remaining_balance = balances[msg.sender].sub(amount); if (vested_total < s.tokens) { uint min_balance = s.tokens.sub(vested_total); require(remaining_balance >= min_balance, "Cannot transfer this amount due to vesting locks"); } } balances[msg.sender] = balances[msg.sender].sub(amount); ERC20Interface(lockedTokenAddress).transfer(msg.sender, amount); } function setSchedule(address user, uint32 start, uint32 length, uint256 initial, uint256 amount) public onlyOwner { schedules[user].start = start; schedules[user].length = length; schedules[user].initial = initial; schedules[user].tokens = amount; } function addTokens(address newOwner, uint256 amount) public onlyOwner { require(lockedTokenAddress != address(0x0), "Locked token contract has not been set"); ERC20Interface tokenContract = ERC20Interface(lockedTokenAddress); uint256 userAllowance = tokenContract.allowance(msg.sender, address(this)); uint256 fromBalance = tokenContract.balanceOf(msg.sender); require(fromBalance >= amount, "Sender has insufficient balance"); require(userAllowance >= amount, "Please allow tokens to be spent by this contract"); tokenContract.transferFrom(msg.sender, address(this), amount); balances[newOwner] = balances[newOwner].add(amount); emit Transfer(address(0x0), newOwner, amount); } function removeTokens(address owner, uint256 amount) public onlyOwner { ERC20Interface tokenContract = ERC20Interface(lockedTokenAddress); tokenContract.transfer(owner, amount); balances[owner] = balances[owner].sub(amount); } function setTokenContract(address _lockedTokenAddress) public onlyOwner { lockedTokenAddress = _lockedTokenAddress; } // ------------------------------------------------------------------------ // Don't accept ETH // ------------------------------------------------------------------------ receive () external payable { revert(); } // ------------------------------------------------------------------------ // Owner can transfer out any accidentally sent ERC20 tokens // ------------------------------------------------------------------------ function transferAnyERC20Token(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) { return ERC20Interface(tokenAddress).transfer(owner, tokens); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"maxClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"schedules","outputs":[{"internalType":"uint32","name":"start","type":"uint32"},{"internalType":"uint32","name":"length","type":"uint32"},{"internalType":"uint256","name":"initial","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint32","name":"start","type":"uint32"},{"internalType":"uint32","name":"length","type":"uint32"},{"internalType":"uint256","name":"initial","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSchedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lockedTokenAddress","type":"address"}],"name":"setTokenContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600481526020017f56544c4d00000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f9291906200010f565b506040518060400160405280601c81526020017f56657374696e6720416c69656e20576f726c6473205472696c69756d0000000081525060039080519060200190620000ed9291906200010f565b5060048060006101000a81548160ff021916908360ff160217905550620001b5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015257805160ff191683800117855562000183565b8280016001018555821562000183579182015b828111156200018257825182559160200191906001019062000165565b5b50905062000192919062000196565b5090565b5b80821115620001b157600081600090555060010162000197565b5090565b6123fc80620001c56000396000f3fe6080604052600436106101395760003560e01c806380c3780f116100ab578063b3efee981161006f578063b3efee981461072e578063bbcd5bbe14610793578063d4ee1d90146107e4578063dc39d06d14610825578063dd62ed3e14610896578063f2fde38b1461091b57610143565b806380c3780f146105255780638da5cb5b146105ab57806395d89b41146105ec578063a666ff3c1461067c578063a9059cbb146106bd57610143565b8063313ce567116100fd578063313ce56714610360578063379607f51461038e5780636039fbdb146103c95780636e1b14e71461042457806370a08231146104a957806379ba50971461050e57610143565b806306fdde0314610148578063095ea7b3146101d857806318160ddd146102495780631e10eeaf1461027457806323b872dd146102cf57610143565b3661014357600080fd5b600080fd5b34801561015457600080fd5b5061015d61096c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019d578082015181840152602081019050610182565b50505050905090810190601f1680156101ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e457600080fd5b50610231600480360360408110156101fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a0a565b60405180821515815260200191505060405180910390f35b34801561025557600080fd5b5061025e610a85565b6040518082815260200191505060405180910390f35b34801561028057600080fd5b506102cd6004803603604081101561029757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a8a565b005b3480156102db57600080fd5b50610348600480360360608110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c50565b60405180821515815260200191505060405180910390f35b34801561036c57600080fd5b50610375610caf565b604051808260ff16815260200191505060405180910390f35b34801561039a57600080fd5b506103c7600480360360208110156103b157600080fd5b8101908080359060200190929190505050610cc2565b005b3480156103d557600080fd5b50610422600480360360408110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ac565b005b34801561043057600080fd5b506104a7600480360360a081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190803590602001909291905050506116d9565b005b3480156104b557600080fd5b506104f8600480360360208110156104cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611888565b6040518082815260200191505060405180910390f35b34801561051a57600080fd5b506105236118d1565b005b34801561053157600080fd5b506105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a6d565b604051808563ffffffff1681526020018463ffffffff16815260200183815260200182815260200194505050505060405180910390f35b3480156105b757600080fd5b506105c0611abd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f857600080fd5b50610601611ae1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610641578082015181840152602081019050610626565b50505050905090810190601f16801561066e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068857600080fd5b50610691611b7f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106c957600080fd5b50610716600480360360408110156106e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ba5565b60405180821515815260200191505060405180910390f35b34801561073a57600080fd5b5061077d6004803603602081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c03565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107e2600480360360208110156107b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ddf565b005b3480156107f057600080fd5b506107f9611e7b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083157600080fd5b5061087e6004803603604081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ea1565b60405180821515815260200191505060405180910390f35b3480156108a257600080fd5b50610905600480360360408110156108b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd0565b6040518082815260200191505060405180910390f35b34801561092757600080fd5b5061096a6004803603602081101561093e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd8565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a025780601f106109d757610100808354040283529160200191610a02565b820191906000526020600020905b8154815290600101906020018083116109e557829003601f168201915b505050505081565b600080610a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f7420617070726f7665207370656e64696e6700000000000000000081525060200191505060405180910390fd5b92915050565b600090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae257600080fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b7a57600080fd5b505af1158015610b8e573d6000803e3d6000fd5b505050506040513d6020811015610ba457600080fd5b810190808051906020019092919050505050610c0882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806122f56028913960400191505060405180910390fd5b9392505050565b600460009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123a16026913960400191505060405180910390fd5b60008111610de0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d75737420636c61696d206d6f7265207468616e20300000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610e95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2076657374696e672062616c616e636520666f756e64000000000000000081525060200191505060405180910390fd5b6000610ea03361208e565b9050610eaa6122c0565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820154815260200160028201548152505090506000816000015163ffffffff161115611043576000610fbd84600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b90508160600151831015611041576000610fe484846060015161207490919063ffffffff16565b90508082101561103f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123416030913960400191505060405180910390fd5b505b505b61109583600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561116b57600080fd5b505af115801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b810190808051906020019092919050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123a16026913960400191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561135a57600080fd5b505afa15801561136e573d6000803e3d6000fd5b505050506040513d602081101561138457600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561140057600080fd5b505afa158015611414573d6000803e3d6000fd5b505050506040513d602081101561142a57600080fd5b81019080805190602001909291905050509050838110156114b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f53656e6465722068617320696e73756666696369656e742062616c616e63650081525060200191505060405180910390fd5b8382101561150c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123716030913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561159b57600080fd5b505af11580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b81019080805190602001909291905050505061162984600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225990919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173157600080fd5b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548163ffffffff021916908363ffffffff16021790555082600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160046101000a81548163ffffffff021916908363ffffffff16021790555081600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461192b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60056020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900463ffffffff16908060010154908060020154905084565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b775780601f10611b4c57610100808354040283529160200191611b77565b820191906000526020600020905b815481529060010190602001808311611b5a57829003601f168201915b505050505081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611bfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061231d6024913960400191505060405180910390fd5b92915050565b600080611c0f8361208e565b9050611c196122c0565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481526020016002820154815250509050600080826000015163ffffffff161115611dd4576000611d31600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846060015161207490919063ffffffff16565b9050611d46818561207490919063ffffffff16565b9150600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611dd257600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b505b809350505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e3757600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611efc57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611f8d57600080fd5b505af1158015611fa1573d6000803e3d6000fd5b505050506040513d6020811015611fb757600080fd5b8101908080519060200190929190505050905092915050565b600092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461203057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561208357600080fd5b818303905092915050565b600080429050600061209e6122c0565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820154815260200160028201548152505090506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000826000015163ffffffff16111561224d57816000015163ffffffff16841061223357816000015163ffffffff168403925060006121de8360400151846060015161207490919063ffffffff16565b90506121fd836020015163ffffffff168261227390919063ffffffff16565b9050612212818561229390919063ffffffff16565b915061222b83604001518361225990919063ffffffff16565b915050612238565b600190505b816060015181111561224c57816060015190505b5b80945050505050919050565b600081830190508281101561226d57600080fd5b92915050565b600080821161228157600080fd5b81838161228a57fe5b04905092915050565b6000818302905060008314806122b15750818382816122ae57fe5b04145b6122ba57600080fd5b92915050565b6040518060800160405280600063ffffffff168152602001600063ffffffff1681526020016000815260200160008152509056fe5573652074686520636c61696d2066756e6374696f6e2c206e6f74207472616e7366657246726f6d5573652074686520636c61696d2066756e6374696f6e2c206e6f74207472616e7366657243616e6e6f74207472616e73666572207468697320616d6f756e742064756520746f2076657374696e67206c6f636b73506c6561736520616c6c6f7720746f6b656e7320746f206265207370656e74206279207468697320636f6e74726163744c6f636b656420746f6b656e20636f6e747261637420686173206e6f74206265656e20736574a2646970667358221220c34321948ed714fbcae131a0c6d673e6a3f942cec61ab01a7b0c4211479ceee364736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106101395760003560e01c806380c3780f116100ab578063b3efee981161006f578063b3efee981461072e578063bbcd5bbe14610793578063d4ee1d90146107e4578063dc39d06d14610825578063dd62ed3e14610896578063f2fde38b1461091b57610143565b806380c3780f146105255780638da5cb5b146105ab57806395d89b41146105ec578063a666ff3c1461067c578063a9059cbb146106bd57610143565b8063313ce567116100fd578063313ce56714610360578063379607f51461038e5780636039fbdb146103c95780636e1b14e71461042457806370a08231146104a957806379ba50971461050e57610143565b806306fdde0314610148578063095ea7b3146101d857806318160ddd146102495780631e10eeaf1461027457806323b872dd146102cf57610143565b3661014357600080fd5b600080fd5b34801561015457600080fd5b5061015d61096c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019d578082015181840152602081019050610182565b50505050905090810190601f1680156101ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e457600080fd5b50610231600480360360408110156101fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a0a565b60405180821515815260200191505060405180910390f35b34801561025557600080fd5b5061025e610a85565b6040518082815260200191505060405180910390f35b34801561028057600080fd5b506102cd6004803603604081101561029757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a8a565b005b3480156102db57600080fd5b50610348600480360360608110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c50565b60405180821515815260200191505060405180910390f35b34801561036c57600080fd5b50610375610caf565b604051808260ff16815260200191505060405180910390f35b34801561039a57600080fd5b506103c7600480360360208110156103b157600080fd5b8101908080359060200190929190505050610cc2565b005b3480156103d557600080fd5b50610422600480360360408110156103ec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ac565b005b34801561043057600080fd5b506104a7600480360360a081101561044757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190803563ffffffff16906020019092919080359060200190929190803590602001909291905050506116d9565b005b3480156104b557600080fd5b506104f8600480360360208110156104cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611888565b6040518082815260200191505060405180910390f35b34801561051a57600080fd5b506105236118d1565b005b34801561053157600080fd5b506105746004803603602081101561054857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a6d565b604051808563ffffffff1681526020018463ffffffff16815260200183815260200182815260200194505050505060405180910390f35b3480156105b757600080fd5b506105c0611abd565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f857600080fd5b50610601611ae1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610641578082015181840152602081019050610626565b50505050905090810190601f16801561066e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561068857600080fd5b50610691611b7f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106c957600080fd5b50610716600480360360408110156106e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ba5565b60405180821515815260200191505060405180910390f35b34801561073a57600080fd5b5061077d6004803603602081101561075157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c03565b6040518082815260200191505060405180910390f35b34801561079f57600080fd5b506107e2600480360360208110156107b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ddf565b005b3480156107f057600080fd5b506107f9611e7b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561083157600080fd5b5061087e6004803603604081101561084857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ea1565b60405180821515815260200191505060405180910390f35b3480156108a257600080fd5b50610905600480360360408110156108b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd0565b6040518082815260200191505060405180910390f35b34801561092757600080fd5b5061096a6004803603602081101561093e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fd8565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a025780601f106109d757610100808354040283529160200191610a02565b820191906000526020600020905b8154815290600101906020018083116109e557829003601f168201915b505050505081565b600080610a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616e6e6f7420617070726f7665207370656e64696e6700000000000000000081525060200191505060405180910390fd5b92915050565b600090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae257600080fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610b7a57600080fd5b505af1158015610b8e573d6000803e3d6000fd5b505050506040513d6020811015610ba457600080fd5b810190808051906020019092919050505050610c0882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080610ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806122f56028913960400191505060405180910390fd5b9392505050565b600460009054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123a16026913960400191505060405180910390fd5b60008111610de0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d75737420636c61696d206d6f7265207468616e20300000000000000000000081525060200191505060405180910390fd5b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411610e95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f2076657374696e672062616c616e636520666f756e64000000000000000081525060200191505060405180910390fd5b6000610ea03361208e565b9050610eaa6122c0565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820154815260200160028201548152505090506000816000015163ffffffff161115611043576000610fbd84600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b90508160600151831015611041576000610fe484846060015161207490919063ffffffff16565b90508082101561103f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123416030913960400191505060405180910390fd5b505b505b61109583600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207490919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561116b57600080fd5b505af115801561117f573d6000803e3d6000fd5b505050506040513d602081101561119557600080fd5b810190808051906020019092919050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461120457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123a16026913960400191505060405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008173ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561135a57600080fd5b505afa15801561136e573d6000803e3d6000fd5b505050506040513d602081101561138457600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561140057600080fd5b505afa158015611414573d6000803e3d6000fd5b505050506040513d602081101561142a57600080fd5b81019080805190602001909291905050509050838110156114b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f53656e6465722068617320696e73756666696369656e742062616c616e63650081525060200191505060405180910390fd5b8382101561150c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806123716030913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561159b57600080fd5b505af11580156115af573d6000803e3d6000fd5b505050506040513d60208110156115c557600080fd5b81019080805190602001909291905050505061162984600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461225990919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461173157600080fd5b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548163ffffffff021916908363ffffffff16021790555082600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160046101000a81548163ffffffff021916908363ffffffff16021790555081600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555080600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505050505050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461192b57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60056020528060005260406000206000915090508060000160009054906101000a900463ffffffff16908060000160049054906101000a900463ffffffff16908060010154908060020154905084565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b775780601f10611b4c57610100808354040283529160200191611b77565b820191906000526020600020905b815481529060010190602001808311611b5a57829003601f168201915b505050505081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080611bfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061231d6024913960400191505060405180910390fd5b92915050565b600080611c0f8361208e565b9050611c196122c0565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481526020016002820154815250509050600080826000015163ffffffff161115611dd4576000611d31600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846060015161207490919063ffffffff16565b9050611d46818561207490919063ffffffff16565b9150600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611dd257600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505b505b809350505050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e3757600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611efc57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611f8d57600080fd5b505af1158015611fa1573d6000803e3d6000fd5b505050506040513d6020811015611fb757600080fd5b8101908080519060200190929190505050905092915050565b600092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461203057600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008282111561208357600080fd5b818303905092915050565b600080429050600061209e6122c0565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060800160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820154815260200160028201548152505090506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000826000015163ffffffff16111561224d57816000015163ffffffff16841061223357816000015163ffffffff168403925060006121de8360400151846060015161207490919063ffffffff16565b90506121fd836020015163ffffffff168261227390919063ffffffff16565b9050612212818561229390919063ffffffff16565b915061222b83604001518361225990919063ffffffff16565b915050612238565b600190505b816060015181111561224c57816060015190505b5b80945050505050919050565b600081830190508281101561226d57600080fd5b92915050565b600080821161228157600080fd5b81838161228a57fe5b04905092915050565b6000818302905060008314806122b15750818382816122ae57fe5b04145b6122ba57600080fd5b92915050565b6040518060800160405280600063ffffffff168152602001600063ffffffff1681526020016000815260200160008152509056fe5573652074686520636c61696d2066756e6374696f6e2c206e6f74207472616e7366657246726f6d5573652074686520636c61696d2066756e6374696f6e2c206e6f74207472616e7366657243616e6e6f74207472616e73666572207468697320616d6f756e742064756520746f2076657374696e67206c6f636b73506c6561736520616c6c6f7720746f6b656e7320746f206265207370656e74206279207468697320636f6e74726163744c6f636b656420746f6b656e20636f6e747261637420686173206e6f74206265656e20736574a2646970667358221220c34321948ed714fbcae131a0c6d673e6a3f942cec61ab01a7b0c4211479ceee364736f6c634300060c0033
Deployed Bytecode Sourcemap
2712:6097:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8365:8;;;2712:6097;;;;2820:19;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3942:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3525:94;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7724:268;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4104:185;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2846:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5755:875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6936:780;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6638:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3380:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1371:196;;;;;;;;;;;;;:::i;:::-;;2876:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;971:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2793;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2971:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3771:163;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5286:461;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8000:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;998:23;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8619:187;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3627:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1261:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2820:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3942:154::-;4022:12;4055:5;4047:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3942:154;;;;:::o;3525:94::-;3586:4;3525:94;:::o;7724:268::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;7805::::1;7851:18;;;;;;;;;;;7805:65;;7881:13;:22;;;7904:5;7911:6;7881:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;7957:27;7977:6;7957:8;:15;7966:5;7957:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;7939:8;:15;7948:5;7939:15;;;;;;;;;;;;;;;:45;;;;1244:1;7724:268:::0;;:::o;4104:185::-;4198:12;4231:5;4223:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4104:185;;;;;:::o;2846:21::-;;;;;;;;;;;;;:::o;5755:875::-;5842:3;5812:34;;:18;;;;;;;;;;;:34;;;;5804:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5917:1;5908:6;:10;5900:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5987:1;5964:8;:20;5973:10;5964:20;;;;;;;;;;;;;;;;:24;5956:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6030:20;6053:23;6065:10;6053:11;:23::i;:::-;6030:46;;6089:17;;:::i;:::-;6109:9;:21;6119:10;6109:21;;;;;;;;;;;;;;;6089:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6155:1;6145;:7;;;:11;;;6141:340;;;6172:25;6200:32;6225:6;6200:8;:20;6209:10;6200:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6172:60;;6268:1;:8;;;6253:12;:23;6249:221;;;6297:16;6316:26;6329:12;6316:1;:8;;;:12;;:26;;;;:::i;:::-;6297:45;;6390:11;6369:17;:32;;6361:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6249:221;;6141:340;;6516:32;6541:6;6516:8;:20;6525:10;6516:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6493:8;:20;6502:10;6493:20;;;;;;;;;;;;;;;:55;;;;6574:18;;;;;;;;;;;6559:43;;;6603:10;6615:6;6559:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5755:875;;;:::o;6936:780::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;7055:3:::1;7025:34;;:18;;;;;;;;;;;:34;;;;7017:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7115:28;7161:18;;;;;;;;;;;7115:65;;7193:21;7217:13;:23;;;7241:10;7261:4;7217:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;7193:74;;7278:19;7300:13;:23;;;7324:10;7300:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;7278:57;;7369:6;7354:11;:21;;7346:65;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;7447:6;7430:13;:23;;7422:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7517:13;:26;;;7544:10;7564:4;7571:6;7517:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;7612:30;7635:6;7612:8;:18;7621:8;7612:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;7591:8;:18;7600:8;7591:18;;;;;;;;;;;;;;;:51;;;;7691:8;7668:40;;7685:3;7668:40;;;7701:6;7668:40;;;;;;;;;;;;;;;;;;1244:1;;;6936:780:::0;;:::o;6638:290::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;6787:5:::1;6763:9;:15;6773:4;6763:15;;;;;;;;;;;;;;;:21;;;:29;;;;;;;;;;;;;;;;;;6828:6;6803:9;:15;6813:4;6803:15;;;;;;;;;;;;;;;:22;;;:31;;;;;;;;;;;;;;;;;;6871:7;6845:9;:15;6855:4;6845:15;;;;;;;;;;;;;;;:23;;:33;;;;6914:6;6889:9;:15;6899:4;6889:15;;;;;;;;;;;;;;;:22;;:31;;;;6638:290:::0;;;;;:::o;3380:137::-;3457:12;3489:8;:20;3498:10;3489:20;;;;;;;;;;;;;;;;3482:27;;3380:137;;;:::o;1371:196::-;1438:8;;;;;;;;;;;1424:22;;:10;:22;;;1416:31;;;;;;1491:8;;;;;;;;;;;1463:37;;1484:5;;;;;;;;;;1463:37;;;;;;;;;;;;1519:8;;;;;;;;;;;1511:5;;:16;;;;;;;;;;;;;;;;;;1557:1;1538:8;;:21;;;;;;;;;;;;;;;;;;1371:196::o;2876:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;971:20::-;;;;;;;;;;;;:::o;2793:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2971:33::-;;;;;;;;;;;;;:::o;3771:163::-;3847:12;3880:5;3872:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3771:163;;;;:::o;5286:461::-;5339:7;5359:20;5382:17;5394:4;5382:11;:17::i;:::-;5359:40;;5410:17;;:::i;:::-;5430:9;:15;5440:4;5430:15;;;;;;;;;;;;;;;5410:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5456:11;5498:1;5488;:7;;;:11;;;5484:233;;;5515:15;5533:28;5546:8;:14;5555:4;5546:14;;;;;;;;;;;;;;;;5533:1;:8;;;:12;;:28;;;;:::i;:::-;5515:46;;5584:25;5601:7;5584:12;:16;;:25;;;;:::i;:::-;5578:31;;5636:8;:14;5645:4;5636:14;;;;;;;;;;;;;;;;5630:3;:20;5626:80;;;5676:8;:14;5685:4;5676:14;;;;;;;;;;;;;;;;5670:20;;5626:80;5484:233;;5736:3;5729:10;;;;;5286:461;;;:::o;8000:131::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;8104:19:::1;8083:18;;:40;;;;;;;;;;;;;;;;;;8000:131:::0;:::o;998:23::-;;;;;;;;;;;;;:::o;8619:187::-;8714:12;1227:5;;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;8761:12:::1;8746:37;;;8784:5;::::0;::::1;;;;;;;;8791:6;8746:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;8739:59;;8619:187:::0;;;;:::o;3627:136::-;3721:14;3627:136;;;;:::o;1261:102::-;1227:5;;;;;;;;;;1213:19;;:10;:19;;;1205:28;;;;;;1346:9:::1;1335:8;;:20;;;;;;;;;;;;;;;;;;1261:102:::0;:::o;394:114::-;446:6;478:1;473;:6;;465:15;;;;;;499:1;495;:5;491:9;;394:114;;;;:::o;4325:953::-;4382:7;4401:16;4420:15;4401:34;;4446:23;4484:17;;:::i;:::-;4504:9;:15;4514:4;4504:15;;;;;;;;;;;;;;;4484:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4532:20;4555:8;:14;4564:4;4555:14;;;;;;;;;;;;;;;;4532:37;;4596:1;4586;:7;;;:11;;;4582:657;;;4630:1;:7;;;4618:19;;:8;:19;4614:499;;4687:1;:7;;;4676:18;;:8;:18;4658:36;;4715:28;4746:23;4759:1;:9;;;4746:1;:8;;;:12;;:23;;;;:::i;:::-;4715:54;;4811:34;4836:1;:8;;;4811:34;;:20;:24;;:34;;;;:::i;:::-;4788:57;;4897:41;4917:20;4897:15;:19;;:41;;;;:::i;:::-;4882:56;;4972:27;4989:1;:9;;;4972:12;:16;;:27;;;;:::i;:::-;4957:42;;4614:499;;;;5096:1;5081:16;;4614:499;5160:1;:8;;;5145:12;:23;5141:87;;;5204:1;:8;;;5189:23;;5141:87;4582:657;5258:12;5251:19;;;;;;4325:953;;;:::o;274:114::-;326:6;353:1;349;:5;345:9;;378:1;373;:6;;365:15;;;;;;274:114;;;;:::o;648:113::-;700:6;731:1;727;:5;719:14;;;;;;752:1;748;:5;;;;;;744:9;;648:113;;;;:::o;514:128::-;566:6;593:1;589;:5;585:9;;618:1;613;:6;:20;;;;632:1;627;623;:5;;;;;;:10;613:20;605:29;;;;;;514:128;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://c34321948ed714fbcae131a0c6d673e6a3f942cec61ab01a7b0c4211479ceee3
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.01091 | 23,106,599.0392 | $252,082.37 |
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.