Contract 0x10Ec03b714A2660581040c1A0329d88e381cA603 1

 

Contract Overview

Balance:
0.‍11 Ether

EtherValue:
$207.70 (@ $1,888.20/ETH)

Token:
Txn Hash
Method
Block
From
To
Value
0xd716bd620a612302215b522e13d3181aeb3599bb0ce9f22d12c2734233b43483Cancel Campaign(pending)2022-08-15 23:19:2058 mins ago0xd17431427186933da4715acbd1a89a51f855d738 IN 0x10ec03b714a2660581040c1a0329d88e381ca6030 Ether(Pending)(Pending)
0xb356dd7b6f236e8bcc39db4d15ef5791a15ca22272dd4261114176996145a940Contribute To Ca...56053492018-05-13 7:44:181555 days 16 hrs ago0xfce97011d63f1a85d93dec910e88c475449e81a5 IN  0x10ec03b714a2660581040c1a0329d88e381ca6030.‍01 Ether0.‍000964184
0xbece2866cfe97fbe12a4c51dfb83d1be526e048c220689c2e9090acdcaec947fCreate Campaign54293922018-04-12 21:11:341586 days 3 hrs ago0xfce97011d63f1a85d93dec910e88c475449e81a5 IN  0x10ec03b714a2660581040c1a0329d88e381ca6030.‍01 Ether0.‍000286311
0xc38624391f579db7a64f456bce5064a365141c57ddc0172ce2a96b1af1509d50Contribute To Ca...53266202018-03-26 18:09:471603 days 6 hrs agoENS Name hucklecat.eth IN  0x10ec03b714a2660581040c1a0329d88e381ca6030.‍01 Ether0.‍000413352.‍1
0xfe698b7ba8344991c3e2eaa24242f92a42b1a3313237200f372c520bced555a7Create Campaign53125002018-03-24 10:05:301605 days 14 hrs ago0xd17431427186933da4715acbd1a89a51f855d738 IN  0x10ec03b714a2660581040c1a0329d88e381ca6030.‍1 Ether0.‍000570332
0x0a921429e17955a0b5e5e8e36f0f34edc9b1076a0601582d50e4f80f9cd16ce60x6060604053122732018-03-24 9:13:451605 days 15 hrs ago0xd17431427186933da4715acbd1a89a51f855d738 IN  Create: EthPledge0 Ether0.‍005145953
[ Download CSV Export 
Latest 1 internal transaction
Parent Txn Hash Block From To Value
0xb356dd7b6f236e8bcc39db4d15ef5791a15ca22272dd4261114176996145a94056053492018-05-13 7:44:181555 days 16 hrs ago 0x10ec03b714a2660581040c1a0329d88e381ca6030xd9a74a40a79a718f7b82d0fe7af448d1b375a9dd0.‍02 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EthPledge

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-03-24
*/

pragma solidity ^0.4.2;

/*

EthPledge allows people to pledge to donate a certain amount to a charity, which gets sent only if others match it. A user may pledge to donate 10 Ether to a charity, for example, which will get listed here and will be sent to the charity later only if other people also collectively contribute 10 Ether under that pledge. You can also pledge to donate several times what other people donate, up to a certain amount -- for example, you may choose to put up 10 Ether, which gets sent to the charity if others only contribute 2 Ether.

Matching pledges of this kind are quite common (companies may pledge to match all charitable donations their employees make up to a certain amount, for example, or it may just be a casual arrangement between 2 people) and by running on the Ethereum blockchain, EthPledge guarantees 100% transparency. 

Note that as Ethereum is still relatively new at this stage, not many charities have an Ethereum address to take donations yet, though it's our hope that more will come. The main charity with an Ethereum donation address at this time is Heifer International, whose Ethereum address is 0xb30cb3b3E03A508Db2A0a3e07BA1297b47bb0fb1 (see https://www.heifer.org/what-you-can-do/give/digital-currency.html)

Visit EthPledge.com to play with this smart contract. Reach out: [email protected]

*/

contract EthPledge {
    
    address public owner;
    
    function EthPledge() {
        owner = msg.sender;
    }
    
    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
    
    struct Campaign {
        address benefactor; // Person starting the campaign, who puts in some ETH to donate to an Ethereum address. 
        address charity;
        uint amountPledged;
        uint amountRaised;
        uint donationsReceived;
        uint multiplier; // If this was 5, for example, other donators would only need to put up 1/5th of the amount the benefactor does for the pledge to be successful and all funds to be donated. Eg. Benefactor pledges 10 ETH, then after only 2 ETH is contributed to the campaign, all funds are send to the charity and the campaign ends
        bool active;
        bool successful;
        uint timeStarted;
        bytes32 descriptionPart1; // Allow a description of up to 132 characters. Each bytes32 part can only hold 32 characters.
        bytes32 descriptionPart2;
        bytes32 descriptionPart3;
        bytes32 descriptionPart4;
    }
    
    mapping (uint => Campaign) public campaign;
    
    mapping (address => uint[]) public campaignsStartedByUser;
    
    mapping (address => mapping(uint => uint)) public addressToCampaignIDToFundsDonated;
    
    mapping (address => uint[]) public campaignIDsDonatedToByUser; // Will contain duplicates if a user donates to a campaign twice
    
    struct Donation {
        address donator;
        uint amount;
        uint timeSent;
    }
    
    mapping (uint => mapping(uint => Donation)) public campaignIDtoDonationNumberToDonation;
    
    uint public totalCampaigns;
    
    uint public totalDonations;
    
    uint public totalETHraised;
    
    uint public minimumPledgeAmount = 10**14; // Basically nothing, can be adjusted later
    
    function createCampaign (address charity, uint multiplier, bytes32 descriptionPart1, bytes32 descriptionPart2, bytes32 descriptionPart3, bytes32 descriptionPart4) payable {
        require (msg.value >= minimumPledgeAmount);
        require (multiplier > 0);
        campaign[totalCampaigns].benefactor = msg.sender;
        campaign[totalCampaigns].charity = charity;
        campaign[totalCampaigns].multiplier = multiplier;
        campaign[totalCampaigns].timeStarted = now;
        campaign[totalCampaigns].amountPledged = msg.value;
        campaign[totalCampaigns].active = true;
        campaign[totalCampaigns].descriptionPart1 = descriptionPart1;
        campaign[totalCampaigns].descriptionPart2 = descriptionPart2;
        campaign[totalCampaigns].descriptionPart3 = descriptionPart3;
        campaign[totalCampaigns].descriptionPart4 = descriptionPart4;
        campaignsStartedByUser[msg.sender].push(totalCampaigns);
        totalETHraised += msg.value;
        totalCampaigns++;
    }
    
    function cancelCampaign (uint campaignID) {
        
        // If the benefactor cancels their campaign, they get a refund of their pledge amount in line with how much others have donated - if you cancel the pledge when 10% of the donation target has been reached, for example, 10% of the pledge amount (along with the donations) will be sent to the charity address, and 90% of the pledge amount you put up will be returned to you
        
        require (msg.sender == campaign[campaignID].benefactor);
        require (campaign[campaignID].active == true);
        campaign[campaignID].active = false;
        campaign[campaignID].successful = false;
        uint amountShort = campaign[campaignID].amountPledged - (campaign[campaignID].amountRaised * campaign[campaignID].multiplier);
        uint amountToSendToCharity = campaign[campaignID].amountPledged + campaign[campaignID].amountRaised - amountShort;
        campaign[campaignID].charity.transfer(amountToSendToCharity);
        campaign[campaignID].benefactor.transfer(amountShort);
    }
    
    function contributeToCampaign (uint campaignID) payable {
        require (msg.value > 0);
        require (campaign[campaignID].active == true);
        campaignIDsDonatedToByUser[msg.sender].push(campaignID);
        addressToCampaignIDToFundsDonated[msg.sender][campaignID] += msg.value;
        
        campaignIDtoDonationNumberToDonation[campaignID][campaign[campaignID].donationsReceived].donator = msg.sender;
        campaignIDtoDonationNumberToDonation[campaignID][campaign[campaignID].donationsReceived].amount = msg.value;
        campaignIDtoDonationNumberToDonation[campaignID][campaign[campaignID].donationsReceived].timeSent = now;
        
        campaign[campaignID].donationsReceived++;
        totalDonations++;
        totalETHraised += msg.value;
        campaign[campaignID].amountRaised += msg.value;
        if (campaign[campaignID].amountRaised >= (campaign[campaignID].amountPledged / campaign[campaignID].multiplier)) {
            // Target reached
            campaign[campaignID].active = false;
            campaign[campaignID].successful = true;
            campaign[campaignID].charity.transfer(campaign[campaignID].amountRaised + campaign[campaignID].amountPledged);
        }
    }
    
    function adjustMinimumPledgeAmount (uint newMinimum) onlyOwner {
        require (newMinimum > 0);
        minimumPledgeAmount = newMinimum;
    }
    
    // Below are view functions that an external contract can call to get information on a campaign ID or user
    
    function returnHowMuchMoreETHNeeded (uint campaignID) view returns (uint) {
        return (campaign[campaignID].amountPledged / campaign[campaignID].multiplier - campaign[campaignID].amountRaised);
    }
    
    function generalInfo() view returns (uint, uint, uint) {
        return (totalCampaigns, totalDonations, totalETHraised);
    }
    
    function lookupDonation (uint campaignID, uint donationNumber) view returns (address, uint, uint) {
        return (campaignIDtoDonationNumberToDonation[campaignID][donationNumber].donator, campaignIDtoDonationNumberToDonation[campaignID][donationNumber].amount, campaignIDtoDonationNumberToDonation[campaignID][donationNumber].timeSent);
    }
    
    // Below two functions have to be split into two parts, otherwise there are call-stack too deep errors
    
    function lookupCampaignPart1 (uint campaignID) view returns (address, address, uint, uint, uint, bytes32, bytes32) {
        return (campaign[campaignID].benefactor, campaign[campaignID].charity, campaign[campaignID].amountPledged, campaign[campaignID].amountRaised,campaign[campaignID].donationsReceived, campaign[campaignID].descriptionPart1, campaign[campaignID].descriptionPart2);
    }
    
    function lookupCampaignPart2 (uint campaignID) view returns (uint, bool, bool, uint, bytes32, bytes32) {
        return (campaign[campaignID].multiplier, campaign[campaignID].active, campaign[campaignID].successful, campaign[campaignID].timeStarted, campaign[campaignID].descriptionPart3, campaign[campaignID].descriptionPart4);
    }
    
    // Below functions are probably not necessary, but included just in case another contract needs this information in future
    
    function lookupUserDonationHistoryByCampaignID (address user) view returns (uint[]) {
        return (campaignIDsDonatedToByUser[user]);
    }
    
    function lookupAmountUserDonatedToCampaign (address user, uint campaignID) view returns (uint) {
        return (addressToCampaignIDToFundsDonated[user][campaignID]);
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"charity","type":"address"},{"name":"multiplier","type":"uint256"},{"name":"descriptionPart1","type":"bytes32"},{"name":"descriptionPart2","type":"bytes32"},{"name":"descriptionPart3","type":"bytes32"},{"name":"descriptionPart4","type":"bytes32"}],"name":"createCampaign","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalCampaigns","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"campaignID","type":"uint256"}],"name":"contributeToCampaign","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"campaignID","type":"uint256"}],"name":"returnHowMuchMoreETHNeeded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"campaignID","type":"uint256"},{"name":"donationNumber","type":"uint256"}],"name":"lookupDonation","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"addressToCampaignIDToFundsDonated","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"generalInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"campaignID","type":"uint256"}],"name":"cancelCampaign","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"},{"name":"campaignID","type":"uint256"}],"name":"lookupAmountUserDonatedToCampaign","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalETHraised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMinimum","type":"uint256"}],"name":"adjustMinimumPledgeAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"campaignsStartedByUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"campaign","outputs":[{"name":"benefactor","type":"address"},{"name":"charity","type":"address"},{"name":"amountPledged","type":"uint256"},{"name":"amountRaised","type":"uint256"},{"name":"donationsReceived","type":"uint256"},{"name":"multiplier","type":"uint256"},{"name":"active","type":"bool"},{"name":"successful","type":"bool"},{"name":"timeStarted","type":"uint256"},{"name":"descriptionPart1","type":"bytes32"},{"name":"descriptionPart2","type":"bytes32"},{"name":"descriptionPart3","type":"bytes32"},{"name":"descriptionPart4","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"user","type":"address"}],"name":"lookupUserDonationHistoryByCampaignID","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"campaignID","type":"uint256"}],"name":"lookupCampaignPart1","outputs":[{"name":"","type":"address"},{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bytes32"},{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDonations","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimumPledgeAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"campaignIDtoDonationNumberToDonation","outputs":[{"name":"donator","type":"address"},{"name":"amount","type":"uint256"},{"name":"timeSent","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"campaignID","type":"uint256"}],"name":"lookupCampaignPart2","outputs":[{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"bool"},{"name":"","type":"uint256"},{"name":"","type":"bytes32"},{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"campaignIDsDonatedToByUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

6060604052655af3107a4000600955341561001957600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506117dc806100686000396000f30060606040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630161d5f01461012257806302932f561461018d5780630b7ef89b146101b65780631527d657146101ce57806318cf1c251461020557806323eba3e31461027f57806325a6c545146102d557806345598b4a1461030c5780637a6b2a2c1461032f5780637d4504e014610385578063806c6188146103ae5780638da5cb5b146103d1578063bf832a3514610426578063ccd390371461047c578063ceea391414610587578063d73f0b2514610615578063de2ed893146106de578063decf1e6414610707578063fa99a77c14610730578063fcd24400146107aa578063fe6c52f31461081c575b600080fd5b61018b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803560001916906020019091908035600019169060200190919080356000191690602001909190803560001916906020019091905050610872565b005b341561019857600080fd5b6101a0610add565b6040518082815260200191505060405180910390f35b6101cc6004808035906020019091905050610ae3565b005b34156101d957600080fd5b6101ef6004808035906020019091905050610eb3565b6040518082815260200191505060405180910390f35b341561021057600080fd5b61022f6004808035906020019091908035906020019091905050610f0c565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b341561028a57600080fd5b6102bf600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fb6565b6040518082815260200191505060405180910390f35b34156102e057600080fd5b6102e8610fdb565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561031757600080fd5b61032d6004808035906020019091905050610ff4565b005b341561033a57600080fd5b61036f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611268565b6040518082815260200191505060405180910390f35b341561039057600080fd5b6103986112c3565b6040518082815260200191505060405180910390f35b34156103b957600080fd5b6103cf60048080359060200190919050506112c9565b005b34156103dc57600080fd5b6103e461133d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561043157600080fd5b610466600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611362565b6040518082815260200191505060405180910390f35b341561048757600080fd5b61049d6004808035906020019091905050611393565b604051808e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b81526020018a8152602001898152602001881515151581526020018715151515815260200186815260200185600019166000191681526020018460001916600019168152602001836000191660001916815260200182600019166000191681526020019d505050505050505050505050505060405180910390f35b341561059257600080fd5b6105be600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611453565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106015780820151818401526020810190506105e6565b505050509050019250505060405180910390f35b341561062057600080fd5b61063660048080359060200190919050506114f0565b604051808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018360001916600019168152602001826000191660001916815260200197505050505050505060405180910390f35b34156106e957600080fd5b6106f16115f5565b6040518082815260200191505060405180910390f35b341561071257600080fd5b61071a6115fb565b6040518082815260200191505060405180910390f35b341561073b57600080fd5b61075a6004808035906020019091908035906020019091905050611601565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390f35b34156107b557600080fd5b6107cb6004808035906020019091905050611658565b60405180878152602001861515151581526020018515151515815260200184815260200183600019166000191681526020018260001916600019168152602001965050505050505060405180910390f35b341561082757600080fd5b61085c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061171a565b6040518082815260200191505060405180910390f35b600954341015151561088357600080fd5b60008511151561089257600080fd5b3360016000600654815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560016000600654815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460016000600654815260200190815260200160002060050181905550426001600060065481526020019081526020016000206007018190555034600160006006548152602001908152602001600020600201819055506001806000600654815260200190815260200160002060060160006101000a81548160ff02191690831515021790555083600160006006548152602001908152602001600020600801816000191690555082600160006006548152602001908152602001600020600901816000191690555081600160006006548152602001908152602001600020600a01816000191690555080600160006006548152602001908152602001600020600b018160001916905550600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281610a9c919061174b565b916000526020600020900160006006549091909150555034600860008282540192505081905550600660008154809291906001019190505550505050505050565b60065481565b600034111515610af257600080fd5b600115156001600083815260200190815260200160002060060160009054906101000a900460ff161515141515610b2857600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281610b79919061174b565b91600052602060002090016000839091909150555034600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008282540192505081905550336005600083815260200190815260200160002060006001600085815260200190815260200160002060040154815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034600560008381526020019081526020016000206000600160008581526020019081526020016000206004015481526020019081526020016000206001018190555042600560008381526020019081526020016000206000600160008581526020019081526020016000206004015481526020019081526020016000206002018190555060016000828152602001908152602001600020600401600081548092919060010191905055506007600081548092919060010191905055503460086000828254019250508190555034600160008381526020019081526020016000206003016000828254019250508190555060016000828152602001908152602001600020600501546001600083815260200190815260200160002060020154811515610d8f57fe5b046001600083815260200190815260200160002060030154101515610eb05760006001600083815260200190815260200160002060060160006101000a81548160ff021916908315150217905550600180600083815260200190815260200160002060060160016101000a81548160ff0219169083151502179055506001600082815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60016000848152602001908152602001600020600201546001600085815260200190815260200160002060030154019081150290604051600060405180830381858888f193505050501515610eaf57600080fd5b5b50565b6000600160008381526020019081526020016000206003015460016000848152602001908152602001600020600501546001600085815260200190815260200160002060020154811515610f0357fe5b04039050919050565b600080600060056000868152602001908152602001600020600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660056000878152602001908152602001600020600086815260200190815260200160002060010154600560008881526020019081526020016000206000878152602001908152602001600020600201549250925092509250925092565b6003602052816000526040600020602052806000526040600020600091509150505481565b6000806000600654600754600854925092509250909192565b6000806001600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561106757600080fd5b600115156001600085815260200190815260200160002060060160009054906101000a900460ff16151514151561109d57600080fd5b60006001600085815260200190815260200160002060060160006101000a81548160ff02191690831515021790555060006001600085815260200190815260200160002060060160016101000a81548160ff021916908315150217905550600160008481526020019081526020016000206005015460016000858152602001908152602001600020600301540260016000858152602001908152602001600020600201540391508160016000858152602001908152602001600020600301546001600086815260200190815260200160002060020154010390506001600084815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156111ed57600080fd5b6001600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561126357600080fd5b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b60085481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561132457600080fd5b60008111151561133357600080fd5b8060098190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528160005260406000208181548110151561137d57fe5b9060005260206000209001600091509150505481565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040154908060050154908060060160009054906101000a900460ff16908060060160019054906101000a900460ff169080600701549080600801549080600901549080600a01549080600b015490508d565b61145b611777565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156114e457602002820191906000526020600020905b8154815260200190600101908083116114d0575b50505050509050919050565b60008060008060008060006001600089815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008a815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008b815260200190815260200160002060020154600160008c815260200190815260200160002060030154600160008d815260200190815260200160002060040154600160008e815260200190815260200160002060080154600160008f8152602001908152602001600020600901549650965096509650965096509650919395979092949650565b60075481565b60095481565b6005602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154905083565b60008060008060008060016000888152602001908152602001600020600501546001600089815260200190815260200160002060060160009054906101000a900460ff16600160008a815260200190815260200160002060060160019054906101000a900460ff16600160008b815260200190815260200160002060070154600160008c8152602001908152602001600020600a0154600160008d8152602001908152602001600020600b015495509550955095509550955091939550919395565b60046020528160005260406000208181548110151561173557fe5b9060005260206000209001600091509150505481565b81548183558181151161177257818360005260206000209182019101611771919061178b565b5b505050565b602060405190810160405280600081525090565b6117ad91905b808211156117a9576000816000905550600101611791565b5090565b905600a165627a7a72305820afaafa26ac8afaaaaf361f9e5fc41baacc5612d6f8cde0b829ec44f6791f0f0f0029

Swarm Source

bzzr://afaafa26ac8afaaaaf361f9e5fc41baacc5612d6f8cde0b829ec44f6791f0f0f
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.