[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 13 Internal Transactions

ParentTxHash Block Age From To Value
0x7a188703d63575abf7b2e5fbda70852369f4106246def55ddf8e5ff910cf85084392843489 days 4 hrs ago0x6c01df8b41f37c3810c5886692f0c2d3a25d8ea40x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0x2d92ebf6ac39072b023b829a7f38e5749d9e6c60709dc52ab49b1cc9268641f04392840489 days 4 hrs ago0x8eb0fb97596b13b86f75239f0242e7f7033cea4e0x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0x56644884d9d47b872c3bed5925e8efc8d8559866781f9fb83cc0d5cf386f57914392834489 days 4 hrs ago0xb581b3205718e113607e9666bd9ee2ce71c31f6b0x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0x8028899feaf4baf5c0b5dac49758590a1c9acc7b66c4e55517c25970ad7ff5f44392831489 days 4 hrs ago0xcdadd55027d3a1f8f3b89dbbe0382857e2c21c620x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0xd6dbd0fbd54a97a8b2b7dad9c77ae3d97b3fe90c63730a7431fdbe16d6e9d0da4392827489 days 4 hrs ago0x4ab29def529b1678e2c5e966e0d67d733829103b0x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0x4ce6ccea586d38dc835c4a8ca10ecd03a77f1f14ac28408c1d131827c577e9eb4392822489 days 4 hrs ago0xb16401b488b065fe55f3248516681d15da8117100x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0x4d744ca2be1c92f908f19bbd7ee4a7245a11ace654e036d18ba76b20dbf7e9c24392819489 days 4 hrs ago0x317ed52055c1241f73eff266f0e5a79de071d48b0x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0xa5a10db26df3649ad46839782c65b7af1e129c1ea11322c7da40b44af3044a924392813489 days 4 hrs ago0x932753e65df8cfd5814d0dc0a5defa260a8aa6540x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0x89c3b733bb57ae2ea18a2332efab0c23fc1033799e289a76f4b1c35e96fbc90a4392810489 days 4 hrs ago0x7dbd6f3a28c5e1a85c1897f48ecf944ad4398a990x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0xf5a92eabc6e1157e7a64ebfc843f3dbc2e11ff0f6c4e621f1b041ef1d11943c24392805489 days 4 hrs ago0x3e320fbf1b806227bfba29e9e9ab04c4388acd470x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0xf39093b57b42feb02861336cac32c212c3209983e18c1e9238673fea8ad4e4684392778489 days 4 hrs ago0xc138fa27133093248fcec7540795c3dd25e7fdbd0x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0x3a9259d6b51ecc05c7f2735b07a19e7598ed7efa00d20439338eed641400c59f4392773489 days 4 hrs ago0xeaae6fb86a22956180bc863ad406d6a80800cf8f0x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
0x44ceec70ca4f475c9cf8aef755ae285878b16b59b1d345d4589d30ff70dfa4334392770489 days 4 hrs ago0xd903461f36560f9adeee4cee70e061912c0fb50d0x271c81ea0fc1030a861052d9559eca1ae76c23000 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), NestedArrayFunctionCallDecoder (medium-severity), ZeroFunctionSelector (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: ERC20Lib
Compiler Version: v0.4.16+commit.d7661dd9
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.16;
//https://github.com/genkifs/staticoin

contract owned  {
  address owner;
  function owned() {
    owner = msg.sender;
  }
  function changeOwner(address newOwner) onlyOwner {
    owner = newOwner;
  }
  modifier onlyOwner() {
    if (msg.sender==owner) 
    _;
  }
}

contract mortal is owned() {
  function kill() onlyOwner {
    if (msg.sender == owner) selfdestruct(owner);
  }
}

library ERC20Lib {
//Inspired by https://blog.aragon.one/library-driven-development-in-solidity-2bebcaf88736
  struct TokenStorage {
    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;
    uint256 totalSupply;
  }
  
	event Transfer(address indexed _from, address indexed _to, uint256 _value);
	event Approval(address indexed _owner, address indexed _spender, uint256 _value);

	modifier onlyPayloadSize(uint numwords) {
		/**
		* @dev  Checks for short addresses  
		* @param numwords number of parameters passed 
		*/
        assert(msg.data.length >= numwords * 32 + 4);
        _;
	}
  
	modifier validAddress(address _address) { 
		/**
		* @dev  validates an address.  
		* @param _address checks that it isn't null or this contract address
		*/		
        require(_address != 0x0); 
        require(_address != address(msg.sender)); 
        _; 
    } 
	
	modifier IsWallet(address _address) {
		/**
		* @dev Transfer tokens from msg.sender to another address.  
		* Cannot Allows execution if the transfer to address code size is 0
		* @param _address address to check that its not a contract
		*/		
		uint codeLength;
		assembly {
            // Retrieve the size of the code on target address, this needs assembly .
            codeLength := extcodesize(_address)
        }
		assert(codeLength==0);		
        _; 
    } 

   function safeMul(uint a, uint b) returns (uint) { 
     uint c = a * b; 
     assert(a == 0 || c / a == b); 
     return c; 
   } 
 
   function safeSub(uint a, uint b) returns (uint) { 
     assert(b <= a); 
     return a - b; 
   }  
 
   function safeAdd(uint a, uint b) returns (uint) { 
     uint c = a + b; 
     assert(c>=a && c>=b); 
     return c; 
   } 
	
	function init(TokenStorage storage self, uint _initial_supply) {
		self.totalSupply = _initial_supply;
		self.balances[msg.sender] = _initial_supply;
	}
  
	function transfer(TokenStorage storage self, address _to, uint256 _value) 
		onlyPayloadSize(3)
		IsWallet(_to)		
		returns (bool success) {				
		/**
		* @dev Transfer tokens from msg.sender to another address.  
		* Cannot be used to send tokens to a contract, this means contracts cannot mint coins to themselves
		* Contracts have to use the approve and transfer method
		* this is based on https://github.com/Dexaran/ERC223-token-standard
		* @param _to address The address where the coin is to be transfered
		* @param _value uint256 the amount of tokens to be transferred
		*/
       if (self.balances[msg.sender] >= _value && self.balances[_to] + _value > self.balances[_to]) {
            self.balances[msg.sender] = safeSub(self.balances[msg.sender], _value);
            self.balances[_to] = safeAdd(self.balances[_to], _value);
            Transfer(msg.sender, _to, _value);
            return true;
        } else { return false; }
    }
  
	function transferFrom(TokenStorage storage self, address _from, address _to, uint256 _value) 
		onlyPayloadSize(4) 
		validAddress(_from)
		validAddress(_to)
		returns (bool success) {
		/**
		* @dev Transfer tokens from one address to another.  Requires allowance to be set.
		* @param _from address The address which you want to send tokens from
		* @param _to address The address which you want to transfer to
		* @param _value uint256 the amount of tokens to be transferred
		*/
        if (self.balances[_from] >= _value && self.allowed[_from][msg.sender] >= _value && self.balances[_to] + _value > self.balances[_to]) {
			var _allowance = self.allowed[_from][msg.sender];
            self.balances[_to] = safeAdd(self.balances[_to], _value);
            self.balances[_from] = safeSub(self.balances[_from], _value);
            self.allowed[_from][msg.sender] = safeSub(_allowance, _value);
            Transfer(_from, _to, _value);
            return true;
        } else { return false; }
    }
     
    function balanceOf(TokenStorage storage self, address _owner) constant 
		onlyPayloadSize(2) 
		validAddress(_owner)
		returns (uint256 balance) {
		/**
		* @dev returns the amount given to an account
		* @param _owner The address to be queried
		* @return Balance of _owner.
		*/
        return self.balances[_owner];
    }
	 
    function approve(TokenStorage storage self, address _spender, uint256 _value) 
		onlyPayloadSize(3) 
		validAddress(_spender)	
		returns (bool success) {
	/**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param _spender The address which will spend the funds.
    * @param _value The amount of tokens to be spent.
    */
		//require user to set to zero before resetting to nonzero
		if ((_value != 0) && (self.allowed[msg.sender][_spender] != 0)) { 
           return false; 
        } else {
			self.allowed[msg.sender][_spender] = _value;
			Approval(msg.sender, _spender, _value);
			return true;
		}
    }
		
	function allowance(TokenStorage storage self, address _owner, address _spender) constant 
		onlyPayloadSize(3) 
		validAddress(_owner)	
		validAddress(_spender)	
		returns (uint256 remaining) {
			/**
			* @dev allows queries of how much a given address is allowed to spend on behalf of another account
			* @param _owner address The address which owns the funds.
			* @param _spender address The address which will spend the funds.
			* @return remaining uint256 specifying the amount of tokens still available for the spender.
			*/
        return self.allowed[_owner][_spender];
    }
	
	function increaseApproval(TokenStorage storage self, address _spender, uint256 _addedValue)  
		onlyPayloadSize(3) 
		validAddress(_spender)	
		returns (bool success) { 
		/**
		* @dev Allows to increment allowed value
		* better to use this function to avoid 2 calls
		* @param _spender address The address which will spend the funds.
		* @param _addedValue amount to increase alowance by.
		* @return True if allowance increased
		*/
        uint256 oldValue = self.allowed[msg.sender][_spender]; 
        self.allowed[msg.sender][_spender] = safeAdd(oldValue, _addedValue); 
        return true; 
    } 
	
	function decreaseApproval(TokenStorage storage self,address _spender, uint256 _subtractedValue)  
		onlyPayloadSize(3) 
		validAddress(_spender)	
		returns (bool success) { 
		/**
		* @dev Allows to decrement allowed value
		* better to use this function to avoid 2 calls
		* @param _spender address The address which will spend the funds.
		* @param _subtractedValue amount to decrease allowance by.
		* @return True if allowance decreased
		*/
		uint256 oldValue = self.allowed[msg.sender][_spender]; 
		if (_subtractedValue > oldValue) { 
			self.allowed[msg.sender][_spender] = 0; 
		} else { 
			self.allowed[msg.sender][_spender] = safeSub(oldValue, _subtractedValue); 
		} 
		return true; 
	} 

    /* Approves and then calls the receiving contract with any additional paramteres*/
    function approveAndCall(TokenStorage storage self, address _spender, uint256 _value, bytes _extraData)
		onlyPayloadSize(4) 
		validAddress(_spender)   
		returns (bool success) {
	//require user to set to zero before resetting to nonzero
			/**
			* @dev Approves and then calls the receiving contract with any additional paramteres
			* @param _owner address The address which owns the funds.
			* @param _spender address The address which will spend the funds.
			* @param _value address The address which will spend the funds.
			* @param _extraData is the additional paramters passed
			* @return True if successful.
			*/
		if ((_value != 0) && (self.allowed[msg.sender][_spender] != 0)) { 
				return false; 
			} else {
			self.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.
			//it is assumed that when does this that the call *should* succeed, otherwise one would use vanilla approve instead.
			if(!_spender.call(bytes4(bytes32(sha3("receiveApproval(address,uint256,address,bytes)"))), msg.sender, _value, this, _extraData)) { revert(); }
			return true;
		}
    }	
	
	function mintCoin(TokenStorage storage self, address target, uint256 mintedAmount, address owner) 
		internal
		returns (bool success) {
			/**
			* @dev Approves and then calls the receiving contract with any additional paramteres
			* @param target address the address which will receive the funds.
			* @param mintedAmount the amount of funds to be sent.
			* @param owner the contract responsable for controling the amount of funds.
			* @return True if successful.
			*/
        self.balances[target] = safeAdd(self.balances[target], mintedAmount);//balances[target] += mintedAmount;
        self.totalSupply = safeAdd(self.totalSupply, mintedAmount);//totalSupply += mintedAmount;
        Transfer(0, owner, mintedAmount); // Deliver coin to the mint
        Transfer(owner, target, mintedAmount); // mint delivers to address
		return true;
    }

    function meltCoin(TokenStorage storage self, address target, uint256 meltedAmount, address owner) 
		internal
		returns (bool success) {
			/**
			* @dev Approves and then calls the receiving contract with any additional paramteres
			* @param target address the address which will return the funds.
			* @param meltedAmount the amount of funds to be returned.
			* @param owner the contract responsable for controling the amount of funds.
			* @return True if successful.
			*/
        if(self.balances[target]<meltedAmount){
            return false;
        }
		self.balances[target] = safeSub(self.balances[target], meltedAmount); //balances[target] -= meltedAmount;
		self.totalSupply = safeSub(self.totalSupply, meltedAmount); //totalSupply -= meltedAmount;
		Transfer(target, owner, meltedAmount); // address delivers to minter
		Transfer(owner, 0, meltedAmount); // minter delivers coin to the burn address
		return true;
    }
}

/** @title StandardToken. */
contract StandardToken is owned{
    using ERC20Lib for ERC20Lib.TokenStorage;
    ERC20Lib.TokenStorage public token;

	string public name;                   //Long token name
    uint8 public decimals=18;                //How many decimals to show. ie. There could 1000 base units with 3 decimals. Meaning 0.980 SBX = 980 base units. It's like comparing 1 wei to 1 ether.
    string public symbol;                 //An identifier: eg SBX
    string public version = 'H0.1';       //human 0.1 standard. Just an arbitrary versioning scheme.
    uint public INITIAL_SUPPLY = 0;		// mintable coin has zero inital supply (and can fall back to zero)

    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);   
   
    function StandardToken() {
		token.init(INITIAL_SUPPLY);
    }

    function totalSupply() constant returns (uint) {
		return token.totalSupply;
    }

    function balanceOf(address who) constant returns (uint) {
		return token.balanceOf(who);
    }

    function allowance(address owner, address _spender) constant returns (uint) {
		return token.allowance(owner, _spender);
    }

	function transfer(address to, uint value) returns (bool ok) {
		return token.transfer(to, value);
	}

	function transferFrom(address _from, address _to, uint _value) returns (bool ok) {
		return token.transferFrom(_from, _to, _value);
	}

	function approve(address _spender, uint value) returns (bool ok) {
		return token.approve(_spender, value);
	}
   
	function increaseApproval(address _spender, uint256 _addedValue) returns (bool ok) {  
		return token.increaseApproval(_spender, _addedValue);
	}    
 
	function decreaseApproval(address _spender, uint256 _subtractedValue) returns (bool ok) {  
		return token.decreaseApproval(_spender, _subtractedValue);
	}

	function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool ok){
		return token.approveAndCall(_spender,_value,_extraData);
    }
	
	function mintCoin(address target, uint256 mintedAmount) onlyOwner returns (bool ok) {
		return token.mintCoin(target,mintedAmount,owner);
    }

    function meltCoin(address target, uint256 meltedAmount) onlyOwner returns (bool ok) {
		return token.meltCoin(target,meltedAmount,owner);
    }
}

