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 8,922 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 19069703 | 305 days ago | IN | 0 ETH | 0.00052342 | ||||
Transfer | 18837016 | 337 days ago | IN | 0 ETH | 0.00183812 | ||||
Transfer | 18402088 | 398 days ago | IN | 0 ETH | 0.00026555 | ||||
Approve | 17613373 | 509 days ago | IN | 0 ETH | 0.00272645 | ||||
Transfer | 16750151 | 630 days ago | IN | 0 ETH | 0.00187843 | ||||
Transfer | 16387749 | 681 days ago | IN | 0 ETH | 0.00062541 | ||||
Transfer | 16387745 | 681 days ago | IN | 0 ETH | 0.00099927 | ||||
Transfer | 16023990 | 732 days ago | IN | 0 ETH | 0.0004953 | ||||
Transfer | 15548384 | 798 days ago | IN | 0 ETH | 0.00052312 | ||||
Approve | 15426265 | 818 days ago | IN | 0 ETH | 0.0003463 | ||||
Approve | 15237304 | 848 days ago | IN | 0 ETH | 0.00073048 | ||||
Transfer | 15237267 | 848 days ago | IN | 0 ETH | 0.00097396 | ||||
Transfer | 15127284 | 865 days ago | IN | 0 ETH | 0.00052301 | ||||
Transfer | 14876047 | 907 days ago | IN | 0 ETH | 0.00122929 | ||||
Transfer | 14269344 | 1002 days ago | IN | 0 ETH | 0.00380142 | ||||
Transfer | 14200422 | 1013 days ago | IN | 0 ETH | 0.00220158 | ||||
Transfer | 13785436 | 1077 days ago | IN | 0 ETH | 0.00312918 | ||||
Transfer | 13785434 | 1077 days ago | IN | 0 ETH | 0.00284126 | ||||
Approve | 13728328 | 1086 days ago | IN | 0 ETH | 0.00617514 | ||||
Approve | 12993254 | 1201 days ago | IN | 0 ETH | 0.00195787 | ||||
Approve | 12993254 | 1201 days ago | IN | 0 ETH | 0.00362861 | ||||
Approve | 12967247 | 1205 days ago | IN | 0 ETH | 0.00111608 | ||||
Approve | 12967237 | 1205 days ago | IN | 0 ETH | 0.00216934 | ||||
Transfer | 12915359 | 1213 days ago | IN | 0 ETH | 0.00180752 | ||||
Approve | 12914033 | 1214 days ago | IN | 0 ETH | 0.00131187 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
4683214 | 2544 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
SigToken
Compiler Version
v0.4.15+commit.bbb8e64f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-02-23 */ pragma solidity ^0.4.15; /** * Math operations with safety checks */ library SafeMath { function safeMul(uint a, uint b) internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } function safeDiv(uint a, uint b) internal returns (uint) { assert(b > 0); uint c = a / b; assert(a == b * 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 max64(uint64 a, uint64 b) internal constant returns (uint64) { return a >= b ? a : b; } function min64(uint64 a, uint64 b) internal constant returns (uint64) { return a < b ? a : b; } function max256(uint256 a, uint256 b) internal constant returns (uint256) { return a >= b ? a : b; } function min256(uint256 a, uint256 b) internal constant returns (uint256) { return a < b ? a : b; } } /* * ERC20 interface * see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 { uint public totalSupply; 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); } /** * Standard ERC20 token with Short Hand Attack and approve() race condition mitigation. * * Based on code by FirstBlood: * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20 { using SafeMath for uint; mapping(address => uint) balances; mapping(address => mapping (address => uint)) allowed; // Interface marker bool public constant isToken = true; /** * Fix for the ERC20 short address attack * * http://vessenes.com/the-erc20-short-address-attack-explained/ */ modifier onlyPayloadSize(uint size) { require(msg.data.length == size + 4); _; } function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) returns (bool success) { balances[msg.sender] = balances[msg.sender].safeSub(_value); balances[_to] = balances[_to].safeAdd(_value); Transfer(msg.sender, _to, _value); return true; } function transferFrom(address from, address to, uint value) returns (bool success) { uint _allowance = allowed[from][msg.sender]; // Check is not needed because _allowance.safeSub(value) will throw if this condition is not met // if (value > _allowance) throw; balances[to] = balances[to].safeAdd(value); balances[from] = balances[from].safeSub(value); allowed[from][msg.sender] = _allowance.safeSub(value); Transfer(from, to, value); return true; } function balanceOf(address account) constant returns (uint balance) { return balances[account]; } function approve(address spender, uint value) returns (bool success) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 if ((value != 0) && (allowed[msg.sender][spender] != 0)) throw; allowed[msg.sender][spender] = value; Approval(msg.sender, spender, value); return true; } function allowance(address account, address spender) constant returns (uint remaining) { return allowed[account][spender]; } } /** * Upgrade target interface inspired by Lunyr. * * Upgrade agent transfers tokens to a new contract. * Upgrade agent itself can be the token contract, or just a middle man contract doing the heavy lifting. */ contract UpgradeTarget { uint public originalSupply; /** Interface marker */ function isUpgradeTarget() public constant returns (bool) { return true; } function upgradeFrom(address _from, uint256 _value) public; } /** * A token upgrade mechanism where users can opt-in amount of tokens to the next smart contract revision. * * First envisioned by Golem and Lunyr projects. */ contract UpgradeableToken is StandardToken { /** Contract / person who can set the upgrade path. This can be the same as team multisig wallet, as what it is with its default value. */ address public upgradeMaster; /** The next contract where the tokens will be migrated. */ UpgradeTarget public upgradeTarget; /** How many tokens we have upgraded by now. */ uint256 public totalUpgraded; /** * Upgrade states. * * - NotAllowed: The child contract has not reached a condition where the upgrade can bgun * - WaitingForAgent: Token allows upgrade, but we don't have a new agent yet * - ReadyToUpgrade: The agent is set, but not a single token has been upgraded yet * - Upgrading: Upgrade agent is set and the balance holders can upgrade their tokens * */ enum UpgradeState {Unknown, NotAllowed, WaitingForAgent, ReadyToUpgrade, Upgrading} /** * Somebody has upgraded some of his tokens. */ event LogUpgrade(address indexed _from, address indexed _to, uint256 _value); /** * New upgrade agent available. */ event LogSetUpgradeTarget(address agent); /** * Do not allow construction without upgrade master set. */ function UpgradeableToken(address _upgradeMaster) { upgradeMaster = _upgradeMaster; } /** * Allow the token holder to upgrade some of their tokens to a new contract. */ function upgrade(uint256 value) public { UpgradeState state = getUpgradeState(); require(state == UpgradeState.ReadyToUpgrade || state == UpgradeState.Upgrading); // Validate input value. require(value > 0); balances[msg.sender] = balances[msg.sender].safeSub(value); // Take tokens out from circulation totalSupply = totalSupply.safeSub(value); totalUpgraded = totalUpgraded.safeAdd(value); // Upgrade agent reissues the tokens upgradeTarget.upgradeFrom(msg.sender, value); LogUpgrade(msg.sender, upgradeTarget, value); } /** * Set an upgrade targget that handles the process of letting users opt-in to the new token contract. */ function setUpgradeTarget(address target) external { require(canUpgrade()); require(target != 0x0); require(msg.sender == upgradeMaster); // Only a master can designate the next target require(getUpgradeState() != UpgradeState.Upgrading); // Upgrade has already begun upgradeTarget = UpgradeTarget(target); require(upgradeTarget.isUpgradeTarget()); // Bad interface require(upgradeTarget.originalSupply() == totalSupply); // Make sure that token supplies match in source and target LogSetUpgradeTarget(upgradeTarget); } /** * Get the state of the token upgrade. */ function getUpgradeState() public constant returns (UpgradeState) { if (!canUpgrade()) return UpgradeState.NotAllowed; else if (address(upgradeTarget) == 0x00) return UpgradeState.WaitingForAgent; else if (totalUpgraded == 0) return UpgradeState.ReadyToUpgrade; else return UpgradeState.Upgrading; } /** * Change the upgrade master. * * This allows us to set a new owner for the upgrade mechanism. */ function setUpgradeMaster(address master) public { require(master != 0x0); require(msg.sender == upgradeMaster); upgradeMaster = master; } /** * Child contract can enable to provide the condition when the upgrade can begun. */ function canUpgrade() public constant returns (bool) { return true; } } contract MintableToken is StandardToken { address public mintMaster; event LogMintTokens(address recipient, uint amount, uint newBalance, uint totalSupply); event LogUnmintTokens(address hodler, uint amount, uint newBalance, uint totalSupply); event LogSetMintMaster(address oldMintMaster, address newMintMaster); function MintableToken(address _mintMaster) { mintMaster = _mintMaster; } function setMintMaster(address newMintMaster) returns (bool ok) { require(msg.sender == mintMaster); address oldMintMaster = mintMaster; mintMaster = newMintMaster; LogSetMintMaster(oldMintMaster, mintMaster); return true; } function mintTokens(address recipient, uint amount) returns (bool ok) { require(msg.sender == mintMaster); require(amount > 0); balances[recipient] = balances[recipient].safeAdd(amount); totalSupply = totalSupply.safeAdd(amount); LogMintTokens(recipient, amount, balances[recipient], totalSupply); Transfer(address(0), recipient, amount); return true; } function unmintTokens(address hodler, uint amount) returns (bool ok) { require(msg.sender == mintMaster); require(amount > 0); require(balances[hodler] >= amount); balances[hodler] = balances[hodler].safeSub(amount); totalSupply = totalSupply.safeSub(amount); LogUnmintTokens(hodler, amount, balances[hodler], totalSupply); Transfer(hodler, address(0), amount); return true; } } contract SigToken is UpgradeableToken, MintableToken { string public name = "Signals"; string public symbol = "SIG"; uint8 public decimals = 18; address public crowdsaleContract; bool public crowdsaleCompleted; function SigToken() UpgradeableToken(msg.sender) MintableToken(msg.sender) { crowdsaleContract = msg.sender; totalSupply = 0; // we mint during the crowdsale, so totalSupply must start at 0 } function transfer(address _to, uint _value) returns (bool success) { require(crowdsaleCompleted); return StandardToken.transfer(_to, _value); } function transferFrom(address from, address to, uint value) returns (bool success) { require(crowdsaleCompleted); return StandardToken.transferFrom(from, to, value); } function approve(address spender, uint value) returns (bool success) { require(crowdsaleCompleted); return StandardToken.approve(spender, value); } // This is called to unlock tokens once the crowdsale (and subsequent audit + legal process) are // completed. We don't want people buying tokens during the sale and then immediately starting // to trade them. See Crowdsale::finalizeCrowdsale(). function setCrowdsaleCompleted() { require(msg.sender == crowdsaleContract); require(crowdsaleCompleted == false); crowdsaleCompleted = true; } /** * ERC20 approveAndCall extension * * Approves and then calls the receiving contract */ function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) { require(crowdsaleCompleted); allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); //call the receiveApproval function on the contract you want to be notified. This crafts the function signature manually so one doesn't have to include a contract in here just for this. //receiveApproval(address _from, uint256 _value, address _tokenContract, bytes _extraData) //it is assumed when one does this that the call *should* succeed, otherwise one would use vanilla approve instead. require(_spender.call(bytes4(bytes32(keccak256("receiveApproval(address,uint256,address,bytes)"))), msg.sender, _value, this, _extraData)); return true; } }
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":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":"crowdsaleCompleted","outputs":[{"name":"","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":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleContract","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"upgrade","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"setCrowdsaleCompleted","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"upgradeMaster","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getUpgradeState","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"canUpgrade","outputs":[{"name":"","type":"bool"}],"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":"hodler","type":"address"},{"name":"amount","type":"uint256"}],"name":"unmintTokens","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalUpgraded","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"}],"name":"setUpgradeTarget","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newMintMaster","type":"address"}],"name":"setMintMaster","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"mintMaster","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isToken","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"mintTokens","outputs":[{"name":"ok","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"upgradeTarget","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"master","type":"address"}],"name":"setUpgradeMaster","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"newBalance","type":"uint256"},{"indexed":false,"name":"totalSupply","type":"uint256"}],"name":"LogMintTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"hodler","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"newBalance","type":"uint256"},{"indexed":false,"name":"totalSupply","type":"uint256"}],"name":"LogUnmintTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldMintMaster","type":"address"},{"indexed":false,"name":"newMintMaster","type":"address"}],"name":"LogSetMintMaster","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"LogUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"agent","type":"address"}],"name":"LogSetUpgradeTarget","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
60606040526040805190810160405260078082527f5369676e616c730000000000000000000000000000000000000000000000000060208301529080516200004c9291602001906200011a565b5060408051908101604052600381527f534947000000000000000000000000000000000000000000000000000000000060208201526008908051620000969291602001906200011a565b506009805460ff191660121790553415620000b057600080fd5b5b335b335b60038054600160a060020a031916600160a060020a0383161790555b5060068054600160a060020a031916600160a060020a0383161790555b506009805461010060a860020a03191661010033600160a060020a031602179055600080555b620001c4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015d57805160ff19168380011785556200018d565b828001600101855582156200018d579182015b828111156200018d57825182559160200191906001019062000170565b5b506200019c929150620001a0565b5090565b620001c191905b808211156200019c5760008155600101620001a7565b5090565b90565b61156380620001d46000396000f300606060405236156101385763ffffffff60e060020a60003504166306fdde03811461013d578063095ea7b3146101c85780631088f03f146101fe57806318160ddd1461022557806323b872dd1461024a578063313ce5671461028657806331616395146102af57806345977d03146102de5780635afd7627146102f6578063600440cb1461030b57806370a082311461033a5780638444b3911461036b57806395d89b41146103a25780639738968c1461042d578063a9059cbb14610454578063af9afe731461048a578063c752ff62146104c0578063cae9ca51146104e5578063cd3265a31461055e578063ce5c073d1461057f578063d991c58f146105b2578063dd62ed3e146105e1578063eefa597b14610618578063f0dda65c1461063f578063fe537a8214610675578063ffeb7d75146106a4575b600080fd5b341561014857600080fd5b6101506106c5565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018d5780820151818401525b602001610174565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d357600080fd5b6101ea600160a060020a0360043516602435610763565b604051901515815260200160405180910390f35b341561020957600080fd5b6101ea610791565b604051901515815260200160405180910390f35b341561023057600080fd5b6102386107a1565b60405190815260200160405180910390f35b341561025557600080fd5b6101ea600160a060020a03600435811690602435166044356107a7565b604051901515815260200160405180910390f35b341561029157600080fd5b6102996107d7565b60405160ff909116815260200160405180910390f35b34156102ba57600080fd5b6102c26107e0565b604051600160a060020a03909116815260200160405180910390f35b34156102e957600080fd5b6102f46004356107f4565b005b341561030157600080fd5b6102f4610961565b005b341561031657600080fd5b6102c26109c0565b604051600160a060020a03909116815260200160405180910390f35b341561034557600080fd5b610238600160a060020a03600435166109cf565b60405190815260200160405180910390f35b341561037657600080fd5b61037e6109ee565b6040518082600481111561038e57fe5b60ff16815260200191505060405180910390f35b34156103ad57600080fd5b610150610a3b565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018d5780820151818401525b602001610174565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043857600080fd5b6101ea610ad9565b604051901515815260200160405180910390f35b341561045f57600080fd5b6101ea600160a060020a0360043516602435610adf565b604051901515815260200160405180910390f35b341561049557600080fd5b6101ea600160a060020a0360043516602435610b0d565b604051901515815260200160405180910390f35b34156104cb57600080fd5b610238610c6a565b60405190815260200160405180910390f35b34156104f057600080fd5b6101ea60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610c7095505050505050565b604051901515815260200160405180910390f35b341561056957600080fd5b6102f4600160a060020a0360043516610e2a565b005b341561058a57600080fd5b6101ea600160a060020a0360043516610fe3565b604051901515815260200160405180910390f35b34156105bd57600080fd5b6102c2611087565b604051600160a060020a03909116815260200160405180910390f35b34156105ec57600080fd5b610238600160a060020a0360043581169060243516611096565b60405190815260200160405180910390f35b341561062357600080fd5b6101ea6110c3565b604051901515815260200160405180910390f35b341561064a57600080fd5b6101ea600160a060020a03600435166024356110c8565b604051901515815260200160405180910390f35b341561068057600080fd5b6102c26111ff565b604051600160a060020a03909116815260200160405180910390f35b34156106af57600080fd5b6102f4600160a060020a036004351661120e565b005b60078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075b5780601f106107305761010080835404028352916020019161075b565b820191906000526020600020905b81548152906001019060200180831161073e57829003601f168201915b505050505081565b60095460009060a860020a900460ff16151561077e57600080fd5b610788838361126a565b90505b92915050565b60095460a860020a900460ff1681565b60005481565b60095460009060a860020a900460ff1615156107c257600080fd5b6107cd848484611313565b90505b9392505050565b60095460ff1681565b6009546101009004600160a060020a031681565b60006107fe6109ee565b905060035b81600481111561080f57fe5b1480610827575060045b81600481111561082557fe5b145b151561083257600080fd5b6000821161083f57600080fd5b600160a060020a033316600090815260016020526040902054610868908363ffffffff61141616565b600160a060020a03331660009081526001602052604081209190915554610895908363ffffffff61141616565b6000556005546108ab908363ffffffff61142d16565b600555600454600160a060020a031663753e88e5338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561090457600080fd5b6102c65a03f1151561091557600080fd5b5050600454600160a060020a03908116915033167f947637ad74c8018986ee33595c626316230f52029a0129e84fc7212b7b2c75028460405190815260200160405180910390a35b5050565b60095433600160a060020a03908116610100909204161461098157600080fd5b60095460a860020a900460ff161561099857600080fd5b6009805475ff000000000000000000000000000000000000000000191660a860020a1790555b565b600354600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b60006109f8610ad9565b1515610a0657506001610a35565b600454600160a060020a03161515610a2057506002610a35565b6005541515610a3157506003610a35565b5060045b5b5b5b90565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075b5780601f106107305761010080835404028352916020019161075b565b820191906000526020600020905b81548152906001019060200180831161073e57829003601f168201915b505050505081565b60015b90565b60095460009060a860020a900460ff161515610afa57600080fd5b6107888383611455565b90505b92915050565b60065460009033600160a060020a03908116911614610b2b57600080fd5b60008211610b3857600080fd5b600160a060020a03831660009081526001602052604090205482901015610b5e57600080fd5b600160a060020a038316600090815260016020526040902054610b87908363ffffffff61141616565b600160a060020a03841660009081526001602052604081209190915554610bb4908363ffffffff61141616565b6000818155600160a060020a03851681526001602052604090819020547f2e0eddecfc49c6167981c028aca887d76127461e2b5a26b11d4aa0511e40d60192869286929190518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a16000600160a060020a0384166000805160206115188339815191528460405190815260200160405180910390a35060015b92915050565b60055481565b60095460009060a860020a900460ff161515610c8b57600080fd5b600160a060020a03338116600081815260026020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a383600160a060020a03166040517f72656365697665417070726f76616c28616464726573732c75696e743235362c81527f616464726573732c6279746573290000000000000000000000000000000000006020820152602e01604051809103902060e060020a9004338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a03168152602001828051906020019080838360005b83811015610dca5780820151818401525b602001610db1565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f1925050501515610e1f57600080fd5b5060015b9392505050565b610e32610ad9565b1515610e3d57600080fd5b600160a060020a0381161515610e5257600080fd5b60035433600160a060020a03908116911614610e6d57600080fd5b60045b610e786109ee565b6004811115610e8357fe5b1415610e8e57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905516633b6b367e6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ef957600080fd5b6102c65a03f11515610f0a57600080fd5b505050604051805190501515610f1f57600080fd5b600080546004549091600160a060020a0390911690634b2ba0dd90604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610f6f57600080fd5b6102c65a03f11515610f8057600080fd5b50505060405180519050141515610f9657600080fd5b6004547f85efc013e6a48528d2ea6e2365572f6db3ff28b9b911968161eaf0fd46d494e890600160a060020a0316604051600160a060020a03909116815260200160405180910390a15b50565b600654600090819033600160a060020a0390811691161461100357600080fd5b5060068054600160a060020a0384811673ffffffffffffffffffffffffffffffffffffffff1983161792839055908116917f85634ebba9e270a25e5845ccc5f7819479f4edb51c85d57452434114c70dedca91839116604051600160a060020a039283168152911660208201526040908101905180910390a1600191505b50919050565b600654600160a060020a031681565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600181565b60065460009033600160a060020a039081169116146110e657600080fd5b600082116110f357600080fd5b600160a060020a03831660009081526001602052604090205461111c908363ffffffff61142d16565b600160a060020a03841660009081526001602052604081209190915554611149908363ffffffff61142d16565b6000818155600160a060020a03851681526001602052604090819020547f5f502ab3f45e75f9f14918f5f5e2680d15cf6823e37114077e4488f5c3a6070992869286929190518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1600160a060020a03831660006000805160206115188339815191528460405190815260200160405180910390a35060015b92915050565b600454600160a060020a031681565b600160a060020a038116151561122357600080fd5b60035433600160a060020a0390811691161461123e57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6000811580159061129f5750600160a060020a0333811660009081526002602090815260408083209387168352929052205415155b156112a957600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600160a060020a03808416600090815260026020908152604080832033851684528252808320549386168352600190915281205490919061135a908463ffffffff61142d16565b600160a060020a03808616600090815260016020526040808220939093559087168152205461138f908463ffffffff61141616565b600160a060020a0386166000908152600160205260409020556113b8818463ffffffff61141616565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616916000805160206115188339815191529086905190815260200160405180910390a3600191505b509392505050565b60008282111561142257fe5b508082035b92915050565b60008282018381108015906114425750828110155b151561144a57fe5b8091505b5092915050565b600060403660441461146657600080fd5b600160a060020a03331660009081526001602052604090205461148f908463ffffffff61141616565b600160a060020a0333811660009081526001602052604080822093909355908616815220546114c4908463ffffffff61142d16565b600160a060020a0380861660008181526001602052604090819020939093559133909116906000805160206115188339815191529086905190815260200160405180910390a3600191505b5b50929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209274d12d9b0929dc0a25eeacfea489154f63da31679a78aa71d557aa42fee3880029
Deployed Bytecode
0x606060405236156101385763ffffffff60e060020a60003504166306fdde03811461013d578063095ea7b3146101c85780631088f03f146101fe57806318160ddd1461022557806323b872dd1461024a578063313ce5671461028657806331616395146102af57806345977d03146102de5780635afd7627146102f6578063600440cb1461030b57806370a082311461033a5780638444b3911461036b57806395d89b41146103a25780639738968c1461042d578063a9059cbb14610454578063af9afe731461048a578063c752ff62146104c0578063cae9ca51146104e5578063cd3265a31461055e578063ce5c073d1461057f578063d991c58f146105b2578063dd62ed3e146105e1578063eefa597b14610618578063f0dda65c1461063f578063fe537a8214610675578063ffeb7d75146106a4575b600080fd5b341561014857600080fd5b6101506106c5565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018d5780820151818401525b602001610174565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101d357600080fd5b6101ea600160a060020a0360043516602435610763565b604051901515815260200160405180910390f35b341561020957600080fd5b6101ea610791565b604051901515815260200160405180910390f35b341561023057600080fd5b6102386107a1565b60405190815260200160405180910390f35b341561025557600080fd5b6101ea600160a060020a03600435811690602435166044356107a7565b604051901515815260200160405180910390f35b341561029157600080fd5b6102996107d7565b60405160ff909116815260200160405180910390f35b34156102ba57600080fd5b6102c26107e0565b604051600160a060020a03909116815260200160405180910390f35b34156102e957600080fd5b6102f46004356107f4565b005b341561030157600080fd5b6102f4610961565b005b341561031657600080fd5b6102c26109c0565b604051600160a060020a03909116815260200160405180910390f35b341561034557600080fd5b610238600160a060020a03600435166109cf565b60405190815260200160405180910390f35b341561037657600080fd5b61037e6109ee565b6040518082600481111561038e57fe5b60ff16815260200191505060405180910390f35b34156103ad57600080fd5b610150610a3b565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018d5780820151818401525b602001610174565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043857600080fd5b6101ea610ad9565b604051901515815260200160405180910390f35b341561045f57600080fd5b6101ea600160a060020a0360043516602435610adf565b604051901515815260200160405180910390f35b341561049557600080fd5b6101ea600160a060020a0360043516602435610b0d565b604051901515815260200160405180910390f35b34156104cb57600080fd5b610238610c6a565b60405190815260200160405180910390f35b34156104f057600080fd5b6101ea60048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610c7095505050505050565b604051901515815260200160405180910390f35b341561056957600080fd5b6102f4600160a060020a0360043516610e2a565b005b341561058a57600080fd5b6101ea600160a060020a0360043516610fe3565b604051901515815260200160405180910390f35b34156105bd57600080fd5b6102c2611087565b604051600160a060020a03909116815260200160405180910390f35b34156105ec57600080fd5b610238600160a060020a0360043581169060243516611096565b60405190815260200160405180910390f35b341561062357600080fd5b6101ea6110c3565b604051901515815260200160405180910390f35b341561064a57600080fd5b6101ea600160a060020a03600435166024356110c8565b604051901515815260200160405180910390f35b341561068057600080fd5b6102c26111ff565b604051600160a060020a03909116815260200160405180910390f35b34156106af57600080fd5b6102f4600160a060020a036004351661120e565b005b60078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075b5780601f106107305761010080835404028352916020019161075b565b820191906000526020600020905b81548152906001019060200180831161073e57829003601f168201915b505050505081565b60095460009060a860020a900460ff16151561077e57600080fd5b610788838361126a565b90505b92915050565b60095460a860020a900460ff1681565b60005481565b60095460009060a860020a900460ff1615156107c257600080fd5b6107cd848484611313565b90505b9392505050565b60095460ff1681565b6009546101009004600160a060020a031681565b60006107fe6109ee565b905060035b81600481111561080f57fe5b1480610827575060045b81600481111561082557fe5b145b151561083257600080fd5b6000821161083f57600080fd5b600160a060020a033316600090815260016020526040902054610868908363ffffffff61141616565b600160a060020a03331660009081526001602052604081209190915554610895908363ffffffff61141616565b6000556005546108ab908363ffffffff61142d16565b600555600454600160a060020a031663753e88e5338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561090457600080fd5b6102c65a03f1151561091557600080fd5b5050600454600160a060020a03908116915033167f947637ad74c8018986ee33595c626316230f52029a0129e84fc7212b7b2c75028460405190815260200160405180910390a35b5050565b60095433600160a060020a03908116610100909204161461098157600080fd5b60095460a860020a900460ff161561099857600080fd5b6009805475ff000000000000000000000000000000000000000000191660a860020a1790555b565b600354600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b60006109f8610ad9565b1515610a0657506001610a35565b600454600160a060020a03161515610a2057506002610a35565b6005541515610a3157506003610a35565b5060045b5b5b5b90565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561075b5780601f106107305761010080835404028352916020019161075b565b820191906000526020600020905b81548152906001019060200180831161073e57829003601f168201915b505050505081565b60015b90565b60095460009060a860020a900460ff161515610afa57600080fd5b6107888383611455565b90505b92915050565b60065460009033600160a060020a03908116911614610b2b57600080fd5b60008211610b3857600080fd5b600160a060020a03831660009081526001602052604090205482901015610b5e57600080fd5b600160a060020a038316600090815260016020526040902054610b87908363ffffffff61141616565b600160a060020a03841660009081526001602052604081209190915554610bb4908363ffffffff61141616565b6000818155600160a060020a03851681526001602052604090819020547f2e0eddecfc49c6167981c028aca887d76127461e2b5a26b11d4aa0511e40d60192869286929190518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a16000600160a060020a0384166000805160206115188339815191528460405190815260200160405180910390a35060015b92915050565b60055481565b60095460009060a860020a900460ff161515610c8b57600080fd5b600160a060020a03338116600081815260026020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a383600160a060020a03166040517f72656365697665417070726f76616c28616464726573732c75696e743235362c81527f616464726573732c6279746573290000000000000000000000000000000000006020820152602e01604051809103902060e060020a9004338530866040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a03168152602001828051906020019080838360005b83811015610dca5780820151818401525b602001610db1565b50505050905090810190601f168015610df75780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f1925050501515610e1f57600080fd5b5060015b9392505050565b610e32610ad9565b1515610e3d57600080fd5b600160a060020a0381161515610e5257600080fd5b60035433600160a060020a03908116911614610e6d57600080fd5b60045b610e786109ee565b6004811115610e8357fe5b1415610e8e57600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091179182905516633b6b367e6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ef957600080fd5b6102c65a03f11515610f0a57600080fd5b505050604051805190501515610f1f57600080fd5b600080546004549091600160a060020a0390911690634b2ba0dd90604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610f6f57600080fd5b6102c65a03f11515610f8057600080fd5b50505060405180519050141515610f9657600080fd5b6004547f85efc013e6a48528d2ea6e2365572f6db3ff28b9b911968161eaf0fd46d494e890600160a060020a0316604051600160a060020a03909116815260200160405180910390a15b50565b600654600090819033600160a060020a0390811691161461100357600080fd5b5060068054600160a060020a0384811673ffffffffffffffffffffffffffffffffffffffff1983161792839055908116917f85634ebba9e270a25e5845ccc5f7819479f4edb51c85d57452434114c70dedca91839116604051600160a060020a039283168152911660208201526040908101905180910390a1600191505b50919050565b600654600160a060020a031681565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b600181565b60065460009033600160a060020a039081169116146110e657600080fd5b600082116110f357600080fd5b600160a060020a03831660009081526001602052604090205461111c908363ffffffff61142d16565b600160a060020a03841660009081526001602052604081209190915554611149908363ffffffff61142d16565b6000818155600160a060020a03851681526001602052604090819020547f5f502ab3f45e75f9f14918f5f5e2680d15cf6823e37114077e4488f5c3a6070992869286929190518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1600160a060020a03831660006000805160206115188339815191528460405190815260200160405180910390a35060015b92915050565b600454600160a060020a031681565b600160a060020a038116151561122357600080fd5b60035433600160a060020a0390811691161461123e57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6000811580159061129f5750600160a060020a0333811660009081526002602090815260408083209387168352929052205415155b156112a957600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600160a060020a03808416600090815260026020908152604080832033851684528252808320549386168352600190915281205490919061135a908463ffffffff61142d16565b600160a060020a03808616600090815260016020526040808220939093559087168152205461138f908463ffffffff61141616565b600160a060020a0386166000908152600160205260409020556113b8818463ffffffff61141616565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616916000805160206115188339815191529086905190815260200160405180910390a3600191505b509392505050565b60008282111561142257fe5b508082035b92915050565b60008282018381108015906114425750828110155b151561144a57fe5b8091505b5092915050565b600060403660441461146657600080fd5b600160a060020a03331660009081526001602052604090205461148f908463ffffffff61141616565b600160a060020a0333811660009081526001602052604080822093909355908616815220546114c4908463ffffffff61142d16565b600160a060020a0380861660008181526001602052604090819020939093559133909116906000805160206115188339815191529086905190815260200160405180910390a3600191505b5b50929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058209274d12d9b0929dc0a25eeacfea489154f63da31679a78aa71d557aa42fee3880029
Swarm Source
bzzr://9274d12d9b0929dc0a25eeacfea489154f63da31679a78aa71d557aa42fee388
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.