ERC-20
Overview
Max Total Supply
93,468,683.8991963455275 ST
Holders
17,842 ( -0.196%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FirstBloodToken
Compiler Version
v0.3.6-nightly.2016.8.15+commit.868a167
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2016-09-24 */ /** * Overflow aware uint math functions. * * Inspired by https://github.com/MakerDAO/maker-otc/blob/master/contracts/simple_market.sol */ contract SafeMath { //internals function safeMul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function safeSub(uint a, uint b) internal returns (uint) { assert(b <= a); return a - b; } function safeAdd(uint a, uint b) internal returns (uint) { uint c = a + b; assert(c>=a && c>=b); return c; } function assert(bool assertion) internal { if (!assertion) throw; } } /** * ERC 20 token * * https://github.com/ethereum/EIPs/issues/20 */ contract Token { /// @return total amount of tokens function totalSupply() constant returns (uint256 supply) {} /// @param _owner The address from which the balance will be retrieved /// @return The balance function balanceOf(address _owner) constant returns (uint256 balance) {} /// @notice send `_value` token to `_to` from `msg.sender` /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transfer(address _to, uint256 _value) returns (bool success) {} /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` /// @param _from The address of the sender /// @param _to The address of the recipient /// @param _value The amount of token to be transferred /// @return Whether the transfer was successful or not function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {} /// @notice `msg.sender` approves `_addr` to spend `_value` tokens /// @param _spender The address of the account able to transfer the tokens /// @param _value The amount of wei to be approved for transfer /// @return Whether the approval was successful or not function approve(address _spender, uint256 _value) returns (bool success) {} /// @param _owner The address of the account owning tokens /// @param _spender The address of the account able to transfer the tokens /// @return Amount of remaining tokens allowed to spent function allowance(address _owner, address _spender) constant returns (uint256 remaining) {} event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } /** * ERC 20 token * * https://github.com/ethereum/EIPs/issues/20 */ contract StandardToken is Token { /** * Reviewed: * - Interger overflow = OK, checked */ function transfer(address _to, uint256 _value) returns (bool success) { //Default assumes totalSupply can't be over max (2^256 - 1). //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap. //Replace the if with this one instead. if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) { //if (balances[msg.sender] >= _value && _value > 0) { balances[msg.sender] -= _value; balances[_to] += _value; Transfer(msg.sender, _to, _value); return true; } else { return false; } } function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { //same as above. Replace this line with the following if you want to protect against wrapping uints. if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) { //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) { balances[_to] += _value; balances[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } else { return false; } } function balanceOf(address _owner) constant returns (uint256 balance) { return balances[_owner]; } function approve(address _spender, uint256 _value) returns (bool success) { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } mapping(address => uint256) balances; mapping (address => mapping (address => uint256)) allowed; uint256 public totalSupply; } /** * First blood crowdsale crowdsale contract. * * Security criteria evaluated against http://ethereum.stackexchange.com/questions/8551/methodological-security-review-of-a-smart-contract * * */ contract FirstBloodToken is StandardToken, SafeMath { string public name = "FirstBlood Token"; string public symbol = "1ST"; uint public decimals = 18; uint public startBlock; //crowdsale start block (set in constructor) uint public endBlock; //crowdsale end block (set in constructor) // Initial founder address (set in constructor) // All deposited ETH will be instantly forwarded to this address. // Address is a multisig wallet. address public founder = 0x0; // signer address (for clickwrap agreement) // see function() {} for comments address public signer = 0x0; uint public etherCap = 465313 * 10**18; //max amount raised during crowdsale (5.5M USD worth of ether will be measured with a moving average market price at beginning of the crowdsale) uint public transferLockup = 370285; //transfers are locked for this many blocks after endBlock (assuming 14 second blocks, this is 2 months) uint public founderLockup = 2252571; //founder allocation cannot be created until this many blocks after endBlock (assuming 14 second blocks, this is 1 year) uint public bountyAllocation = 2500000 * 10**18; //2.5M tokens allocated post-crowdsale for the bounty fund uint public ecosystemAllocation = 5 * 10**16; //5% of token supply allocated post-crowdsale for the ecosystem fund uint public founderAllocation = 10 * 10**16; //10% of token supply allocated post-crowdsale for the founder allocation bool public bountyAllocated = false; //this will change to true when the bounty fund is allocated bool public ecosystemAllocated = false; //this will change to true when the ecosystem fund is allocated bool public founderAllocated = false; //this will change to true when the founder fund is allocated uint public presaleTokenSupply = 0; //this will keep track of the token supply created during the crowdsale uint public presaleEtherRaised = 0; //this will keep track of the Ether raised during the crowdsale bool public halted = false; //the founder address can set this to true to halt the crowdsale due to emergency event Buy(address indexed sender, uint eth, uint fbt); event Withdraw(address indexed sender, address to, uint eth); event AllocateFounderTokens(address indexed sender); event AllocateBountyAndEcosystemTokens(address indexed sender); function FirstBloodToken(address founderInput, address signerInput, uint startBlockInput, uint endBlockInput) { founder = founderInput; signer = signerInput; startBlock = startBlockInput; endBlock = endBlockInput; } /** * Security review * * - Integer overflow: does not apply, blocknumber can't grow that high * - Division is the last operation and constant, should not cause issues * - Price function plotted https://github.com/Firstbloodio/token/issues/2 */ function price() constant returns(uint) { if (block.number>=startBlock && block.number<startBlock+250) return 170; //power hour if (block.number<startBlock || block.number>endBlock) return 100; //default price return 100 + 4*(endBlock - block.number)/(endBlock - startBlock + 1)*67/4; //crowdsale price } // price() exposed for unit tests function testPrice(uint blockNumber) constant returns(uint) { if (blockNumber>=startBlock && blockNumber<startBlock+250) return 170; //power hour if (blockNumber<startBlock || blockNumber>endBlock) return 100; //default price return 100 + 4*(endBlock - blockNumber)/(endBlock - startBlock + 1)*67/4; //crowdsale price } // Buy entry point function buy(uint8 v, bytes32 r, bytes32 s) { buyRecipient(msg.sender, v, r, s); } /** * Main token buy function. * * Security review * * - Integer math: ok - using SafeMath * * - halt flag added - ok * * Applicable tests: * * - Test halting, buying, and failing * - Test buying on behalf of a recipient * - Test buy * - Test unhalting, buying, and succeeding * - Test buying after the sale ends * */ function buyRecipient(address recipient, uint8 v, bytes32 r, bytes32 s) { bytes32 hash = sha256(msg.sender); if (ecrecover(hash,v,r,s) != signer) throw; if (block.number<startBlock || block.number>endBlock || safeAdd(presaleEtherRaised,msg.value)>etherCap || halted) throw; uint tokens = safeMul(msg.value, price()); balances[recipient] = safeAdd(balances[recipient], tokens); totalSupply = safeAdd(totalSupply, tokens); presaleEtherRaised = safeAdd(presaleEtherRaised, msg.value); if (!founder.call.value(msg.value)()) throw; //immediately send Ether to founder address Buy(recipient, msg.value, tokens); } /** * Set up founder address token balance. * * allocateBountyAndEcosystemTokens() must be calld first. * * Security review * * - Integer math: ok - only called once with fixed parameters * * Applicable tests: * * - Test bounty and ecosystem allocation * - Test bounty and ecosystem allocation twice * */ function allocateFounderTokens() { if (msg.sender!=founder) throw; if (block.number <= endBlock + founderLockup) throw; if (founderAllocated) throw; if (!bountyAllocated || !ecosystemAllocated) throw; balances[founder] = safeAdd(balances[founder], presaleTokenSupply * founderAllocation / (1 ether)); totalSupply = safeAdd(totalSupply, presaleTokenSupply * founderAllocation / (1 ether)); founderAllocated = true; AllocateFounderTokens(msg.sender); } /** * Set up founder address token balance. * * Set up bounty pool. * * Security review * * - Integer math: ok - only called once with fixed parameters * * Applicable tests: * * - Test founder token allocation too early * - Test founder token allocation on time * - Test founder token allocation twice * */ function allocateBountyAndEcosystemTokens() { if (msg.sender!=founder) throw; if (block.number <= endBlock) throw; if (bountyAllocated || ecosystemAllocated) throw; presaleTokenSupply = totalSupply; balances[founder] = safeAdd(balances[founder], presaleTokenSupply * ecosystemAllocation / (1 ether)); totalSupply = safeAdd(totalSupply, presaleTokenSupply * ecosystemAllocation / (1 ether)); balances[founder] = safeAdd(balances[founder], bountyAllocation); totalSupply = safeAdd(totalSupply, bountyAllocation); bountyAllocated = true; ecosystemAllocated = true; AllocateBountyAndEcosystemTokens(msg.sender); } /** * Emergency Stop crowdsale. * * Applicable tests: * * - Test unhalting, buying, and succeeding */ function halt() { if (msg.sender!=founder) throw; halted = true; } function unhalt() { if (msg.sender!=founder) throw; halted = false; } /** * Change founder address (where crowdsale ETH is being forwarded). * * Applicable tests: * * - Test founder change by hacker * - Test founder change * - Test founder token allocation twice * */ function changeFounder(address newFounder) { if (msg.sender!=founder) throw; founder = newFounder; } /** * ERC 20 Standard Token interface transfer function * * Prevent transfers until freeze period is over. * * Applicable tests: * * - Test restricted early transfer * - Test transfer after restricted period */ function transfer(address _to, uint256 _value) returns (bool success) { if (block.number <= endBlock + transferLockup && msg.sender!=founder) throw; return super.transfer(_to, _value); } /** * ERC 20 Standard Token interface transfer function * * Prevent transfers until freeze period is over. */ function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { if (block.number <= endBlock + transferLockup && msg.sender!=founder) throw; return super.transferFrom(_from, _to, _value); } /** * Do not allow direct deposits. * * All crowdsale depositors must have read the legal agreement. * This is confirmed by having them signing the terms of service on the website. * They give their crowdsale Ethereum source address on the website. * Website signs this address using crowdsale private key (different from founders key). * buy() takes this signature as input and rejects all deposits that do not have * signature you receive after reading terms of service. * */ function() { throw; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"bountyAllocated","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"signer","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"blockNumber","type":"uint256"}],"name":"testPrice","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"presaleEtherRaised","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"allocateBountyAndEcosystemTokens","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"founder","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"etherCap","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"ecosystemAllocated","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"founderAllocation","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"founderLockup","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"newFounder","type":"address"}],"name":"changeFounder","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":true,"inputs":[],"name":"founderAllocated","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"allocateFounderTokens","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"ecosystemAllocation","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferLockup","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"presaleTokenSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"buyRecipient","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"buy","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"bountyAllocation","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"inputs":[{"name":"founderInput","type":"address"},{"name":"signerInput","type":"address"},{"name":"startBlockInput","type":"uint256"},{"name":"endBlockInput","type":"uint256"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"eth","type":"uint256"},{"indexed":false,"name":"fbt","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"eth","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"}],"name":"AllocateFounderTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"}],"name":"AllocateBountyAndEcosystemTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60a060405260106060527f4669727374426c6f6f6420546f6b656e000000000000000000000000000000006080526003805460008290527f4669727374426c6f6f6420546f6b656e0000000000000000000000000000002082556100b5907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b602060026001841615610100026000190190931692909204601f01919091048101905b8082111561014857600081556001016100a1565b505060408051808201909152600381527f31535400000000000000000000000000000000000000000000000000000000006020918201908152600480546000829052915160ff191660061781559161014c9160026001821615610100026000190190911604601f01047f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908101906100a1565b5090565b50506012600581905560088054600160a060020a0319908116909155600980549091169055696288ab14061109e40000600a556205a66d600b5562225f1b600c556a0211654585005212800000600d5566b1a2bc2ec50000600e5567016345785d8a0000600f556010805462ffffff191690556000601181905590556013805460ff19169055604051608080610faf8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190505060088054600160a060020a0319908116861790915560098054909116841790556006829055600781905550505050610d6a806102456000396000f36060604052361561018a5760e060020a600035046306fdde038114610192578063083c6323146101f0578063095ea7b3146101f957806318160ddd1461026d5780631bc59aa614610276578063238ac9331461028257806323b872dd146102945780632af7ceff146102d4578063313ce5671461030057806344b499581461030957806348cd4cb1146103125780634a8b53891461031b5780634d853ee51461033b5780635ed7ca5b1461034d57806370a082311461036d5780637228b9db14610392578063771d9d051461039b578063824338bd146103ac57806383e811a6146103b557806393c32e06146103be57806395d89b41146103e157806399d22e481461043f578063a035b1fe14610451578063a9059cbb1461047b578063b9b8af0b146104b8578063bcfcb03e146104c4578063c0f496ac146104e4578063c24fe21b146104ed578063c4fc3a3b146104f6578063cb3e64fd146104ff578063dd62ed3e1461051f578063dda44b1014610553578063e5fe4f3114610610578063f6b9d05d14610628575b610631610002565b6040805160038054602060026001831615610100026000190190921691909104601f8101829004820284018201909452838352610633939083018282801561070f5780601f106106e45761010080835404028352916020019161070f565b6106a160075481565b6106b3600435602435600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6106a160025481565b6106b360105460ff1681565b6106c7600954600160a060020a031681565b6106b3600435602435604435600754600b546000910143118015906102ca5750600854600160a060020a03908116339190911614155b1561072157610002565b6106a160043560065460009082108015906102f3575060065460fa0182105b15610820575060aa61038d565b6106a160055481565b6106a160125481565b6106a160065481565b610631600854600160a060020a0390811633919091161461086357610002565b6106c7600854600160a060020a031681565b610631600854600160a060020a039081163391909116146109cd57610002565b6106a1600435600160a060020a0381166000908152602081905260409020545b919050565b6106a1600a5481565b6106b3601054610100900460ff1681565b6106a1600f5481565b6106a1600c5481565b610631600435600854600160a060020a039081163391909116146109dc57610002565b6040805160048054602060026001831615610100026000190190921691909104601f8101829004820284018201909452838352610633939083018282801561070f5780601f106106e45761010080835404028352916020019161070f565b6106b360105462010000900460ff1681565b6106a15b600654600090431080159061046e575060065460fa0143105b15610a2a575060aa610a27565b6106b3600435602435600754600b546000910143118015906104ae5750600854600160a060020a03908116339190911614155b15610a4857610002565b6106b360135460ff1681565b610631600854600160a060020a03908116339190911614610b0057610002565b6106a1600e5481565b6106a1600b5481565b6106a160115481565b610631600854600160a060020a03908116339190911614610c0757610002565b6106a1600435602435600160a060020a03828116600090815260016020908152604080832093851683529290522054610267565b6106316004356024356044356064355b600060006002336040518082600160a060020a03166c010000000000000000000000000281526014019150506020604051808303816000866161da5a03f11561000257505060408051805160095460ff8916602084810191909152838501899052606084018890529351919550600160a060020a0316926001926080818101939182900301816000866161da5a03f11561000257505060405151600160a060020a031614610c1357610002565b610631600435602435604435610d5533848484610563565b6106a1600d5481565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156106935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b604080519115158252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b820191906000526020600020905b8154815290600101906020018083116106f257829003601f168201915b505050505081565b90505b9392505050565b610717848484600160a060020a03831660009081526020819052604081205482901080159061076e5750600160209081526040808320600160a060020a0333168452909152812054829010155b80156107935750600160a060020a038316600090815260208190526040902054808301115b15610d5a57600160a060020a038381166000818152602081815260408083208054880190558885168084528184208054899003905560018352818420339690961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600161071a565b600654821080610831575060075482115b1561083e5750606461038d565b506007546006546004908203600101918390038102919091046043020460640161038d565b600754431161087157610002565b60105460ff16806108895750601054610100900460ff165b1561089357610002565b6002546011819055600854600160a060020a0316600090815260208190526040902054600e546108ee92670de0b6b3a76400009102045b600082820161071a8482108015906108e25750838210155b8015156109fc57610002565b600854600160a060020a0316600090815260208190526040902055600254601154600e546109289291670de0b6b3a76400009102046108ca565b600255600854600160a060020a0316600090815260208190526040902054600d5461095391906108ca565b600854600160a060020a0316600090815260208190526040902055600254600d5461097e91906108ca565b6002556010805460ff191660011761ff001916610100179055604051600160a060020a033316907fad156d34337c07db4f9b140cea03fb74d167641e252f85c85ccf3b47f36c9c4990600090a2565b6013805460ff19166001179055565b6008805473ffffffffffffffffffffffffffffffffffffffff1916821790555b50565b6004600660005054600760005054036001014360076000505403600402046043020460640190505b90565b600654431080610a3b575060075443115b156109ff57506064610a27565b610af98383600160a060020a033316600090815260208190526040812054829010801590610a875750600160a060020a03831681526040812054808301115b15610d6257600160a060020a0333811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610267565b9050610267565b600c54600754014311610b1257610002565b60105462010000900460ff1615610b2857610002565b60105460ff161580610b425750601054610100900460ff16155b15610b4c57610002565b600854600160a060020a0316600090815260208190526040902054600f54601154610b839291670de0b6b3a76400009102046108ca565b600854600160a060020a0316600090815260208190526040902055600254600f54601154610bbd9291670de0b6b3a76400009102046108ca565b6002556010805462ff0000191662010000179055604051600160a060020a033316907f1c8a3821e439862f28669f7fbc210e74e947ebf0e947b591cc5a02e41003026590600090a2565b6013805460ff19169055565b600654431080610c24575060075443115b80610c3c5750600a54601254610c3a90346108ca565b115b80610c49575060135460ff165b15610c5357610002565b610c5f34610c85610455565b600160a060020a038716600090815260208190526040902054909150610ca090826108ca565b600082820261071a848314806108e2575083858304146108e2565b600160a060020a038716600090815260208190526040902055600254610cc690826108ca565b600255601254610cd690346108ca565b601255600854604051600160a060020a0391909116903490600081818185876185025a03f1925050501515610d0a57610002565b60408051348152602081018390528151600160a060020a038916927f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed928290030190a2505050505050565b505050565b50600061071a565b50600061026756
Deployed Bytecode
0x6060604052361561018a5760e060020a600035046306fdde038114610192578063083c6323146101f0578063095ea7b3146101f957806318160ddd1461026d5780631bc59aa614610276578063238ac9331461028257806323b872dd146102945780632af7ceff146102d4578063313ce5671461030057806344b499581461030957806348cd4cb1146103125780634a8b53891461031b5780634d853ee51461033b5780635ed7ca5b1461034d57806370a082311461036d5780637228b9db14610392578063771d9d051461039b578063824338bd146103ac57806383e811a6146103b557806393c32e06146103be57806395d89b41146103e157806399d22e481461043f578063a035b1fe14610451578063a9059cbb1461047b578063b9b8af0b146104b8578063bcfcb03e146104c4578063c0f496ac146104e4578063c24fe21b146104ed578063c4fc3a3b146104f6578063cb3e64fd146104ff578063dd62ed3e1461051f578063dda44b1014610553578063e5fe4f3114610610578063f6b9d05d14610628575b610631610002565b6040805160038054602060026001831615610100026000190190921691909104601f8101829004820284018201909452838352610633939083018282801561070f5780601f106106e45761010080835404028352916020019161070f565b6106a160075481565b6106b3600435602435600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6106a160025481565b6106b360105460ff1681565b6106c7600954600160a060020a031681565b6106b3600435602435604435600754600b546000910143118015906102ca5750600854600160a060020a03908116339190911614155b1561072157610002565b6106a160043560065460009082108015906102f3575060065460fa0182105b15610820575060aa61038d565b6106a160055481565b6106a160125481565b6106a160065481565b610631600854600160a060020a0390811633919091161461086357610002565b6106c7600854600160a060020a031681565b610631600854600160a060020a039081163391909116146109cd57610002565b6106a1600435600160a060020a0381166000908152602081905260409020545b919050565b6106a1600a5481565b6106b3601054610100900460ff1681565b6106a1600f5481565b6106a1600c5481565b610631600435600854600160a060020a039081163391909116146109dc57610002565b6040805160048054602060026001831615610100026000190190921691909104601f8101829004820284018201909452838352610633939083018282801561070f5780601f106106e45761010080835404028352916020019161070f565b6106b360105462010000900460ff1681565b6106a15b600654600090431080159061046e575060065460fa0143105b15610a2a575060aa610a27565b6106b3600435602435600754600b546000910143118015906104ae5750600854600160a060020a03908116339190911614155b15610a4857610002565b6106b360135460ff1681565b610631600854600160a060020a03908116339190911614610b0057610002565b6106a1600e5481565b6106a1600b5481565b6106a160115481565b610631600854600160a060020a03908116339190911614610c0757610002565b6106a1600435602435600160a060020a03828116600090815260016020908152604080832093851683529290522054610267565b6106316004356024356044356064355b600060006002336040518082600160a060020a03166c010000000000000000000000000281526014019150506020604051808303816000866161da5a03f11561000257505060408051805160095460ff8916602084810191909152838501899052606084018890529351919550600160a060020a0316926001926080818101939182900301816000866161da5a03f11561000257505060405151600160a060020a031614610c1357610002565b610631600435602435604435610d5533848484610563565b6106a1600d5481565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156106935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b604080519115158252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b820191906000526020600020905b8154815290600101906020018083116106f257829003601f168201915b505050505081565b90505b9392505050565b610717848484600160a060020a03831660009081526020819052604081205482901080159061076e5750600160209081526040808320600160a060020a0333168452909152812054829010155b80156107935750600160a060020a038316600090815260208190526040902054808301115b15610d5a57600160a060020a038381166000818152602081815260408083208054880190558885168084528184208054899003905560018352818420339690961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600161071a565b600654821080610831575060075482115b1561083e5750606461038d565b506007546006546004908203600101918390038102919091046043020460640161038d565b600754431161087157610002565b60105460ff16806108895750601054610100900460ff165b1561089357610002565b6002546011819055600854600160a060020a0316600090815260208190526040902054600e546108ee92670de0b6b3a76400009102045b600082820161071a8482108015906108e25750838210155b8015156109fc57610002565b600854600160a060020a0316600090815260208190526040902055600254601154600e546109289291670de0b6b3a76400009102046108ca565b600255600854600160a060020a0316600090815260208190526040902054600d5461095391906108ca565b600854600160a060020a0316600090815260208190526040902055600254600d5461097e91906108ca565b6002556010805460ff191660011761ff001916610100179055604051600160a060020a033316907fad156d34337c07db4f9b140cea03fb74d167641e252f85c85ccf3b47f36c9c4990600090a2565b6013805460ff19166001179055565b6008805473ffffffffffffffffffffffffffffffffffffffff1916821790555b50565b6004600660005054600760005054036001014360076000505403600402046043020460640190505b90565b600654431080610a3b575060075443115b156109ff57506064610a27565b610af98383600160a060020a033316600090815260208190526040812054829010801590610a875750600160a060020a03831681526040812054808301115b15610d6257600160a060020a0333811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610267565b9050610267565b600c54600754014311610b1257610002565b60105462010000900460ff1615610b2857610002565b60105460ff161580610b425750601054610100900460ff16155b15610b4c57610002565b600854600160a060020a0316600090815260208190526040902054600f54601154610b839291670de0b6b3a76400009102046108ca565b600854600160a060020a0316600090815260208190526040902055600254600f54601154610bbd9291670de0b6b3a76400009102046108ca565b6002556010805462ff0000191662010000179055604051600160a060020a033316907f1c8a3821e439862f28669f7fbc210e74e947ebf0e947b591cc5a02e41003026590600090a2565b6013805460ff19169055565b600654431080610c24575060075443115b80610c3c5750600a54601254610c3a90346108ca565b115b80610c49575060135460ff165b15610c5357610002565b610c5f34610c85610455565b600160a060020a038716600090815260208190526040902054909150610ca090826108ca565b600082820261071a848314806108e2575083858304146108e2565b600160a060020a038716600090815260208190526040902055600254610cc690826108ca565b600255601254610cd690346108ca565b601255600854604051600160a060020a0391909116903490600081818185876185025a03f1925050501515610d0a57610002565b60408051348152602081018390528151600160a060020a038916927f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed928290030190a2505050505050565b505050565b50600061071a565b50600061026756
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a5384627f6dcd3440298e2d8b0da9d5f0fcbcef70000000000000000000000003286652eacf7abf27383dd1a9218ba9d8169d15e00000000000000000000000000000000000000000000000000000000002382ac00000000000000000000000000000000000000000000000000000000002625ac
-----Decoded View---------------
Arg [0] : founderInput (address): 0xa5384627F6DcD3440298E2D8b0Da9d5F0FCBCeF7
Arg [1] : signerInput (address): 0x3286652Eacf7aBF27383Dd1a9218bA9d8169D15E
Arg [2] : startBlockInput (uint256): 2327212
Arg [3] : endBlockInput (uint256): 2500012
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000a5384627f6dcd3440298e2d8b0da9d5f0fcbcef7
Arg [1] : 0000000000000000000000003286652eacf7abf27383dd1a9218ba9d8169d15e
Arg [2] : 00000000000000000000000000000000000000000000000000000000002382ac
Arg [3] : 00000000000000000000000000000000000000000000000000000000002625ac
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.