/** @title Coin. */
contract Coin is StandardToken, mortal{
    I_minter public mint;				  //Minter interface  
    event EventClear();

    function Coin(string _tokenName, string _tokenSymbol, address _minter) { 
        name = _tokenName;                                   // Set the name for display purposes
        symbol = _tokenSymbol;                               // Set the symbol for display purposes
        changeOwner(_minter);
        mint=I_minter(_minter); 
	}
}

/** @title RiskCoin. */
contract RiskCoin is Coin{
    function RiskCoin(string _tokenName, string _tokenSymbol, address _minter) 
	Coin(_tokenName,_tokenSymbol,_minter) {} 
	
    function() payable {
		/** @dev direct any ETH sent to this RiskCoin address to the minter.NewRisk function
		*/
        mint.NewRiskAdr.value(msg.value)(msg.sender);
    }  
}

/** @title StatiCoin. */
contract StatiCoin is Coin{
    function StatiCoin(string _tokenName, string _tokenSymbol, address _minter) 
	Coin(_tokenName,_tokenSymbol,_minter) {} 

    function() payable {        
		/** @dev direct any ETH sent to this StatiCoin address to the minter.NewStatic function
        */
        mint.NewStaticAdr.value(msg.value)(msg.sender);
    }  
}

/** @title I_coin. */
contract I_coin is mortal {

    event EventClear();

	I_minter public mint;
    string public name;                   //fancy name: eg Simon Bucks
    uint8 public decimals=18;                //How many decimals to show. ie. There could 1000 base units with 3 decimals. Meaning 0.980 SBX = 980 base units. It's like comparing 1 wei to 1 ether.
    string public symbol;                 //An identifier: eg SBX
    string public version = '';       //human 0.1 standard. Just an arbitrary versioning scheme.
	
    function mintCoin(address target, uint256 mintedAmount) returns (bool success) {}
    function meltCoin(address target, uint256 meltedAmount) returns (bool success) {}
    function approveAndCall(address _spender, uint256 _value, bytes _extraData){}

    function setMinter(address _minter) {}   
	function increaseApproval (address _spender, uint256 _addedValue) returns (bool success) {}    
	function decreaseApproval (address _spender, uint256 _subtractedValue) 	returns (bool success) {} 

    // @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) {}

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
	
	// @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) {}
	
	mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;

	// @return total amount of tokens
    uint256 public totalSupply;
}

