Contract 0xad5001949cb9514f6c4da51c7218c06f1d0e594e

Contract Overview

Balance:
0 Ether

Latest 10 internal transactions Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xa5456228cb959c5fb23fe919315f93e5346a114ffa5d7f18ff2a9ce4152111651287208482 days 23 hrs ago0xbefbfa889940204dc5f5492be2af19dbf1ce83060xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0x9adca5fc909aa3164fcfa64817bdae145d3ea252d037a12b8926a677f70761521287206482 days 23 hrs ago0x61d952867f03027acbadb16c9fe30af221e902000xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0xadb36f5d0629c6f5865dc322bb26e154bad48adf56caaf1df1888371f81d7d801287204482 days 23 hrs ago0x5a5fb07233a47c7da10a6af498eacdc080363e220xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0x5bbc5c19e0c4aa7f6ddfde14b765b210903d1558425aed0db95e253232e243541287202482 days 23 hrs ago0x73c6ed76056f4f6808a73cdf8c9f9d9a0a5799510xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0xc9bd788d3d970d28b344554e477de0aca2d992a97824e6fda2209caaee64c31a1287198482 days 23 hrs ago0xb0d2e1577f8342dd086adf7f364212e261a7892e0xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0x3cbe7b240256ee2512b39ae3f684a81a698bd070026f20519ce71bbe7f512d381287195482 days 23 hrs ago0x3a56531eb6cffbe4b3eee2fe4481d0c0cce3a1330xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0x2dd59e3c1721253bab5305078a265ed56271487e81c7dfb561022bf60ba938b41287192482 days 23 hrs ago0x3dff516177b6e74d6279d407e211fe795506fef40xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0x2e5a79704b014401acc8244e10700a708420b9664a4ab439d8548c4b3b8ba0911287185482 days 23 hrs ago0xf801e05012b1a1c8ed89bafe4f16a225adec6d3b0xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0xfb8211f2800e4f9272f00f563c6a896e4ae964e07c661723976408f04785e4c51287183483 days ago0x2e4b6c768776258bc8b3fbfa2c1279732b99a2fe0xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
0xc6b7c895cee018fb58f781428f4adb299b76fad1cd46e3cf98b84fb003f1c1cc1287181483 days ago0x123a980e23f02b680bd7b6b7c6f1c87951fcd4f80xad5001949cb9514f6c4da51c7218c06f1d0e594e0 Ether
[ Download CSV Export 

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20Lib

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

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
		* @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) { 
        name = _tokenName;                                   // Set the name for display purposes
        symbol = _tokenSymbol;                               // Set the symbol for display purposes
    }

    function setMinter(address _minter) external onlyOwner {
		/**
		* @dev Transfer tokens from one address to another.  Requires allowance to be set.
		* once set this can't be changed (the minter contract doesn't have a changeOwner function)
		* @param _minter Address of the minter contract
		*/
	
        changeOwner(_minter);
        mint=I_minter(_minter);    
    }   
}

/** @title RiskCoin. */
contract RiskCoin is Coin{
    function RiskCoin(string _tokenName, string _tokenSymbol) 
	Coin(_tokenName,_tokenSymbol) {} 
	
    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) 
	Coin(_tokenName,_tokenSymbol) {} 

    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

6060604052341561000f57600080fd5b610b918061001e6000396000f3006060604052600436106100a05763ffffffff60e060020a6000350416632d0277b981146100a557806343505a75146100d357806345008797146100e35780635bada338146101035780636704d86c1461011d57806388fd65101461017a578063a293d1e8146101a9578063b2aa4acd146101b7578063d05c78da146101d1578063d0f1154e146101df578063d1717fd4146101f9578063e6cb901314610210575b600080fd5b6100bf600435600160a060020a036024351660443561021e565b604051901515815260200160405180910390f35b6100e1600435602435610341565b005b6100bf600435600160a060020a0360243581169060443516606435610365565b6100bf600435600160a060020a0360243516604435610572565b6100bf600480359060248035600160a060020a0316916044359160849060643590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061066b95505050505050565b610197600435600160a060020a0360243581169060443516610898565b60405190815260200160405180910390f35b610197600435602435610946565b6100bf600435600160a060020a0360243516604435610958565b610197600435602435610a40565b6100bf600435600160a060020a0360243516604435610a6b565b610197600435600160a060020a0360243516610ae6565b610197600435602435610b4b565b60006003606436101561022d57fe5b83803b801561023857fe5b600160a060020a03331660009081526020889052604090205485901080159061027a5750600160a060020a038616600090815260208890526040902054858101115b1561033257600160a060020a0333166000908152602088905260409020546102a29086610946565b600160a060020a03338116600090815260208a9052604080822093909355908816815220546102d19086610b4b565b600160a060020a03808816600081815260208b9052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9088905190815260200160405180910390a360019350610337565b600093505b5050509392505050565b60028201819055600160a060020a0333166000908152602092909252604090912055565b6000806004608436101561037557fe5b85600160a060020a038116151561038b57600080fd5b33600160a060020a031681600160a060020a0316141515156103ac57600080fd5b85600160a060020a03811615156103c257600080fd5b33600160a060020a031681600160a060020a0316141515156103e357600080fd5b600160a060020a038816600090815260208a905260409020548690108015906104355750600160a060020a03808916600090815260018b01602090815260408083203390941683529290522054869010155b801561045a5750600160a060020a038716600090815260208a90526040902054868101115b1561056157600160a060020a03808916600090815260018b01602090815260408083203385168452825280832054938b168352908c90529020549094506104a19087610b4b565b600160a060020a03808916600090815260208c9052604080822093909355908a16815220546104d09087610946565b600160a060020a038916600090815260208b905260409020556104f38487610946565b600160a060020a03808a16600081815260018d016020908152604080832033861684529091529081902093909355908916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a360019450610566565b600094505b50505050949350505050565b60006003606436101561058157fe5b83600160a060020a038116151561059757600080fd5b33600160a060020a031681600160a060020a0316141515156105b857600080fd5b83158015906105ed5750600160a060020a03338116600090815260018801602090815260408083209389168352929052205415155b156105fb5760009250610662565b600160a060020a0333811660008181526001890160209081526040808320948a1680845294909152908190208790557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259087905190815260200160405180910390a3600192505b50509392505050565b60006004608436101561067a57fe5b84600160a060020a038116151561069057600080fd5b33600160a060020a031681600160a060020a0316141515156106b157600080fd5b84158015906106e65750600160a060020a0333811660009081526001890160209081526040808320938a168352929052205415155b156106f4576000925061088e565b600160a060020a03338116600081815260018a0160209081526040808320948b1680845294909152908190208890557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259088905190815260200160405180910390a385600160a060020a03166040517f72656365697665417070726f76616c28616464726573732c75696e743235362c81527f616464726573732c6279746573290000000000000000000000000000000000006020820152602e01604051809103902060e060020a9004338730886040518563ffffffff1660e060020a0281526004018085600160a060020a0316600160a060020a0316815260200184815260200183600160a060020a0316600160a060020a03168152602001828051906020019080838360005b8381101561083457808201518382015260200161081c565b50505050905090810190601f1680156108615780820380516001836020036101000a031916815260200191505b5094505050505060006040518083038160008761646e5a03f192505050151561088957600080fd5b600192505b5050949350505050565b6000600360643610156108a757fe5b83600160a060020a03811615156108bd57600080fd5b33600160a060020a031681600160a060020a0316141515156108de57600080fd5b83600160a060020a03811615156108f457600080fd5b33600160a060020a031681600160a060020a03161415151561091557600080fd5b50505050600160a060020a039182166000908152600193909301602090815260408085209290931684525290205490565b60008282111561095257fe5b50900390565b6000806003606436101561096857fe5b84600160a060020a038116151561097e57600080fd5b33600160a060020a031681600160a060020a03161415151561099f57600080fd5b600160a060020a0333811660009081526001890160209081526040808320938a1683529290522054925082851115610a0057600160a060020a0333811660009081526001890160209081526040808320938a16835292905290812055610a33565b610a0a8386610946565b600160a060020a03338116600090815260018a0160209081526040808320938b16835292905220555b5060019695505050505050565b6000828202831580610a5c5750828482811515610a5957fe5b04145b1515610a6457fe5b9392505050565b60008060036064361015610a7b57fe5b84600160a060020a0381161515610a9157600080fd5b33600160a060020a031681600160a060020a031614151515610ab257600080fd5b600160a060020a0333811660009081526001890160209081526040808320938a16835292905220549250610a0a8386610b4b565b600060026044361015610af557fe5b82600160a060020a0381161515610b0b57600080fd5b33600160a060020a031681600160a060020a031614151515610b2c57600080fd5b505050600160a060020a03166000908152602091909152604090205490565b6000828201838110801590610a5c575082811015610a6457fe00a165627a7a72305820dc7f6652dec732124c72359073c3556ff15889b0e38f3d584dbcdd32548f9da90029

Swarm Source

bzzr://dc7f6652dec732124c72359073c3556ff15889b0e38f3d584dbcdd32548f9da9
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward