APE Price: $1.07 (-5.76%)

Contract

0x4B5BfEd659E5032aEffbDB147028Ded15DC588e7

Overview

APE Balance

Apechain LogoApechain LogoApechain Logo0 APE

APE Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Campaign40439902024-11-11 4:13:174 days ago1731298397IN
0x4B5BfEd6...15DC588e7
0 APE0.0466709125.42069
0x6080604040416212024-11-11 3:54:584 days ago1731297298IN
 Contract Creation
0 APE0.0506424125.42069

Latest 1 internal transaction

Parent Transaction Hash Block From To
40439902024-11-11 4:13:174 days ago1731298397
0x4B5BfEd6...15DC588e7
 Contract Creation0 APE

Loading...
Loading

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

Contract Name:
CrowdfundingFactory

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
cancun EvmVersion, MIT license
/**
 *Submitted for verification at apescan.io on 2024-11-09
*/

// File: contracts/Crowdfunding.sol


pragma solidity ^0.8.0;

contract Crowdfunding {
    string public name;
    string public description;
    uint256 public goal;
    uint256 public deadline;
    address public owner;
    bool public paused;

    enum CampaignState { Active, Successful, Failed }
    CampaignState public state;

    struct Tier {
        string name;
        uint256 amount;
        uint256 backers;
    }

    struct Backer {
        uint256 totalContribution;
        mapping(uint256 => bool) fundedTiers;
    }

    Tier[] public tiers;
    mapping(address => Backer) public backers;

    modifier onlyOwner() {
        require(msg.sender == owner, "Not the owner");
        _;
    }

    modifier campaignOpen() {
        require(state == CampaignState.Active, "Campaign is not active.");
        _;
    }

    modifier notPaused() {
        require(!paused, "Contract is paused.");
        _;
    }
    
    constructor(
        address _owner,
        string memory _name,
        string memory _description,
        uint256 _goal,
        uint256 _duratyionInDays
    ) {
        name = _name;
        description = _description;
        goal = _goal;
        deadline = block.timestamp + (_duratyionInDays * 1 days);
        owner = _owner;
        state = CampaignState.Active;
    }

    function checkAndUpdateCampaignState() internal {
        if(state == CampaignState.Active) {
            if(block.timestamp >= deadline) {
                state = address(this).balance >= goal ? CampaignState.Successful : CampaignState.Failed;            
            } else {
                state = address(this).balance >= goal ? CampaignState.Successful : CampaignState.Active;
            }
        }
    }

    function fund(uint256 _tierIndex) public payable campaignOpen notPaused {
        require(_tierIndex < tiers.length, "Invalid tier.");
        require(msg.value == tiers[_tierIndex].amount, "Incorrect amount.");

        tiers[_tierIndex].backers++;
        backers[msg.sender].totalContribution += msg.value;
        backers[msg.sender].fundedTiers[_tierIndex] = true;

        checkAndUpdateCampaignState();
    }

    function addTier(
        string memory _name,
        uint256 _amount
    ) public onlyOwner {
        require(_amount > 0, "Amount must be greater than 0.");
        tiers.push(Tier(_name, _amount, 0));
    }

    function removeTier(uint256 _index) public onlyOwner {
        require(_index < tiers.length, "Tier does not exist.");
        tiers[_index] = tiers[tiers.length -1];
        tiers.pop();
    }

    function withdraw() public onlyOwner {
        checkAndUpdateCampaignState();
        require(state == CampaignState.Successful, "Campaign not successful.");

        uint256 balance = address(this).balance;
        require(balance > 0, "No balance to withdraw");

        payable(owner).transfer(balance);
    }

    function getContractBalance() public view returns (uint256) {
        return address(this).balance;
    }

    function refund() public {
        checkAndUpdateCampaignState();
        require(state == CampaignState.Failed, "Refunds not available.");
        uint256 amount = backers[msg.sender].totalContribution;
        require(amount > 0, "No contribution to refund");

        backers[msg.sender].totalContribution = 0;
        payable(msg.sender).transfer(amount);
    }

    function hasFundedTier(address _backer, uint256 _tierIndex) public view returns (bool) {
        return backers[_backer].fundedTiers[_tierIndex];
    }

    function getTiers() public view returns (Tier[] memory) {
        return tiers;
    }

    function togglePause() public onlyOwner {
        paused = !paused;
    }

    function getCampaignStatus() public view returns (CampaignState) {
        if (state == CampaignState.Active && block.timestamp > deadline) {
            return address(this).balance >= goal ? CampaignState.Successful : CampaignState.Failed;
        }
        return state;
    }

    function extendDeadline(uint256 _daysToAdd) public onlyOwner campaignOpen {
        deadline += _daysToAdd * 1 days;
    }
}
// File: contracts/CrowdfundingFactory.sol


pragma solidity ^0.8.0;


contract CrowdfundingFactory {
    address public owner;
    bool public paused;

    struct Campaign {
        address campaignAddress;
        address owner;
        string name;
        uint256 creationTime;
    }

    Campaign[] public campaigns;
    mapping(address => Campaign[]) public userCampaigns;

    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner.");
        _;
    }

    modifier notPaused() {
        require(!paused, "Factory is paused");
        _;
    }

    constructor() {
        owner = msg.sender;
    }

    function createCampaign(
        string memory _name,
        string memory _description,
        uint256 _goal,
        uint256 _durationInDays
    ) external notPaused {
        Crowdfunding newCampaign = new Crowdfunding(
            msg.sender,
            _name,
            _description,
            _goal,
            _durationInDays
        );
        address campaignAddress = address(newCampaign);

        Campaign memory campaign = Campaign({
            campaignAddress: campaignAddress,
            owner: msg.sender,
            name: _name,
            creationTime: block.timestamp
        });

        campaigns.push(campaign);
        userCampaigns[msg.sender].push(campaign);
    }

    function getUserCampaigns(address _user) external view returns (Campaign[] memory) {
        return userCampaigns[_user];
    }

    function getAllCampaigns() external view returns (Campaign[] memory) {
        return campaigns;
    }

    function togglePause() external onlyOwner {
        paused = !paused;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"campaigns","outputs":[{"internalType":"address","name":"campaignAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"creationTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_description","type":"string"},{"internalType":"uint256","name":"_goal","type":"uint256"},{"internalType":"uint256","name":"_durationInDays","type":"uint256"}],"name":"createCampaign","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllCampaigns","outputs":[{"components":[{"internalType":"address","name":"campaignAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"creationTime","type":"uint256"}],"internalType":"struct CrowdfundingFactory.Campaign[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserCampaigns","outputs":[{"components":[{"internalType":"address","name":"campaignAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"creationTime","type":"uint256"}],"internalType":"struct CrowdfundingFactory.Campaign[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"togglePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userCampaigns","outputs":[{"internalType":"address","name":"campaignAddress","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"creationTime","type":"uint256"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x608060405234801561000f575f5ffd5b5060043610610085575f3560e01c80638da5cb5b116100585780638da5cb5b14610100578063a1e5084c1461012a578063a318f2691461013d578063c4ae316814610152575f5ffd5b8063141961bc1461008957806319ac74bd146100b55780635c975abb146100c857806386cdf604146100eb575b5f5ffd5b61009c610097366004610736565b61015a565b6040516100ac949392919061077b565b60405180910390f35b61009c6100c33660046107d2565b610228565b5f546100db90600160a01b900460ff1681565b60405190151581526020016100ac565b6100f3610279565b6040516100ac91906107fa565b5f54610112906001600160a01b031681565b6040516001600160a01b0390911681526020016100ac565b6100f3610138366004610899565b610393565b61015061014b366004610958565b6104c3565b005b6101506106c3565b60018181548110610169575f80fd5b5f9182526020909120600490910201805460018201546002830180546001600160a01b0393841695509290911692916101a1906109cc565b80601f01602080910402602001604051908101604052809291908181526020018280546101cd906109cc565b80156102185780601f106101ef57610100808354040283529160200191610218565b820191905f5260205f20905b8154815290600101906020018083116101fb57829003601f168201915b5050505050908060030154905084565b6002602052815f5260405f208181548110610241575f80fd5b5f9182526020909120600490910201805460018201546002830180546001600160a01b0393841696509190921693506101a1906109cc565b60606001805480602002602001604051908101604052809291908181526020015f905b8282101561038a575f848152602090819020604080516080810182526004860290920180546001600160a01b03908116845260018201541693830193909352600283018054929392918401916102f1906109cc565b80601f016020809104026020016040519081016040528092919081815260200182805461031d906109cc565b80156103685780601f1061033f57610100808354040283529160200191610368565b820191905f5260205f20905b81548152906001019060200180831161034b57829003601f168201915b505050505081526020016003820154815250508152602001906001019061029c565b50505050905090565b6001600160a01b0381165f908152600260209081526040808320805482518185028101850190935280835260609492939192909184015b828210156104b8575f848152602090819020604080516080810182526004860290920180546001600160a01b039081168452600182015416938301939093526002830180549293929184019161041f906109cc565b80601f016020809104026020016040519081016040528092919081815260200182805461044b906109cc565b80156104965780601f1061046d57610100808354040283529160200191610496565b820191905f5260205f20905b81548152906001019060200180831161047957829003601f168201915b50505050508152602001600382015481525050815260200190600101906103ca565b505050509050919050565b5f54600160a01b900460ff16156105155760405162461bcd60e51b8152602060048201526011602482015270119858dd1bdc9e481a5cc81c185d5cd959607a1b60448201526064015b60405180910390fd5b5f338585858560405161052790610729565b610535959493929190610a04565b604051809103905ff08015801561054e573d5f5f3e3d5ffd5b50604080516080810182526001600160a01b03808416825233602083019081529282018981524260608401526001805480820182555f91909152835160049091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6810180549285166001600160a01b031993841617815595517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf782018054919095169216919091179092555193945084939192839290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf801906106339082610a9a565b5060609190910151600390910155335f90815260026020818152604080842080546001808201835591865294839020865160049096020180546001600160a01b03199081166001600160a01b0397881617825593870151918101805490941691909516179091558301518392918201906106ad9082610a9a565b5060608201518160030155505050505050505050565b5f546001600160a01b031633146107095760405162461bcd60e51b815260206004820152600a6024820152692737ba1037bbb732b91760b11b604482015260640161050c565b5f805460ff60a01b198116600160a01b9182900460ff1615909102179055565b61171380610b5683390190565b5f60208284031215610746575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038581168252841660208201526080604082018190525f906107a69083018561074d565b905082606083015295945050505050565b80356001600160a01b03811681146107cd575f5ffd5b919050565b5f5f604083850312156107e3575f5ffd5b6107ec836107b7565b946020939093013593505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b8281101561088d57868503603f19018452815180516001600160a01b0390811687526020808301519091169087015260408082015160809188018290529061086a9088018261074d565b606092830151979092019690965294506020938401939190910190600101610820565b50929695505050505050565b5f602082840312156108a9575f5ffd5b6108b2826107b7565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126108dc575f5ffd5b813567ffffffffffffffff8111156108f6576108f66108b9565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610925576109256108b9565b60405281815283820160200185101561093c575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f5f6080858703121561096b575f5ffd5b843567ffffffffffffffff811115610981575f5ffd5b61098d878288016108cd565b945050602085013567ffffffffffffffff8111156109a9575f5ffd5b6109b5878288016108cd565b949794965050505060408301359260600135919050565b600181811c908216806109e057607f821691505b6020821081036109fe57634e487b7160e01b5f52602260045260245ffd5b50919050565b6001600160a01b038616815260a0602082018190525f90610a279083018761074d565b8281036040840152610a39818761074d565b60608401959095525050608001529392505050565b601f821115610a9557805f5260205f20601f840160051c81016020851015610a735750805b601f840160051c820191505b81811015610a92575f8155600101610a7f565b50505b505050565b815167ffffffffffffffff811115610ab457610ab46108b9565b610ac881610ac284546109cc565b84610a4e565b6020601f821160018114610afa575f8315610ae35750848201515b5f19600385901b1c1916600184901b178455610a92565b5f84815260208120601f198516915b82811015610b295787850151825560209485019460019092019101610b09565b5084821015610b4657868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fe608060405234801561000f575f5ffd5b5060405161171338038061171383398101604081905261002e9161012f565b5f6100398582610247565b5060016100468482610247565b5060028290556100598162015180610315565b6100639042610332565b600355505060048054600161ff0160a01b0319166001600160a01b039490941693909317909255506103459050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126100b5575f5ffd5b81516001600160401b038111156100ce576100ce610092565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100fc576100fc610092565b604052818152838201602001851015610113575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f5f5f5f60a08688031215610143575f5ffd5b85516001600160a01b0381168114610159575f5ffd5b60208701519095506001600160401b03811115610174575f5ffd5b610180888289016100a6565b604088015190955090506001600160401b0381111561019d575f5ffd5b6101a9888289016100a6565b606088015160809098015196999598509695949350505050565b600181811c908216806101d757607f821691505b6020821081036101f557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561024257805f5260205f20601f840160051c810160208510156102205750805b601f840160051c820191505b8181101561023f575f815560010161022c565b50505b505050565b81516001600160401b0381111561026057610260610092565b6102748161026e84546101c3565b846101fb565b6020601f8211600181146102a6575f831561028f5750848201515b5f19600385901b1c1916600184901b17845561023f565b5f84815260208120601f198516915b828110156102d557878501518255602094850194600190920191016102b5565b50848210156102f257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761032c5761032c610301565b92915050565b8082018082111561032c5761032c610301565b6113c1806103525f395ff3fe60806040526004361061011b575f3560e01c80637284e4161161009d578063b85dfb8011610062578063b85dfb8014610303578063c19d93fb1461032e578063c4ae31681461034e578063ca1d209d14610362578063de17057014610375575f5ffd5b80637284e4161461025b5780637497211b1461026f5780637adba5271461028e5780638da5cb5b146102ad5780638ece7b91146102e4575f5ffd5b80633ccfd60b116100e35780633ccfd60b146101dc57806340193883146101f0578063590e1ae3146102055780635c975abb146102195780636f9fb98a14610249575f5ffd5b8063039af9eb1461011f57806306fdde0314610156578063105505151461017757806329dcb0cf14610198578063389b7533146101bb575b5f5ffd5b34801561012a575f5ffd5b5061013e610139366004610e60565b610396565b60405161014d93929190610ea5565b60405180910390f35b348015610161575f5ffd5b5061016a610451565b60405161014d9190610ec9565b348015610182575f5ffd5b5061018b6104dc565b60405161014d9190610ef6565b3480156101a3575f5ffd5b506101ad60035481565b60405190815260200161014d565b3480156101c6575f5ffd5b506101da6101d5366004610e60565b610536565b005b3480156101e7575f5ffd5b506101da6105f4565b3480156101fb575f5ffd5b506101ad60025481565b348015610210575f5ffd5b506101da610715565b348015610224575f5ffd5b5060045461023990600160a01b900460ff1681565b604051901515815260200161014d565b348015610254575f5ffd5b50476101ad565b348015610266575f5ffd5b5061016a610817565b34801561027a575f5ffd5b506101da610289366004610e60565b610824565b348015610299575f5ffd5b506102396102a8366004610f37565b610946565b3480156102b8575f5ffd5b506004546102cc906001600160a01b031681565b6040516001600160a01b03909116815260200161014d565b3480156102ef575f5ffd5b506101da6102fe366004610f73565b610976565b34801561030e575f5ffd5b506101ad61031d366004611028565b60066020525f908152604090205481565b348015610339575f5ffd5b5060045461018b90600160a81b900460ff1681565b348015610359575f5ffd5b506101da610a67565b6101da610370366004610e60565b610ab2565b348015610380575f5ffd5b50610389610c9b565b60405161014d9190611041565b600581815481106103a5575f80fd5b905f5260205f2090600302015f91509050805f0180546103c4906110c4565b80601f01602080910402602001604051908101604052809291908181526020018280546103f0906110c4565b801561043b5780601f106104125761010080835404028352916020019161043b565b820191905f5260205f20905b81548152906001019060200180831161041e57829003601f168201915b5050505050908060010154908060020154905083565b5f805461045d906110c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610489906110c4565b80156104d45780601f106104ab576101008083540402835291602001916104d4565b820191905f5260205f20905b8154815290600101906020018083116104b757829003601f168201915b505050505081565b5f80600454600160a81b900460ff1660028111156104fc576104fc610ee2565b14801561050a575060035442115b156105255760025447101561051f5750600290565b50600190565b50600454600160a81b900460ff1690565b6004546001600160a01b031633146105695760405162461bcd60e51b8152600401610560906110fc565b60405180910390fd5b5f600454600160a81b900460ff16600281111561058857610588610ee2565b146105cf5760405162461bcd60e51b815260206004820152601760248201527621b0b6b830b4b3b71034b9903737ba1030b1ba34bb329760491b6044820152606401610560565b6105dc8162015180611137565b60035f8282546105ec919061114e565b909155505050565b6004546001600160a01b0316331461061e5760405162461bcd60e51b8152600401610560906110fc565b610626610d9a565b6001600454600160a81b900460ff16600281111561064657610646610ee2565b146106935760405162461bcd60e51b815260206004820152601860248201527f43616d706169676e206e6f74207375636365737366756c2e00000000000000006044820152606401610560565b47806106da5760405162461bcd60e51b81526020600482015260166024820152754e6f2062616c616e636520746f20776974686472617760501b6044820152606401610560565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610711573d5f5f3e3d5ffd5b5050565b61071d610d9a565b6002600454600160a81b900460ff16600281111561073d5761073d610ee2565b146107835760405162461bcd60e51b81526020600482015260166024820152752932b33ab73239903737ba1030bb30b4b630b136329760511b6044820152606401610560565b335f90815260066020526040902054806107df5760405162461bcd60e51b815260206004820152601960248201527f4e6f20636f6e747269627574696f6e20746f20726566756e64000000000000006044820152606401610560565b335f818152600660205260408082208290555183156108fc0291849190818181858888f19350505050158015610711573d5f5f3e3d5ffd5b6001805461045d906110c4565b6004546001600160a01b0316331461084e5760405162461bcd60e51b8152600401610560906110fc565b60055481106108965760405162461bcd60e51b81526020600482015260146024820152732a34b2b9103237b2b9903737ba1032bc34b9ba1760611b6044820152606401610560565b600580546108a690600190611161565b815481106108b6576108b6611174565b905f5260205f209060030201600582815481106108d5576108d5611174565b5f9182526020909120600390910201806108ef83826111d4565b50600182810154908201556002918201549101556005805480610914576109146112ac565b5f828152602081205f19909201916003830201906109328282610e16565b505f60018201819055600290910155905550565b6001600160a01b0382165f90815260066020908152604080832084845260010190915290205460ff165b92915050565b6004546001600160a01b031633146109a05760405162461bcd60e51b8152600401610560906110fc565b5f81116109ef5760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e00006044820152606401610560565b60408051606081018252838152602081018390525f918101829052600580546001810182559252805190916003027f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001908190610a4c90826112c0565b50602082015181600101556040820151816002015550505050565b6004546001600160a01b03163314610a915760405162461bcd60e51b8152600401610560906110fc565b6004805460ff60a01b198116600160a01b9182900460ff1615909102179055565b5f600454600160a81b900460ff166002811115610ad157610ad1610ee2565b14610b185760405162461bcd60e51b815260206004820152601760248201527621b0b6b830b4b3b71034b9903737ba1030b1ba34bb329760491b6044820152606401610560565b600454600160a01b900460ff1615610b685760405162461bcd60e51b815260206004820152601360248201527221b7b73a3930b1ba1034b9903830bab9b2b21760691b6044820152606401610560565b6005548110610ba95760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a34b2b91760991b6044820152606401610560565b60058181548110610bbc57610bbc611174565b905f5260205f209060030201600101543414610c0e5760405162461bcd60e51b815260206004820152601160248201527024b731b7b93932b1ba1030b6b7bab73a1760791b6044820152606401610560565b60058181548110610c2157610c21611174565b5f91825260208220600260039092020101805491610c3e83611373565b9091555050335f9081526006602052604081208054349290610c6190849061114e565b9091555050335f9081526006602090815260408083208484526001908101909252909120805460ff19169091179055610c98610d9a565b50565b60606005805480602002602001604051908101604052809291908181526020015f905b82821015610d91578382905f5260205f2090600302016040518060600160405290815f82018054610cee906110c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610d1a906110c4565b8015610d655780601f10610d3c57610100808354040283529160200191610d65565b820191905f5260205f20905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020016001820154815260200160028201548152505081526020019060010190610cbe565b50505050905090565b5f600454600160a81b900460ff166002811115610db957610db9610ee2565b03610e14576003544210610e0457600254471015610dd8576002610ddb565b60015b6004805460ff60a81b1916600160a81b836002811115610dfd57610dfd610ee2565b0217905550565b600254471015610dd8575f610ddb565b565b508054610e22906110c4565b5f825580601f10610e31575050565b601f0160209004905f5260205f2090810190610c9891905b80821115610e5c575f8155600101610e49565b5090565b5f60208284031215610e70575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b606081525f610eb76060830186610e77565b60208301949094525060400152919050565b602081525f610edb6020830184610e77565b9392505050565b634e487b7160e01b5f52602160045260245ffd5b6020810160038310610f1657634e487b7160e01b5f52602160045260245ffd5b91905290565b80356001600160a01b0381168114610f32575f5ffd5b919050565b5f5f60408385031215610f48575f5ffd5b610f5183610f1c565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215610f84575f5ffd5b823567ffffffffffffffff811115610f9a575f5ffd5b8301601f81018513610faa575f5ffd5b803567ffffffffffffffff811115610fc457610fc4610f5f565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715610ff357610ff3610f5f565b60405281815282820160200187101561100a575f5ffd5b816020840160208301375f6020928201830152969401359450505050565b5f60208284031215611038575f5ffd5b610edb82610f1c565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156110b857603f19878603018452815180516060875261108d6060880182610e77565b6020838101518982015260409384015193909801929092525094938401939190910190600101611067565b50929695505050505050565b600181811c908216806110d857607f821691505b6020821081036110f657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252600d908201526c2737ba103a34329037bbb732b960991b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761097057610970611123565b8082018082111561097057610970611123565b8181038181111561097057610970611123565b634e487b7160e01b5f52603260045260245ffd5b601f8211156111cf57805f5260205f20601f840160051c810160208510156111ad5750805b601f840160051c820191505b818110156111cc575f81556001016111b9565b50505b505050565b8181036111df575050565b6111e982546110c4565b67ffffffffffffffff81111561120157611201610f5f565b6112158161120f84546110c4565b84611188565b5f601f821160018114611249575f831561122f5750848201545b600184901b5f19600386901b1c198216175b8555506111cc565b5f8581526020808220868352908220601f198616925b8381101561127f578286015482556001958601959091019060200161125f565b508583101561129c57818501545f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52603160045260245ffd5b815167ffffffffffffffff8111156112da576112da610f5f565b6112e88161120f84546110c4565b6020601f821160018114611318575f831561122f575081850151600184901b5f19600386901b1c19821617611241565b5f84815260208120601f198516915b828110156113475787850151825560209485019460019092019101611327565b508482101561136457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f6001820161138457611384611123565b506001019056fea26469706673582212202eb565d821a5ddf9592642cb1a6f8e6bcd12378853acec0f4012abc5fc9ef31e64736f6c634300081c0033a26469706673582212203b48d7911118339e113c4779bd46b60e09aeaa06a2f3603ef98571382bc8221864736f6c634300081c0033

Deployed Bytecode Sourcemap

4330:1647:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4563:27;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4597:51;;;;;;:::i;:::-;;:::i;4393:18::-;;;;;-1:-1:-1;;;4393:18:0;;;;;;;;;1679:14:1;;1672:22;1654:41;;1642:2;1627:18;4393::0;1514:187:1;5785:104:0;;;:::i;:::-;;;;;;;:::i;4366:20::-;;;;;-1:-1:-1;;;;;4366:20:0;;;;;;-1:-1:-1;;;;;3065:32:1;;;3047:51;;3035:2;3020:18;4366:20:0;2901:203:1;5648:129:0;;;;;;:::i;:::-;;:::i;4915:725::-;;;;;;:::i;:::-;;:::i;:::-;;5897:77;;;:::i;4563:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4563:27:0;;;;-1:-1:-1;4563:27:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4597:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4597:51:0;;;;-1:-1:-1;4597:51:0;;;;;-1:-1:-1;4597:51:0;;;:::i;5785:104::-;5835:17;5872:9;5865:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5865:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5785:104;:::o;5648:129::-;-1:-1:-1;;;;;5749:20:0;;;;;;:13;:20;;;;;;;;5742:27;;;;;;;;;;;;;;;;;5712:17;;5742:27;;5749:20;;5742:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5742:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5648:129;;;:::o;4915:725::-;4800:6;;-1:-1:-1;;;4800:6:0;;;;4799:7;4791:37;;;;-1:-1:-1;;;4791:37:0;;5528:2:1;4791:37:0;;;5510:21:1;5567:2;5547:18;;;5540:30;-1:-1:-1;;;5586:18:1;;;5579:47;5643:18;;4791:37:0;;;;;;;;;5101:24:::1;5159:10;5184:5;5204:12;5231:5;5251:15;5128:149;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;5374:170:0::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;5374:170:0;;::::1;::::0;;5452:10:::1;5374:170;::::0;::::1;::::0;;;;;;;;;5517:15:::1;5374:170:::0;;;;5557:9:::1;:24:::0;;;;::::1;::::0;;5288:23:::1;5557:24:::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;-1:-1:-1::0;;;;;;5557:24:0;;::::1;;::::0;;;;;;;;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;5101:176;;-1:-1:-1;5101:176:0;;5374:170;;;;5557:24;;;;;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;5557:24:0::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;5606:10:::1;5592:25;::::0;;;:13:::1;:25;::::0;;;;;;;:40;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;::::1;;::::0;;-1:-1:-1;;;;;;5592:40:0;;::::1;-1:-1:-1::0;;;;;5592:40:0;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;::::1;;::::0;;;;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;;;;;;;;;5090:550;;;4915:725:::0;;;;:::o;5897:77::-;4711:5;;-1:-1:-1;;;;;4711:5:0;4697:10;:19;4689:42;;;;-1:-1:-1;;;4689:42:0;;8628:2:1;4689:42:0;;;8610:21:1;8667:2;8647:18;;;8640:30;-1:-1:-1;;;8686:18:1;;;8679:40;8736:18;;4689:42:0;8426:334:1;4689:42:0;5960:6:::1;::::0;;-1:-1:-1;;;;5950:16:0;::::1;-1:-1:-1::0;;;5960:6:0;;;::::1;;;5959:7;5950:16:::0;;::::1;;::::0;;5897:77::o;-1:-1:-1:-;;;;;;;;:::o;14:226:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;187:23:1;;14:226;-1:-1:-1;14:226:1:o;245:289::-;287:3;325:5;319:12;352:6;347:3;340:19;408:6;401:4;394:5;390:16;383:4;378:3;374:14;368:47;460:1;453:4;444:6;439:3;435:16;431:27;424:38;523:4;516:2;512:7;507:2;499:6;495:15;491:29;486:3;482:39;478:50;471:57;;;245:289;;;;:::o;539:487::-;-1:-1:-1;;;;;772:32:1;;;754:51;;841:32;;836:2;821:18;;814:60;910:3;905:2;890:18;;883:31;;;-1:-1:-1;;931:46:1;;957:19;;949:6;931:46;:::i;:::-;923:54;;1013:6;1008:2;997:9;993:18;986:34;539:487;;;;;;;:::o;1031:173::-;1099:20;;-1:-1:-1;;;;;1148:31:1;;1138:42;;1128:70;;1194:1;1191;1184:12;1128:70;1031:173;;;:::o;1209:300::-;1277:6;1285;1338:2;1326:9;1317:7;1313:23;1309:32;1306:52;;;1354:1;1351;1344:12;1306:52;1377:29;1396:9;1377:29;:::i;:::-;1367:39;1475:2;1460:18;;;;1447:32;;-1:-1:-1;;;1209:300:1:o;1706:1190::-;1898:4;1946:2;1935:9;1931:18;1976:2;1965:9;1958:21;1999:6;2034;2028:13;2065:6;2057;2050:22;2103:2;2092:9;2088:18;2081:25;;2165:2;2155:6;2152:1;2148:14;2137:9;2133:30;2129:39;2115:53;;2203:2;2195:6;2191:15;2224:1;2234:633;2248:6;2245:1;2242:13;2234:633;;;2313:22;;;-1:-1:-1;;2309:36:1;2297:49;;2369:13;;2414:9;;-1:-1:-1;;;;;2410:35:1;;;2395:51;;2501:2;2493:11;;;2487:18;2483:44;;;2466:15;;;2459:69;2575:2;2567:11;;;2561:18;2616:4;2599:15;;;2592:29;;;2561:18;2648:50;;2680:17;;2561:18;2648:50;:::i;:::-;2751:4;2743:13;;;2737:20;2718:17;;;;2711:47;;;;2634:64;-1:-1:-1;2822:2:1;2845:12;;;;2810:15;;;;;2270:1;2263:9;2234:633;;;-1:-1:-1;2884:6:1;;1706:1190;-1:-1:-1;;;;;;1706:1190:1:o;3109:186::-;3168:6;3221:2;3209:9;3200:7;3196:23;3192:32;3189:52;;;3237:1;3234;3227:12;3189:52;3260:29;3279:9;3260:29;:::i;:::-;3250:39;3109:186;-1:-1:-1;;;3109:186:1:o;3300:127::-;3361:10;3356:3;3352:20;3349:1;3342:31;3392:4;3389:1;3382:15;3416:4;3413:1;3406:15;3432:726;3475:5;3528:3;3521:4;3513:6;3509:17;3505:27;3495:55;;3546:1;3543;3536:12;3495:55;3586:6;3573:20;3616:18;3608:6;3605:30;3602:56;;;3638:18;;:::i;:::-;3687:2;3681:9;3779:2;3741:17;;-1:-1:-1;;3737:31:1;;;3770:2;3733:40;3729:54;3717:67;;3814:18;3799:34;;3835:22;;;3796:62;3793:88;;;3861:18;;:::i;:::-;3897:2;3890:22;3921;;;3962:19;;;3983:4;3958:30;3955:39;-1:-1:-1;3952:59:1;;;4007:1;4004;3997:12;3952:59;4071:6;4064:4;4056:6;4052:17;4045:4;4037:6;4033:17;4020:58;4126:1;4098:19;;;4119:4;4094:30;4087:41;;;;4102:6;3432:726;-1:-1:-1;;;3432:726:1:o;4163:773::-;4269:6;4277;4285;4293;4346:3;4334:9;4325:7;4321:23;4317:33;4314:53;;;4363:1;4360;4353:12;4314:53;4403:9;4390:23;4436:18;4428:6;4425:30;4422:50;;;4468:1;4465;4458:12;4422:50;4491;4533:7;4524:6;4513:9;4509:22;4491:50;:::i;:::-;4481:60;;;4594:2;4583:9;4579:18;4566:32;4623:18;4613:8;4610:32;4607:52;;;4655:1;4652;4645:12;4607:52;4678;4722:7;4711:8;4700:9;4696:24;4678:52;:::i;:::-;4163:773;;4668:62;;-1:-1:-1;;;;4799:2:1;4784:18;;4771:32;;4900:2;4885:18;4872:32;;4163:773;-1:-1:-1;4163:773:1:o;4941:380::-;5020:1;5016:12;;;;5063;;;5084:61;;5138:4;5130:6;5126:17;5116:27;;5084:61;5191:2;5183:6;5180:14;5160:18;5157:38;5154:161;;5237:10;5232:3;5228:20;5225:1;5218:31;5272:4;5269:1;5262:15;5300:4;5297:1;5290:15;5154:161;;4941:380;;;:::o;5672:625::-;-1:-1:-1;;;;;5953:32:1;;5935:51;;5973:3;6017:2;6002:18;;5995:31;;;-1:-1:-1;;6049:46:1;;6075:19;;6067:6;6049:46;:::i;:::-;6143:9;6135:6;6131:22;6126:2;6115:9;6111:18;6104:50;6171:33;6197:6;6189;6171:33;:::i;:::-;6235:2;6220:18;;6213:34;;;;-1:-1:-1;;6278:3:1;6263:19;6256:35;6163:41;5672:625;-1:-1:-1;;;5672:625:1:o;6428:518::-;6530:2;6525:3;6522:11;6519:421;;;6566:5;6563:1;6556:16;6610:4;6607:1;6597:18;6680:2;6668:10;6664:19;6661:1;6657:27;6651:4;6647:38;6716:4;6704:10;6701:20;6698:47;;;-1:-1:-1;6739:4:1;6698:47;6794:2;6789:3;6785:12;6782:1;6778:20;6772:4;6768:31;6758:41;;6849:81;6867:2;6860:5;6857:13;6849:81;;;6926:1;6912:16;;6893:1;6882:13;6849:81;;;6853:3;;6519:421;6428:518;;;:::o;7122:1299::-;7248:3;7242:10;7275:18;7267:6;7264:30;7261:56;;;7297:18;;:::i;:::-;7326:97;7416:6;7376:38;7408:4;7402:11;7376:38;:::i;:::-;7370:4;7326:97;:::i;:::-;7472:4;7503:2;7492:14;;7520:1;7515:649;;;;8208:1;8225:6;8222:89;;;-1:-1:-1;8277:19:1;;;8271:26;8222:89;-1:-1:-1;;7079:1:1;7075:11;;;7071:24;7067:29;7057:40;7103:1;7099:11;;;7054:57;8324:81;;7485:930;;7515:649;6375:1;6368:14;;;6412:4;6399:18;;-1:-1:-1;;7551:20:1;;;7669:222;7683:7;7680:1;7677:14;7669:222;;;7765:19;;;7759:26;7744:42;;7872:4;7857:20;;;;7825:1;7813:14;;;;7699:12;7669:222;;;7673:3;7919:6;7910:7;7907:19;7904:201;;;7980:19;;;7974:26;-1:-1:-1;;8063:1:1;8059:14;;;8075:3;8055:24;8051:37;8047:42;8032:58;8017:74;;7904:201;-1:-1:-1;;;;8151:1:1;8135:14;;;8131:22;8118:36;;-1:-1:-1;7122:1299:1:o

Swarm Source

ipfs://3b48d7911118339e113c4779bd46b60e09aeaa06a2f3603ef98571382bc82218

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.