/** @title I_minter. */
contract I_minter { 
    event EventCreateStatic(address indexed _from, uint128 _value, uint _transactionID, uint _Price); 
    event EventRedeemStatic(address indexed _from, uint128 _value, uint _transactionID, uint _Price); 
    event EventCreateRisk(address indexed _from, uint128 _value, uint _transactionID, uint _Price); 
    event EventRedeemRisk(address indexed _from, uint128 _value, uint _transactionID, uint _Price); 
    event EventBankrupt();
	
    function Leverage() constant returns (uint128)  {}
    function RiskPrice(uint128 _currentPrice,uint128 _StaticTotal,uint128 _RiskTotal, uint128 _ETHTotal) constant returns (uint128 price)  {}
    function RiskPrice(uint128 _currentPrice) constant returns (uint128 price)  {}     
    function PriceReturn(uint _TransID,uint128 _Price) {}
    function NewStatic() external payable returns (uint _TransID)  {}
    function NewStaticAdr(address _Risk) external payable returns (uint _TransID)  {}
    function NewRisk() external payable returns (uint _TransID)  {}
    function NewRiskAdr(address _Risk) external payable returns (uint _TransID)  {}
    function RetRisk(uint128 _Quantity) external payable returns (uint _TransID)  {}
    function RetStatic(uint128 _Quantity) external payable returns (uint _TransID)  {}
    function Strike() constant returns (uint128)  {}
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_initial_supply","type":"uint256"}],"name":"init","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"safeSub","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"safeMul","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"self","type":"ERC20Lib.TokenStorage storage"},{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"safeAdd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"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 Switch To Opcodes View
6060604052341561000f57600080fd5b5b610cb68061001f6000396000f3006060604052361561009e5763ffffffff60e060020a6000350416632d0277b981146100a357806343505a75146100d157806345008797146100e15780635bada338146101155780636704d86c1461014357806388fd6510146101b4578063a293d1e8146101e3578063b2aa4acd14610203578063d05c78da14610231578063d0f1154e14610251578063d1717fd41461027f578063e6cb9013146102a8575b600080fd5b6100bd600435600160a060020a03602435166044356102c8565b604051901515815260200160405180910390f35b6100df6004356024356103ee565b005b6100bd600435600160a060020a0360243581169060443516606435610415565b604051901515815260200160405180910390f35b6100bd600435600160a060020a0360243516604435610626565b604051901515815260200160405180910390f35b6100bd600480359060248035600160a060020a0316916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061072295505050505050565b604051901515815260200160405180910390f35b6101d1600435600160a060020a0360243581169060443516610957565b60405190815260200160405180910390f35b6101d1600435602435610a0c565b60405190815260200160405180910390f35b6100bd600435600160a060020a0360243516604435610a23565b604051901515815260200160405180910390f35b6101d1600435602435610b0f565b60405190815260200160405180910390f35b6100bd600435600160a060020a0360243516604435610b3e565b604051901515815260200160405180910390f35b6101d1600435600160a060020a0360243516610bf6565b60405190815260200160405180910390f35b6101d1600435602435610c62565b60405190815260200160405180910390f35b6000600360643610156102d757fe5b83803b80156102e257fe5b600160a060020a0333166000908152602088905260409020548590108015906103245750600160a060020a038616600090815260208890526040902054858101115b156103dc57600160a060020a03331660009081526020889052604090205461034c9086610a0c565b600160a060020a03338116600090815260208a90526040808220939093559088168152205461037b9086610c62565b600160a060020a03808816600081815260208b9052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9088905190815260200160405180910390a3600193506103e1565b600093505b5b5b50505b509392505050565b60028201819055600160a060020a03331660009081526020839052604090208190555b5050565b6000806004608436101561042557fe5b85600160a060020a038116151561043b57600080fd5b33600160a060020a031681600160a060020a03161415151561045c57600080fd5b85600160a060020a038116151561047257600080fd5b33600160a060020a031681600160a060020a03161415151561049357600080fd5b600160a060020a038816600090815260208a905260409020548690108015906104e55750600160a060020a03808916600090815260018b01602090815260408083203390941683529290522054869010155b801561050a5750600160a060020a038716600090815260208a90526040902054868101115b1561061157600160a060020a03808916600090815260018b01602090815260408083203385168452825280832054938b168352908c90529020549094506105519087610c62565b600160a060020a03808916600090815260208c9052604080822093909355908a16815220546105809087610a0c565b600160a060020a038916600090815260208b905260409020556105a38487610a0c565b600160a060020a03808a16600081815260018d016020908152604080832033861684529091529081902093909355908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a360019450610616565b600094505b5b5b505b505b5050949350505050565b60006003606436101561063557fe5b83600160a060020a038116151561064b57600080fd5b33600160a060020a031681600160a060020a03161415151561066c57600080fd5b83158015906106a15750600160a060020a03338116600090815260018801602090815260408083209389168352929052205415155b156106af5760009250610716565b600160a060020a0333811660008181526001890160209081526040808320948a1680845294909152908190208790557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259087905190815260200160405180910390a3600192505b5b5b505b509392505050565b60006004608436101561073157fe5b84600160a060020a038116151561074757600080fd5b33600160a060020a031681600160a060020a03161415151561076857600080fd5b841580159061079d5750600160a060020a0333811660009081526001890160209081526040808320938a168352929052205415155b156107ab576000925061061c565b600160a060020a03338116600081815260018a0160209081526040808320948b1680845294909152908190208890557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259088905190815260200160405180910390a385600160a060020a03166040517f72656365697665417070726f76616c28616464726573732c75696e743235362c81527f616464726573732c6279746573290000000000000000000000000000000000006020820152602e01604051809103902060e060020a9004338730886040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a03168152602001828051906020019080838360005b838110156108ec5780820151818401525b6020016108d3565b50505050905090810190601f1680156109195780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f192505050151561094157600080fd5b6001925061061c565b5b5b505b50949350505050565b60006003606436101561096657fe5b83600160a060020a038116151561097c57600080fd5b33600160a060020a031681600160a060020a03161415151561099d57600080fd5b83600160a060020a03811615156109b357600080fd5b33600160a060020a031681600160a060020a0316141515156109d457600080fd5b600160a060020a03808716600090815260018901602090815260408083209389168352929052205493505b5b505b505b509392505050565b600082821115610a1857fe5b508082035b92915050565b60008060036064361015610a3357fe5b84600160a060020a0381161515610a4957600080fd5b33600160a060020a031681600160a060020a031614151515610a6a57600080fd5b600160a060020a0333811660009081526001890160209081526040808320938a1683529290522054925082851115610acb57600160a060020a0333811660009081526001890160209081526040808320938a16835292905290812055610afe565b610ad58386610a0c565b600160a060020a03338116600090815260018a0160209081526040808320938b16835292905220555b600193505b5b505b50509392505050565b6000828202831580610b2b5750828482811515610b2857fe5b04145b1515610b3357fe5b8091505b5092915050565b60008060036064361015610b4e57fe5b84600160a060020a0381161515610b6457600080fd5b33600160a060020a031681600160a060020a031614151515610b8557600080fd5b600160a060020a0333811660009081526001890160209081526040808320938a16835292905220549250610ad58386610c62565b600160a060020a0333811660009081526001808b0160209081526040808420948c1684529390529190209190915593505b5b505b50509392505050565b600060026044361015610c0557fe5b82600160a060020a0381161515610c1b57600080fd5b33600160a060020a031681600160a060020a031614151515610c3c57600080fd5b600160a060020a03841660009081526020869052604090205492505b5b505b5092915050565b6000828201838110801590610b2b5750828110155b1515610b3357fe5b8091505b50929150505600a165627a7a72305820e9015b68566fa66eaaacca2389567558a216795177a4d154a5c4c95cc42cb8bb0029

   Swarm Source:
bzzr://e9015b68566fa66eaaacca2389567558a216795177a4d154a5c4c95cc42cb8bb

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward