Token migration announcement. vSlice token contract has migrated to a new address.
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 9,860 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 12664152 | 1134 days ago | IN | 0 ETH | 0.00529 | ||||
Transfer | 12237382 | 1200 days ago | IN | 0 ETH | 0.00663639 | ||||
Transfer | 11910162 | 1250 days ago | IN | 0 ETH | 0.01042635 | ||||
Transfer | 11622474 | 1294 days ago | IN | 0 ETH | 0.00523392 | ||||
Transfer | 11570106 | 1302 days ago | IN | 0 ETH | 0.00432861 | ||||
Transfer | 11515804 | 1311 days ago | IN | 0 ETH | 0.00314908 | ||||
Transfer | 11515560 | 1311 days ago | IN | 0 ETH | 0.00420427 | ||||
Transfer | 11397968 | 1329 days ago | IN | 0 ETH | 0.00392436 | ||||
Transfer | 11397937 | 1329 days ago | IN | 0 ETH | 0.00392544 | ||||
Transfer | 11397931 | 1329 days ago | IN | 0 ETH | 0.00392436 | ||||
Transfer | 11397923 | 1329 days ago | IN | 0 ETH | 0.00392436 | ||||
Transfer | 11397913 | 1329 days ago | IN | 0 ETH | 0.00392436 | ||||
Transfer | 11397903 | 1329 days ago | IN | 0 ETH | 0.00504216 | ||||
Transfer | 11302194 | 1343 days ago | IN | 0 ETH | 0.00331181 | ||||
Transfer | 11243714 | 1352 days ago | IN | 0 ETH | 0.00196084 | ||||
Transfer | 11104667 | 1374 days ago | IN | 0 ETH | 0.00123665 | ||||
Transfer | 11080576 | 1377 days ago | IN | 0 ETH | 0.00156931 | ||||
Transfer | 11079145 | 1378 days ago | IN | 0 ETH | 0.00087184 | ||||
Transfer | 11038358 | 1384 days ago | IN | 0 ETH | 0.00124707 | ||||
Transfer | 10937234 | 1400 days ago | IN | 0 ETH | 0.00246882 | ||||
Transfer | 10923123 | 1402 days ago | IN | 0 ETH | 0.00340653 | ||||
Transfer | 10782080 | 1423 days ago | IN | 0 ETH | 0.021796 | ||||
Transfer | 10757328 | 1427 days ago | IN | 0 ETH | 0.005934 | ||||
Transfer | 10588415 | 1453 days ago | IN | 0 ETH | 0.00174368 | ||||
Transfer | 10381251 | 1485 days ago | IN | 0 ETH | 0.0029302 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x2D224e27...604B79754 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Token
Compiler Version
v0.4.4+commit.4633f3de
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2016-11-14 */ pragma solidity ^0.4.0; /* This vSlice token contract is based on the ERC20 token contract. Additional functionality has been integrated: * the contract Lockable, which is used as a parent of the Token contract * the function mintTokens(), which makes use of the currentSwapRate() and safeToAdd() helpers * the function disableTokenSwapLock() */ contract Lockable { uint public numOfCurrentEpoch; uint public creationTime; uint public constant UNLOCKED_TIME = 25 days; uint public constant LOCKED_TIME = 5 days; uint public constant EPOCH_LENGTH = 30 days; bool public lock; bool public tokenSwapLock; event Locked(); event Unlocked(); // This modifier should prevent tokens transfers while the tokenswap // is still ongoing modifier isTokenSwapOn { if (tokenSwapLock) throw; _; } // This modifier checks and, if needed, updates the value of current // token contract epoch, before executing a token transfer of any // kind modifier isNewEpoch { if (numOfCurrentEpoch * EPOCH_LENGTH + creationTime < now ) { numOfCurrentEpoch = (now - creationTime) / EPOCH_LENGTH + 1; } _; } // This modifier check whether the contract should be in a locked // or unlocked state, then acts and updates accordingly if // necessary modifier checkLock { if ((creationTime + numOfCurrentEpoch * UNLOCKED_TIME) + (numOfCurrentEpoch - 1) * LOCKED_TIME < now) { // avoids needless lock state change and event spamming if (lock) throw; lock = true; Locked(); return; } else { // only set to false if in a locked state, to avoid // needless state change and event spam if (lock) { lock = false; Unlocked(); } } _; } function Lockable() { creationTime = now; numOfCurrentEpoch = 1; tokenSwapLock = true; } } contract ERC20 { function totalSupply() constant returns (uint); function balanceOf(address who) constant returns (uint); function allowance(address owner, address spender) constant returns (uint); function transfer(address to, uint value) returns (bool ok); function transferFrom(address from, address to, uint value) returns (bool ok); function approve(address spender, uint value) returns (bool ok); event Transfer(address indexed from, address indexed to, uint value); event Approval(address indexed owner, address indexed spender, uint value); } contract Token is ERC20, Lockable { mapping( address => uint ) _balances; mapping( address => mapping( address => uint ) ) _approvals; uint _supply; address public walletAddress; event TokenMint(address newTokenHolder, uint amountOfTokens); event TokenSwapOver(); modifier onlyFromWallet { if (msg.sender != walletAddress) throw; _; } function Token( uint initial_balance, address wallet) { _balances[msg.sender] = initial_balance; _supply = initial_balance; walletAddress = wallet; } function totalSupply() constant returns (uint supply) { return _supply; } function balanceOf( address who ) constant returns (uint value) { return _balances[who]; } function allowance(address owner, address spender) constant returns (uint _allowance) { return _approvals[owner][spender]; } // A helper to notify if overflow occurs function safeToAdd(uint a, uint b) internal returns (bool) { return (a + b >= a && a + b >= b); } function transfer( address to, uint value) isTokenSwapOn isNewEpoch checkLock returns (bool ok) { if( _balances[msg.sender] < value ) { throw; } if( !safeToAdd(_balances[to], value) ) { throw; } _balances[msg.sender] -= value; _balances[to] += value; Transfer( msg.sender, to, value ); return true; } function transferFrom( address from, address to, uint value) isTokenSwapOn isNewEpoch checkLock returns (bool ok) { // if you don't have enough balance, throw if( _balances[from] < value ) { throw; } // if you don't have approval, throw if( _approvals[from][msg.sender] < value ) { throw; } if( !safeToAdd(_balances[to], value) ) { throw; } // transfer and return true _approvals[from][msg.sender] -= value; _balances[from] -= value; _balances[to] += value; Transfer( from, to, value ); return true; } function approve(address spender, uint value) isTokenSwapOn isNewEpoch checkLock returns (bool ok) { _approvals[msg.sender][spender] = value; Approval( msg.sender, spender, value ); return true; } // The function currentSwapRate() returns the current exchange rate // between vSlice tokens and Ether during the token swap period function currentSwapRate() constant returns(uint) { if (creationTime + 1 weeks > now) { return 130; } else if (creationTime + 2 weeks > now) { return 120; } else if (creationTime + 4 weeks > now) { return 100; } else { return 0; } } // The function mintTokens is only usable by the chosen wallet // contract to mint a number of tokens proportional to the // amount of ether sent to the wallet contract. The function // can only be called during the tokenswap period function mintTokens(address newTokenHolder, uint etherAmount) external onlyFromWallet { uint tokensAmount = currentSwapRate() * etherAmount; if(!safeToAdd(_balances[newTokenHolder],tokensAmount )) throw; if(!safeToAdd(_supply,tokensAmount)) throw; _balances[newTokenHolder] += tokensAmount; _supply += tokensAmount; TokenMint(newTokenHolder, tokensAmount); } // The function disableTokenSwapLock() is called by the wallet // contract once the token swap has reached its end conditions function disableTokenSwapLock() external onlyFromWallet { tokenSwapLock = false; TokenSwapOver(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"numOfCurrentEpoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"disableTokenSwapLock","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"currentSwapRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"walletAddress","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"value","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"EPOCH_LENGTH","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"UNLOCKED_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"LOCKED_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"creationTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"_allowance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenSwapLock","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newTokenHolder","type":"address"},{"name":"etherAmount","type":"uint256"}],"name":"mintTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"inputs":[{"name":"initial_balance","type":"uint256"},{"name":"wallet","type":"address"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newTokenHolder","type":"address"},{"indexed":false,"name":"amountOfTokens","type":"uint256"}],"name":"TokenMint","type":"event"},{"anonymous":false,"inputs":[],"name":"TokenSwapOver","type":"event"},{"anonymous":false,"inputs":[],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[],"name":"Unlocked","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"}]
Deployed Bytecode
0x606060405236156100cf5760e060020a6000350463018e13d081146100d4578063095ea7b3146100e257806318160ddd1461010957806323b872dd146101185780633592f369146101425780635334c231146101655780636ad5b3ea1461017257806370a0823114610189578063a9059cbb146101bc578063ac4746ab146101e3578063b7930507146101f2578063d81dfe3014610201578063d8270dce14610210578063dd62ed3e1461021e578063ef40c3e614610259578063f0dda65c14610270578063f83d08ba1461029c575b610002565b34610002576101aa60005481565b34610002576102ad60043560243560025460009060ff610100909104161561030057610002565b34610002576101aa6005545b90565b34610002576102ad60043560243560443560025460009060ff610100909104161561044457610002565b34610002576102c160065433600160a060020a0390811691161461065157610002565b34610002576101aa6102c8565b34610002576102e4600654600160a060020a031681565b3461000257600160a060020a03600435166000908152600360205260409020545b60408051918252519081900360200190f35b34610002576102ad60043560243560025460009060ff61010090910416156106c357610002565b34610002576101aa62278d0081565b34610002576101aa6220f58081565b34610002576101aa6206978081565b34610002576101aa60015481565b34610002576101aa600435602435600160a060020a038083166000908152600460209081526040808320938516835292905220545b92915050565b34610002576102ad60025460ff6101009091041681565b34610002576102c160043560243560065460009033600160a060020a039081169116146102c357610002565b34610002576102ad60025460ff1681565b604080519115158252519081900360200190f35b005b8161082a5b60004260016000505462093a8001111561068757506082610115565b60408051600160a060020a039092168252519081900360200190f35b4260016000505462278d006000600050540201101561032d5760015462278d009042036001919004016000555b4262069780600160006000505403026220f58060006000505402600160005054010110156103655760025460ff161561040957610002565b60025460ff16156103a4576002805460ff191690556040517f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd690600090a15b600160a060020a03338116600081815260046020908152604080832094881680845294825291829020869055815186815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3506001610253565b6002805460ff191660011790556040517f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b90600090a1610253565b4260016000505462278d00600060005054020110156104715760015462278d009042036001919004016000555b4262069780600160006000505403026220f58060006000505402600160005054010110156104a95760025460ff161561050e57610002565b60025460ff16156104e8576002805460ff191690556040517f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd690600090a15b600160a060020a0384166000908152600360205260409020548290101561054c57610002565b6002805460ff191660011790556040517f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b90600090a15b9392505050565b600160a060020a03808516600090815260046020908152604080832033909416835292905220548290101561058057610002565b600160a060020a0383166000908152600360205260409020546105bc90835b600082828401101580156105b557508182840110155b9050610253565b15156105c757610002565b600160a060020a03808516600081815260046020908152604080832033861684528252808320805488900390558383526003825280832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610545565b6002805461ff00191690556040517f0d27864fb2752ddaaa945c943c62b77c1476125056d0343ab1e2159da779fa4090600090a1565b42600160005054621275000111156106a157506078610115565b426001600050546224ea000111156106bb57506064610115565b506000610115565b4260016000505462278d00600060005054020110156106f05760015462278d009042036001919004016000555b4262069780600160006000505403026220f58060006000505402600160005054010110156107285760025460ff161561040957610002565b60025460ff1615610767576002805460ff191690556040517f19aad37188a1d3921e29eb3c66acf43d81975e107cb650d58cca878627955fd690600090a15b600160a060020a0333166000908152600360205260409020548290101561078d57610002565b600160a060020a0383166000908152600360205260409020546107b0908361059f565b15156107bb57610002565b600160a060020a03338116600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610253565b600160a060020a03851660009081526003602052604090205491029150610851908261059f565b151561085c57610002565b600554610869908261059f565b151561087457610002565b600160a060020a03831660008181526003602090815260409182902080548501905560058054850190558151928352820183905280517f36bf5aa3964be01dbd95a0154a8930793fe68353bdc580871ffb2c911366bbc79281900390910190a150505056
Loading...
Loading
Loading...
Loading
OVERVIEW
vSlice token contract has migrated to 0xDb144CD0F15eE40AaC5602364B470d703d7e16b6.Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.