ETH Price: $1,980.63 (+2.29%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer50494952018-02-07 22:22:442943 days ago1518042164IN
0x3af4b803...c1f6fcA2D
0 ETH0.0025470441
Transfer50459252018-02-07 7:59:212944 days ago1517990361IN
0x3af4b803...c1f6fcA2D
1.5 ETH0.0048999541
Transfer49990582018-01-30 9:43:492952 days ago1517305429IN
0x3af4b803...c1f6fcA2D
0.93 ETH0.0014341312
Transfer47835342017-12-23 16:36:452990 days ago1514047005IN
0x3af4b803...c1f6fcA2D
0.01459 ETH0.000059750.5
Transfer47650292017-12-20 10:24:022993 days ago1513765442IN
0x3af4b803...c1f6fcA2D
0.4 ETH0.0047804440
Transfer47252042017-12-13 11:13:293000 days ago1513163609IN
0x3af4b803...c1f6fcA2D
0.5 ETH0.0023902220
Transfer45595092017-11-15 21:18:283027 days ago1510780708IN
0x3af4b803...c1f6fcA2D
0.5 ETH0.0028247321

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer50459252018-02-07 7:59:212944 days ago1517990361
0x3af4b803...c1f6fcA2D
1.5 ETH
Transfer49990582018-01-30 9:43:492952 days ago1517305429
0x3af4b803...c1f6fcA2D
0.93 ETH
Transfer47835342017-12-23 16:36:452990 days ago1514047005
0x3af4b803...c1f6fcA2D
0.01459 ETH
Transfer47650292017-12-20 10:24:022993 days ago1513765442
0x3af4b803...c1f6fcA2D
0.4 ETH
Transfer47252042017-12-13 11:13:293000 days ago1513163609
0x3af4b803...c1f6fcA2D
0.5 ETH
Transfer45595092017-11-15 21:18:283027 days ago1510780708
0x3af4b803...c1f6fcA2D
0.5 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xFEa61DBc...4b9c76aeA
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Ambassador

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-11-13
*/

pragma solidity ^0.4.18;

/**
 * CoinCrowd ICO. More info www.coincrowd.it 
 */

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;
  
  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() internal {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

contract tokenInterface {
	function balanceOf(address _owner) public constant returns (uint256 balance);
	function transfer(address _to, uint256 _value) public returns (bool);
}

contract Ambassador {
    using SafeMath for uint256;
    CoinCrowdICO icoContract;
    uint256 public startRC;
    uint256 public endRC;
    address internal contractOwner; 
    
    uint256 public soldTokensWithoutBonus; // wei of XCC sold token without bonuses
	function euroRaisedRc() public view returns(uint256 euro) {
        return icoContract.euroRaised(soldTokensWithoutBonus);
    }
    
    uint256[] public euroThreshold; // array of euro(k) threshold reached - 100K = 100.000€
    uint256[] public bonusThreshold; // array of bonus of each euroThreshold reached - 20% = 2000
    
    mapping(address => uint256) public balanceUser; // address => token amount

    function Ambassador(address _icoContract, address _ambassadorAddr, uint256[] _euroThreshold, uint256[] _bonusThreshold, uint256 _startRC , uint256 _endRC ) public {
        require ( _icoContract != 0 );
        require ( _ambassadorAddr != 0 );
        require ( _euroThreshold.length != 0 );
        require ( _euroThreshold.length == _bonusThreshold.length );
        
        icoContract = CoinCrowdICO(_icoContract);
        contractOwner = _icoContract;
        
        icoContract.addMeByRC(_ambassadorAddr);
        
        bonusThreshold = _bonusThreshold;
        euroThreshold = _euroThreshold;
        
        soldTokensWithoutBonus = 0;
        
        setTimeRC( _startRC, _endRC );
    }
    
    modifier onlyIcoContract() {
        require(msg.sender == contractOwner);
        _;
    }
    
    function setTimeRC(uint256 _startRC, uint256 _endRC ) internal {
        if( _startRC == 0 ) {
            startRC = icoContract.startTime();
        } else {
            startRC = _startRC;
        }
        if( _endRC == 0 ) {
            endRC = icoContract.endTime();
        } else {
            endRC = _endRC;
        }
    }
    
    function updateTime(uint256 _newStart, uint256 _newEnd) public onlyIcoContract {
        if ( _newStart != 0 ) startRC = _newStart;
        if ( _newEnd != 0 ) endRC = _newEnd;
    }

    function () public payable {
        require( now > startRC );
        if( now < endRC ) {
            uint256 tokenAmount = icoContract.buy.value(msg.value)(msg.sender);
            balanceUser[msg.sender] = balanceUser[msg.sender].add(tokenAmount);
            soldTokensWithoutBonus = soldTokensWithoutBonus.add(tokenAmount);
        } else { //claim premium bonus logic
            require( balanceUser[msg.sender] > 0 );
            uint256 bonusApplied = 0;
            for (uint i = 0; i < euroThreshold.length; i++) {
                if ( icoContract.euroRaised(soldTokensWithoutBonus).div(1000) > euroThreshold[i] ) {
                    bonusApplied = bonusThreshold[i];
                }
            }    
            require( bonusApplied > 0 );
            
            uint256 addTokenAmount = balanceUser[msg.sender].mul( bonusApplied ).div(10**2);
            balanceUser[msg.sender] = 0; 
            
            icoContract.claimPremium(msg.sender, addTokenAmount);
            if( msg.value > 0 ) msg.sender.transfer(msg.value); // give back eth 
        }
    }
}

contract CoinCrowdICO is Ownable {
    using SafeMath for uint256;
    tokenInterface public tokenContract;
    
	uint256 public decimals = 18;
    uint256 public tokenValue;  // 1 XCC in wei
    uint256 public constant centToken = 20; // euro cents value of 1 token 
    
    function euroRaised(uint256 _weiTokens) public view returns (uint256) { // convertion of sold token in euro raised in wei
        return _weiTokens.mul(centToken).div(100).div(10**decimals);
    }
    
    uint256 public endTime;  // seconds from 1970-01-01T00:00:00Z
    uint256 public startTime;  // seconds from 1970-01-01T00:00:00Z
    uint256 internal constant weekInSeconds = 604800; // seconds in a week
    
    uint256 public totalSoldTokensWithBonus; // total wei of XCC distribuited from this ICO
    uint256 public totalSoldTokensWithoutBonus; // total wei of XCC distribuited from this ICO without bonus
	function euroRaisedICO() public view returns(uint256 euro) {
        return euroRaised(totalSoldTokensWithoutBonus);
    }
	
    uint256 public remainingTokens; // total wei of XCC remaining (without bonuses)

    mapping(address => address) public ambassadorAddressOf; // ambassadorContract => ambassadorAddress


    function CoinCrowdICO(address _tokenAddress, uint256 _tokenValue, uint256 _startTime) public {
        tokenContract = tokenInterface(_tokenAddress);
        tokenValue = _tokenValue;
        startICO(_startTime); 
        totalSoldTokensWithBonus = 0;
        totalSoldTokensWithoutBonus = 0;
        remainingTokens = 24500000  * 10 ** decimals; // 24.500.000 * 0.20€ = 4.900.000€ CAPPED
    }

    address public updater;  // account in charge of updating the token value
    event UpdateValue(uint256 newValue);

    function updateValue(uint256 newValue) public {
        require(msg.sender == updater || msg.sender == owner);
        tokenValue = newValue;
        UpdateValue(newValue);
    }

    function updateUpdater(address newUpdater) public onlyOwner {
        updater = newUpdater;
    }

    function updateTime(uint256 _newStart, uint256 _newEnd) public onlyOwner {
        if ( _newStart != 0 ) startTime = _newStart;
        if ( _newEnd != 0 ) endTime = _newEnd;
    }
    
    function updateTimeRC(address _rcContract, uint256 _newStart, uint256 _newEnd) public onlyOwner {
        Ambassador(_rcContract).updateTime( _newStart, _newEnd);
    }
    
    function startICO(uint256 _startTime) public onlyOwner {
        if(_startTime == 0 ) {
            startTime = now;
        } else {
            startTime = _startTime;
        }
        endTime = startTime + 12*weekInSeconds;
    }
    
    event Buy(address buyer, uint256 value, address indexed ambassador);

    function buy(address _buyer) public payable returns(uint256) {
        require(now < endTime); // check if ended
        require( remainingTokens > 0 ); // Check if there are any remaining tokens excluding bonuses
        
        require( tokenContract.balanceOf(this) > remainingTokens); // should have enough balance
        
        uint256 oneXCC = 10 ** decimals;
        uint256 tokenAmount = msg.value.mul(oneXCC).div(tokenValue);
        
        
        uint256 bonusRate; // decimals of bonus 20% = 2000
        address currentAmbassador = address(0);
        if ( ambassadorAddressOf[msg.sender] != address(0) ) { // if is an authorized ambassadorContract
            currentAmbassador = msg.sender;
            bonusRate = 0; // Ambassador Comunity should claim own bonus at the end of RC 
            
        } else { // if is directly called to CoinCrowdICO contract
            require(now > startTime); // check if started for public user
            
            if( now > startTime + weekInSeconds*0  ) { bonusRate = 2000; }
            if( now > startTime + weekInSeconds*1  ) { bonusRate = 1833; }
            if( now > startTime + weekInSeconds*2  ) { bonusRate = 1667; }
            if( now > startTime + weekInSeconds*3  ) { bonusRate = 1500; }
            if( now > startTime + weekInSeconds*4  ) { bonusRate = 1333; }
            if( now > startTime + weekInSeconds*5  ) { bonusRate = 1167; }
            if( now > startTime + weekInSeconds*6  ) { bonusRate = 1000; }
            if( now > startTime + weekInSeconds*7  ) { bonusRate = 833; }
            if( now > startTime + weekInSeconds*8  ) { bonusRate = 667; }
            if( now > startTime + weekInSeconds*9  ) { bonusRate = 500; }
            if( now > startTime + weekInSeconds*10 ) { bonusRate = 333; }
            if( now > startTime + weekInSeconds*11 ) { bonusRate = 167; }
            if( now > startTime + weekInSeconds*12 ) { bonusRate = 0; }
        }
        
        if ( remainingTokens < tokenAmount ) {
            uint256 refund = (tokenAmount - remainingTokens).mul(tokenValue).div(oneXCC);
            tokenAmount = remainingTokens;
            owner.transfer(msg.value-refund);
			remainingTokens = 0; // set remaining token to 0
             _buyer.transfer(refund);
        } else {
			remainingTokens = remainingTokens.sub(tokenAmount); // update remaining token without bonus
            owner.transfer(msg.value);
        }
        
        uint256 tokenAmountWithBonus = tokenAmount.add(tokenAmount.mul( bonusRate ).div(10**4)); //add token bonus
        
        tokenContract.transfer(_buyer, tokenAmountWithBonus);
        Buy(_buyer, tokenAmountWithBonus, currentAmbassador);
        
        totalSoldTokensWithBonus += tokenAmountWithBonus; 
		totalSoldTokensWithoutBonus += tokenAmount;
		
        return tokenAmount; // retun tokenAmount without bonuses for easier calculations
    }

    event NewAmbassador(address ambassador, address contr);
    
    function addMeByRC(address _ambassadorAddr) public {
        require(tx.origin == owner);
        
        ambassadorAddressOf[ msg.sender ]  = _ambassadorAddr;
        
        NewAmbassador(_ambassadorAddr, msg.sender);
    }

    function withdraw(address to, uint256 value) public onlyOwner {
        to.transfer(value);
    }
    
    function updateTokenContract(address _tokenContract) public onlyOwner {
        tokenContract = tokenInterface(_tokenContract);
    }

    function withdrawTokens(address to, uint256 value) public onlyOwner returns (bool) {
        return tokenContract.transfer(to, value);
    }
    
    function claimPremium(address _buyer, uint256 _amount) public returns(bool) {
        require( ambassadorAddressOf[msg.sender] != address(0) ); // Check if is an authorized _ambassadorContract
        return tokenContract.transfer(_buyer, _amount);
    }

    function () public payable {
        buy(msg.sender);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_newStart","type":"uint256"},{"name":"_newEnd","type":"uint256"}],"name":"updateTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"euroThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startRC","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"bonusThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldTokensWithoutBonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"euroRaisedRc","outputs":[{"name":"euro","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endRC","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_icoContract","type":"address"},{"name":"_ambassadorAddr","type":"address"},{"name":"_euroThreshold","type":"uint256[]"},{"name":"_bonusThreshold","type":"uint256[]"},{"name":"_startRC","type":"uint256"},{"name":"_endRC","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

0x6060604052341561000f57600080fd5b6040516109d73803806109d783398101604052808051919060200180519190602001805182019190602001805182019190602001805191906020018051915050600160a060020a038616151561006457600080fd5b600160a060020a038516151561007957600080fd5b8351151561008657600080fd5b825184511461009457600080fd5b60008054600160a060020a03808916600160a060020a031992831681179384905560038054909316179091551663e5c91047866040517c010000000000000000000000000000000000000000000000000000000063ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561011e57600080fd5b6102c65a03f1151561012f57600080fd5b5050508260069080516101469291602001906102a8565b50600584805161015a9291602001906102a8565b506000600455610177828264010000000061059c61018282021704565b505050505050610310565b81151561020d5760008054600160a060020a0316906378e9792590604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156101eb57600080fd5b6102c65a03f115156101fc57600080fd5b505050604051805160015550610213565b60018290555b80151561029e5760008054600160a060020a031690633197cbb690604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561027c57600080fd5b6102c65a03f1151561028d57600080fd5b5050506040518051600255506102a4565b60028190555b5050565b8280548282559060005260206000209081019282156102e3579160200282015b828111156102e35782518255916020019190600101906102c8565b506102ef9291506102f3565b5090565b61030d91905b808211156102ef57600081556001016102f9565b90565b6106b88061031f6000396000f3006060604052600436106100745763ffffffff60e060020a60003504166321f1b677811461038957806394fb54d5146103a45780639c5de58b146103cc578063bb9dea04146103df578063d72e2b78146103f5578063f073b27714610408578063f5eb88901461041b578063fe87ee281461043a575b6000806000806001544211151561008a57600080fd5b60025442101561016b5760008054600160a060020a03169063f088d54790349033906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016020604051808303818588803b15156100f057600080fd5b6125ee5a03f1151561010157600080fd5b505050506040518051600160a060020a03331660009081526007602052604090205490955061013791508563ffffffff61044d16565b600160a060020a033316600090815260076020526040902055600454610163908563ffffffff61044d16565b600455610383565b600160a060020a0333166000908152600760205260408120541161018e57600080fd5b60009250600091505b60055482101561026c5760058054839081106101af57fe5b60009182526020822001548154600454919261023e926103e892600160a060020a031691638d83567491906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561021757600080fd5b6102c65a03f1151561022857600080fd5b505050604051805191905063ffffffff61046316565b111561026157600680548390811061025257fe5b90600052602060002090015492505b600190910190610197565b6000831161027957600080fd5b600160a060020a0333166000908152600760205260409020546102b5906064906102a9908663ffffffff61047a16565b9063ffffffff61046316565b600160a060020a0333818116600090815260076020526040808220829055815494955093909216926377bd35fc928591516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561032d57600080fd5b6102c65a03f1151561033e57600080fd5b50505060405180515050600034111561038357600160a060020a0333163480156108fc0290604051600060405180830381858888f19350505050151561038357600080fd5b50505050005b341561039457600080fd5b6103a260043560243561049e565b005b34156103af57600080fd5b6103ba6004356104d5565b60405190815260200160405180910390f35b34156103d757600080fd5b6103ba6104f4565b34156103ea57600080fd5b6103ba6004356104fa565b341561040057600080fd5b6103ba610508565b341561041357600080fd5b6103ba61050e565b341561042657600080fd5b6103ba600160a060020a0360043516610584565b341561044557600080fd5b6103ba610596565b60008282018381101561045c57fe5b9392505050565b600080828481151561047157fe5b04949350505050565b6000828202831580610496575082848281151561049357fe5b04145b151561045c57fe5b60035433600160a060020a039081169116146104b957600080fd5b81156104c55760018290555b80156104d15760028190555b5050565b60058054829081106104e357fe5b600091825260209091200154905081565b60015481565b60068054829081106104e357fe5b60045481565b60008054600454600160a060020a0390911690638d83567490836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561056557600080fd5b6102c65a03f1151561057657600080fd5b505050604051805191505090565b60076020526000908152604090205481565b60025481565b81151561060e5760008054600160a060020a0316906378e9792590604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156105ec57600080fd5b6102c65a03f115156105fd57600080fd5b505050604051805160015550610614565b60018290555b8015156106865760008054600160a060020a031690633197cbb690604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561066457600080fd5b6102c65a03f1151561067557600080fd5b5050506040518051600255506104d1565b600255505600a165627a7a723058204d4af537f41e246d5a266a02afd0d9e95cace9063c8e48d1349215a7f0e8afc10029000000000000000000000000bd3696b01a487b012ba99628b06a1a7859f5ca23000000000000000000000000e48203f26383f7046f8d6237f655b892e181235300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000fa000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000019000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002d0000000000000000000000000000000000000000000000000000000000000032

Deployed Bytecode

0x6060604052600436106100745763ffffffff60e060020a60003504166321f1b677811461038957806394fb54d5146103a45780639c5de58b146103cc578063bb9dea04146103df578063d72e2b78146103f5578063f073b27714610408578063f5eb88901461041b578063fe87ee281461043a575b6000806000806001544211151561008a57600080fd5b60025442101561016b5760008054600160a060020a03169063f088d54790349033906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016020604051808303818588803b15156100f057600080fd5b6125ee5a03f1151561010157600080fd5b505050506040518051600160a060020a03331660009081526007602052604090205490955061013791508563ffffffff61044d16565b600160a060020a033316600090815260076020526040902055600454610163908563ffffffff61044d16565b600455610383565b600160a060020a0333166000908152600760205260408120541161018e57600080fd5b60009250600091505b60055482101561026c5760058054839081106101af57fe5b60009182526020822001548154600454919261023e926103e892600160a060020a031691638d83567491906040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561021757600080fd5b6102c65a03f1151561022857600080fd5b505050604051805191905063ffffffff61046316565b111561026157600680548390811061025257fe5b90600052602060002090015492505b600190910190610197565b6000831161027957600080fd5b600160a060020a0333166000908152600760205260409020546102b5906064906102a9908663ffffffff61047a16565b9063ffffffff61046316565b600160a060020a0333818116600090815260076020526040808220829055815494955093909216926377bd35fc928591516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561032d57600080fd5b6102c65a03f1151561033e57600080fd5b50505060405180515050600034111561038357600160a060020a0333163480156108fc0290604051600060405180830381858888f19350505050151561038357600080fd5b50505050005b341561039457600080fd5b6103a260043560243561049e565b005b34156103af57600080fd5b6103ba6004356104d5565b60405190815260200160405180910390f35b34156103d757600080fd5b6103ba6104f4565b34156103ea57600080fd5b6103ba6004356104fa565b341561040057600080fd5b6103ba610508565b341561041357600080fd5b6103ba61050e565b341561042657600080fd5b6103ba600160a060020a0360043516610584565b341561044557600080fd5b6103ba610596565b60008282018381101561045c57fe5b9392505050565b600080828481151561047157fe5b04949350505050565b6000828202831580610496575082848281151561049357fe5b04145b151561045c57fe5b60035433600160a060020a039081169116146104b957600080fd5b81156104c55760018290555b80156104d15760028190555b5050565b60058054829081106104e357fe5b600091825260209091200154905081565b60015481565b60068054829081106104e357fe5b60045481565b60008054600454600160a060020a0390911690638d83567490836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561056557600080fd5b6102c65a03f1151561057657600080fd5b505050604051805191505090565b60076020526000908152604090205481565b60025481565b81151561060e5760008054600160a060020a0316906378e9792590604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156105ec57600080fd5b6102c65a03f115156105fd57600080fd5b505050604051805160015550610614565b60018290555b8015156106865760008054600160a060020a031690633197cbb690604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561066457600080fd5b6102c65a03f1151561067557600080fd5b5050506040518051600255506104d1565b600255505600a165627a7a723058204d4af537f41e246d5a266a02afd0d9e95cace9063c8e48d1349215a7f0e8afc10029

Swarm Source

bzzr://4d4af537f41e246d5a266a02afd0d9e95cace9063c8e48d1349215a7f0e8afc1

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.