Latest 25 from a total of 18,885 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 21338501 | 19 days ago | IN | 0 ETH | 0.00125851 | ||||
Transfer | 21338501 | 19 days ago | IN | 0 ETH | 0.00125851 | ||||
Transfer | 21338501 | 19 days ago | IN | 0 ETH | 0.00125851 | ||||
Transfer | 21338501 | 19 days ago | IN | 0 ETH | 0.00125851 | ||||
Transfer | 21338501 | 19 days ago | IN | 0 ETH | 0.00125851 | ||||
Transfer | 21338501 | 19 days ago | IN | 0 ETH | 0.00125851 | ||||
Transfer | 21338501 | 19 days ago | IN | 0 ETH | 0.00125851 | ||||
Transfer | 21338501 | 19 days ago | IN | 0 ETH | 0.00125851 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.0012998 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.0012998 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.0012998 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.0012998 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.0012998 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.0012998 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.0012998 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.00129941 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.0012998 | ||||
Transfer | 21338500 | 19 days ago | IN | 0 ETH | 0.00133566 | ||||
Transfer | 21338499 | 19 days ago | IN | 0 ETH | 0.00136415 | ||||
Transfer | 21338499 | 19 days ago | IN | 0 ETH | 0.00136415 | ||||
Transfer | 21338499 | 19 days ago | IN | 0 ETH | 0.00136415 | ||||
Approve | 21273483 | 28 days ago | IN | 0 ETH | 0.00059983 | ||||
Transfer | 21246229 | 31 days ago | IN | 0 ETH | 0.00063393 | ||||
Transfer | 21218800 | 35 days ago | IN | 0 ETH | 0.00050828 | ||||
Approve | 21205642 | 37 days ago | IN | 0 ETH | 0.00040482 |
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 0x9A2Ba0CA...0dC628F40 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
ProjectToken
Compiler Version
v0.4.13+commit.fb4cb1a
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-10-23 */ /* * ERC20 interface * see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 { uint public totalSupply; // Number of tokens in circulation 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); } /** * Math operations with safety checks * Reference: https://github.com/OpenZeppelin/zeppelin-solidity/commit/353285e5d96477b4abb86f7cde9187e84ed251ac */ contract SafeMath { function safeMul(uint a, uint b) internal constant returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function safeDiv(uint a, uint b) internal constant returns (uint) { uint c = a / b; return c; } function safeSub(uint a, uint b) internal constant returns (uint) { require(b <= a); return a - b; } function safeAdd(uint a, uint b) internal constant returns (uint) { uint c = a + b; assert(c>=a && c>=b); return c; } } /* * Standard ERC20 token * * https://github.com/ethereum/EIPs/issues/20 */ contract Token is ERC20, SafeMath { mapping(address => uint) balances; mapping (address => mapping (address => uint)) allowed; function transfer(address _to, uint _value) returns (bool success) { return doTransfer(msg.sender, _to, _value); } function transferFrom(address _from, address _to, uint _value) returns (bool success) { var _allowance = allowed[_from][msg.sender]; allowed[_from][msg.sender] = safeSub(_allowance, _value); return doTransfer(_from, _to, _value); } /// @notice You must set the allowance to zero before changing to a non-zero value function approve(address _spender, uint _value) public returns (bool success) { require(allowed[msg.sender][_spender] == 0 || _value == 0); allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); return true; } function doTransfer(address _from, address _to, uint _value) private returns (bool success) { balances[_from] = safeSub(balances[_from], _value); balances[_to] = safeAdd(balances[_to], _value); Transfer(_from, _to, _value); return true; } function balanceOf(address _owner) public constant returns (uint balance) { return balances[_owner]; } function allowance(address _owner, address _spender) public constant returns (uint remaining) { return allowed[_owner][_spender]; } } contract MintInterface { function mint(address recipient, uint amount) returns (bool success); } /* * Manages the ownership of a contract */ contract Owned { address public owner; // owner of the contract. By default, the creator of the contract modifier onlyOwner() { require(msg.sender == owner); _; } function Owned() { owner = msg.sender; } // Changes the owner of the contract to "newOwner" // Only executed by "owner" // If you want to completely remove the ownership of a contract, just change it to "0x0" function changeOwner(address newOwner) public onlyOwner { owner = newOwner; } } /* * Manage the minters of a token */ contract Minted is MintInterface, Owned { uint public numMinters; // Number of minters of the token. bool public open; // If is possible to add new minters or not. True by default. mapping (address => bool) public minters; // if an address is a minter of the token or not // Log of the minters added event NewMinter(address who); modifier onlyMinters() { require(minters[msg.sender]); _; } modifier onlyIfOpen() { require(open); _; } function Minted() { open = true; } // Adds a new minter to the token // _minter: address of the new minter // Only executed by "Owner" (see "Owned" contract) // Only executed if the function "endMinting" has not been executed function addMinter(address _minter) public onlyOwner onlyIfOpen { if(!minters[_minter]) { minters[_minter] = true; numMinters++; NewMinter(_minter); } } // Removes a minter of the token // _minter: address of the minter to be removed // Only executed by "Owner" (see "Owned" contract) function removeMinter(address _minter) public onlyOwner { if(minters[_minter]) { minters[_minter] = false; numMinters--; } } // Blocks the possibility to add new minters // This function is irreversible // Only executed by "Owner" (see "Owned" contract) function endMinting() public onlyOwner { open = false; } } /* * Allows an address to set a block from when a token won't be tradeable */ contract Pausable is Owned { // block from when the token won't be tradeable // Default to 0 = no restriction uint public endBlock; modifier validUntil() { require(block.number <= endBlock || endBlock == 0); _; } // Set a block from when a token won't be tradeable // There is no limit in the number of executions to avoid irreversible mistakes. // Only executed by "Owner" (see "Owned" contract) function setEndBlock(uint block) public onlyOwner { endBlock = block; } } /* * Token contract */ contract ProjectToken is Token, Minted, Pausable { string public name; // name of the token string public symbol; // acronim of the token uint public decimals; // number of decimals of the token uint public transferableBlock; // block from which the token can de transfered modifier lockUpPeriod() { require(block.number >= transferableBlock); _; } function ProjectToken( string _name, string _symbol, uint _decimals, uint _transferableBlock ) { name = _name; symbol = _symbol; decimals = _decimals; transferableBlock = _transferableBlock; } // Creates "amount" tokens and send them to "recipient" address // Only executed by authorized minters (see "Minted" contract) function mint(address recipient, uint amount) public onlyMinters returns (bool success) { totalSupply = safeAdd(totalSupply, amount); balances[recipient] = safeAdd(balances[recipient], amount); Transfer(0x0, recipient, amount); return true; } // Aproves "_spender" to spend "_value" tokens and executes its "receiveApproval" function function approveAndCall(address _spender, uint256 _value) public returns (bool success) { if(super.approve(_spender, _value)){ if(!_spender.call(bytes4(bytes32(sha3("receiveApproval(address,uint256,address)"))), msg.sender, _value, this)) revert(); return true; } } // Transfers "value" tokens to "to" address // Only executed adter "transferableBlock" // Only executed before "endBlock" (see "Expiration" contract) // Only executed if there are enough funds and don't overflow function transfer(address to, uint value) public lockUpPeriod validUntil returns (bool success) { if(super.transfer(to, value)) return true; return false; } // Transfers "value" tokens to "to" address from "from" // Only executed adter "transferableBlock" // Only executed before "endBlock" (see "Expiration" contract) // Only executed if there are enough funds available and approved, and don't overflow function transferFrom(address from, address to, uint value) public lockUpPeriod validUntil returns (bool success) { if(super.transferFrom(from, to, value)) return true; return false; } function refundTokens(address _token, address _refund, uint _value) onlyOwner { Token(_token).transfer(_refund, _value); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","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":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_minter","type":"address"}],"name":"removeMinter","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"transferableBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_refund","type":"address"},{"name":"_value","type":"uint256"}],"name":"refundTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_minter","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"block","type":"uint256"}],"name":"setEndBlock","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numMinters","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"endMinting","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"minters","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"open","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"},{"name":"_transferableBlock","type":"uint256"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"who","type":"address"}],"name":"NewMinter","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
0x606060405236156101175763ffffffff60e060020a60003504166306fdde03811461011c578063083c6323146101a7578063095ea7b3146101cc57806318160ddd1461020257806323b872dd146102275780633092afd514610263578063313ce567146102845780633177029f146102a957806340c10f19146102df5780635531680c1461031557806370a082311461033a57806389519c501461036b5780638da5cb5b1461039557806395d89b41146103c4578063983b2d561461044f578063a6f9dae114610470578063a9059cbb14610491578063c713aa94146104c7578063dd62ed3e146104df578063e6f6266a14610516578063ef70aebf1461053b578063f46eccc414610550578063fcfff16f14610583575b600080fd5b341561012757600080fd5b61012f6105aa565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016c5780820151818401525b602001610153565b50505050905090810190601f1680156101995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101b257600080fd5b6101ba610648565b60405190815260200160405180910390f35b34156101d757600080fd5b6101ee600160a060020a036004351660243561064e565b604051901515815260200160405180910390f35b341561020d57600080fd5b6101ba6106f5565b60405190815260200160405180910390f35b341561023257600080fd5b6101ee600160a060020a03600435811690602435166044356106fb565b604051901515815260200160405180910390f35b341561026e57600080fd5b610282600160a060020a036004351661074e565b005b341561028f57600080fd5b6101ba6107ba565b60405190815260200160405180910390f35b34156102b457600080fd5b6101ee600160a060020a03600435166024356107c0565b604051901515815260200160405180910390f35b34156102ea57600080fd5b6101ee600160a060020a03600435166024356108a1565b604051901515815260200160405180910390f35b341561032057600080fd5b6101ba610956565b60405190815260200160405180910390f35b341561034557600080fd5b6101ba600160a060020a036004351661095c565b60405190815260200160405180910390f35b341561037657600080fd5b610282600160a060020a036004358116906024351660443561097b565b005b34156103a057600080fd5b6103a8610a15565b604051600160a060020a03909116815260200160405180910390f35b34156103cf57600080fd5b61012f610a24565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561016c5780820151818401525b602001610153565b50505050905090810190601f1680156101995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561045a57600080fd5b610282600160a060020a0360043516610ac2565b005b341561047b57600080fd5b610282600160a060020a0360043516610b85565b005b341561049c57600080fd5b6101ee600160a060020a0360043516602435610bcd565b604051901515815260200160405180910390f35b34156104d257600080fd5b610282600435610c1e565b005b34156104ea57600080fd5b6101ba600160a060020a0360043581169060243516610c43565b60405190815260200160405180910390f35b341561052157600080fd5b6101ba610c70565b60405190815260200160405180910390f35b341561054657600080fd5b610282610c76565b005b341561055b57600080fd5b6101ee600160a060020a0360043516610c9f565b604051901515815260200160405180910390f35b341561058e57600080fd5b6101ee610cb4565b604051901515815260200160405180910390f35b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106405780601f1061061557610100808354040283529160200191610640565b820191906000526020600020905b81548152906001019060200180831161062357829003601f168201915b505050505081565b60075481565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120541580610680575081155b151561068b57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b600b5460009043101561070d57600080fd5b6007544311158061071e5750600754155b151561072957600080fd5b610734848484610cbd565b1561074157506001610745565b5060005b5b5b9392505050565b60035433600160a060020a0390811691161461076957600080fd5b600160a060020a03811660009081526006602052604090205460ff16156107b557600160a060020a0381166000908152600660205260409020805460ff19169055600480546000190190555b5b5b50565b600a5481565b60006107cc838361064e565b156106ef5782600160a060020a03166040517f72656365697665417070726f76616c28616464726573732c75696e743235362c81527f61646472657373290000000000000000000000000000000000000000000000006020820152602801604051809103902060e060020a900433843060405160e060020a63ffffffff8616028152600160a060020a0393841660048201526024810192909252909116604482015260640160006040518083038160008761646e5a03f192505050151561089257600080fd5b5060016106ef565b5b92915050565b600160a060020a03331660009081526006602052604081205460ff1615156108c857600080fd5b6108d460005483610d2d565b6000908155600160a060020a0384168152600160205260409020546108f99083610d2d565b600160a060020a0384166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b5b92915050565b600b5481565b600160a060020a0381166000908152600160205260409020545b919050565b60035433600160a060020a0390811691161461099657600080fd5b82600160a060020a031663a9059cbb838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156109f357600080fd5b6102c65a03f11515610a0457600080fd5b505050604051805150505b5b505050565b600354600160a060020a031681565b60098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106405780601f1061061557610100808354040283529160200191610640565b820191906000526020600020905b81548152906001019060200180831161062357829003601f168201915b505050505081565b60035433600160a060020a03908116911614610add57600080fd5b60055460ff161515610aee57600080fd5b600160a060020a03811660009081526006602052604090205460ff1615156107b557600160a060020a03811660009081526006602052604090819020805460ff191660019081179091556004805490910190557f6adffd5c93085d835dac6f3b40adf7c242ca4b3284048d20c3d8a501748dc97390829051600160a060020a03909116815260200160405180910390a15b5b5b5b50565b60035433600160a060020a03908116911614610ba057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600b54600090431015610bdf57600080fd5b60075443111580610bf05750600754155b1515610bfb57600080fd5b610c058383610d55565b15610c12575060016106ef565b5060005b5b5b92915050565b60035433600160a060020a03908116911614610c3957600080fd5b60078190555b5b50565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60045481565b60035433600160a060020a03908116911614610c9157600080fd5b6005805460ff191690555b5b565b60066020526000908152604090205460ff1681565b60055460ff1681565b600160a060020a03808416600090815260026020908152604080832033909416835292905290812054610cf08184610d6b565b600160a060020a0380871660009081526002602090815260408083203390941683529290522055610d22858585610d85565b91505b509392505050565b6000828201838110801590610d425750828110155b1515610d4a57fe5b8091505b5092915050565b6000610d62338484610d85565b90505b92915050565b600082821115610d7a57600080fd5b508082035b92915050565b600160a060020a038316600090815260016020526040812054610da89083610d6b565b600160a060020a038086166000908152600160205260408082209390935590851681522054610dd79083610d2d565b600160a060020a03808516600081815260016020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b93925050505600a165627a7a72305820bb1d31dbe59c951afed7e6a5def379a6dcf96ba5ce934dba364d9aa662b46c110029
Swarm Source
bzzr://bb1d31dbe59c951afed7e6a5def379a6dcf96ba5ce934dba364d9aa662b46c11
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.004746 | 7,440.736 | $35.32 |
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.