ETH Price: $2,813.73 (+8.43%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Close Funding169703922023-04-03 18:53:11583 days ago1680547991IN
0x15BBCBC2...291ce7E5e
0 ETH0.0073197449.38568774
Contribute169363482023-03-29 23:57:23588 days ago1680134243IN
0x15BBCBC2...291ce7E5e
0.1 ETH0.0042830926.99747668
Contribute168723382023-03-21 0:05:11597 days ago1679357111IN
0x15BBCBC2...291ce7E5e
0.003 ETH0.0021639245.54094126
Contribute164298122023-01-17 23:29:35659 days ago1673998175IN
0x15BBCBC2...291ce7E5e
0.1 ETH0.0038138624.03978007
Contribute163384882023-01-05 5:25:59672 days ago1672896359IN
0x15BBCBC2...291ce7E5e
0.1 ETH0.0025383215.99972634
Contribute161291192022-12-06 23:44:35701 days ago1670370275IN
0x15BBCBC2...291ce7E5e
0.1 ETH0.0029650718.69102997
Contribute160929522022-12-01 22:30:59706 days ago1669933859IN
0x15BBCBC2...291ce7E5e
0.1 ETH0.002365314.90913748
Contribute158974762022-11-04 15:14:23733 days ago1667574863IN
0x15BBCBC2...291ce7E5e
0.1 ETH0.0040984825.83384223
Contribute158438712022-10-28 3:27:23741 days ago1666927643IN
0x15BBCBC2...291ce7E5e
0.5 ETH0.0017930411.3020566
Contribute157491502022-10-14 21:51:23754 days ago1665784283IN
0x15BBCBC2...291ce7E5e
0.0455 ETH0.000851617.92252859
Contribute157259962022-10-11 16:14:59757 days ago1665504899IN
0x15BBCBC2...291ce7E5e
0.0385 ETH0.0016393334.50070004
Contribute157178262022-10-10 12:52:59758 days ago1665406379IN
0x15BBCBC2...291ce7E5e
0.01 ETH0.0016770535.30353097
Contribute157171152022-10-10 10:30:11758 days ago1665397811IN
0x15BBCBC2...291ce7E5e
0.05 ETH0.0016038533.76248286
Contribute157115012022-10-09 15:42:11759 days ago1665330131IN
0x15BBCBC2...291ce7E5e
0.05 ETH0.0009455119.90381432
Contribute157039392022-10-08 14:21:59760 days ago1665238919IN
0x15BBCBC2...291ce7E5e
0.03 ETH0.0004977510.47814005
Contribute156987052022-10-07 20:51:11761 days ago1665175871IN
0x15BBCBC2...291ce7E5e
0.03 ETH0.000327256.88898505
Contribute156890302022-10-06 12:21:59762 days ago1665058919IN
0x15BBCBC2...291ce7E5e
0.04 ETH0.0005107510.75174365
Contribute156531602022-10-01 11:57:47767 days ago1664625467IN
0x15BBCBC2...291ce7E5e
0.069 ETH0.000316056.65150875
Contribute156530922022-10-01 11:43:59767 days ago1664624639IN
0x15BBCBC2...291ce7E5e
0.05 ETH0.000271485.71491577
Contribute156324302022-09-28 14:27:47770 days ago1664375267IN
0x15BBCBC2...291ce7E5e
0.04 ETH0.0006927514.58299574
Contribute155894592022-09-22 14:24:47776 days ago1663856687IN
0x15BBCBC2...291ce7E5e
0.001 ETH0.0007546411.68104128
Contribute154657822022-09-03 13:59:17795 days ago1662213557IN
0x15BBCBC2...291ce7E5e
0.025 ETH0.000260555.4836087
Contribute154562332022-09-02 1:20:01797 days ago1662081601IN
0x15BBCBC2...291ce7E5e
0.04 ETH0.0008916918.77091657
Contribute153802242022-08-20 22:21:44809 days ago1661034104IN
0x15BBCBC2...291ce7E5e
0.05 ETH0.000431349.08027125
Contribute153742532022-08-19 23:46:08810 days ago1660952768IN
0x15BBCBC2...291ce7E5e
0.02 ETH0.0005510711.60057855
View all transactions

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
169703922023-04-03 18:53:11583 days ago1680547991
0x15BBCBC2...291ce7E5e
11.4239775 ETH
169703922023-04-03 18:53:11583 days ago1680547991
0x15BBCBC2...291ce7E5e
0.2929225 ETH
136919252021-11-26 20:39:141076 days ago1637959154  Contract Creation0 ETH
Loading...
Loading

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

Contract Name:
CrowdfundWithEditionsProxy

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion
File 1 of 4 : CrowdfundWithEditionsProxy.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

import {CrowdfundWithEditionsStorage} from "./CrowdfundWithEditionsStorage.sol";
import {ERC20Storage} from "../../../external/ERC20Storage.sol";
import {IERC20Events} from "../../../external/interface/IERC20.sol";

interface ICrowdfundWithEditionsFactory {
    function mediaAddress() external returns (address);

    function logic() external returns (address);

    function editions() external returns (address);

    // ERC20 data.
    function parameters()
        external
        returns (
            address payable fundingRecipient,
            uint256 fundingCap,
            uint256 operatorPercent,
            uint256 feePercentage
        );
}

/**
 * @title CrowdfundWithEditionsProxy
 * @author MirrorXYZ
 */
contract CrowdfundWithEditionsProxy is
    CrowdfundWithEditionsStorage,
    ERC20Storage,
    IERC20Events
{
    event Upgraded(address indexed implementation);

    /**
     * @dev Storage slot with the address of the current implementation.
     * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is
     * validated in the constructor.
     */
    bytes32 internal constant _IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    constructor(
        address treasuryConfig_,
        address payable operator_,
        string memory name_,
        string memory symbol_
    ) ERC20Storage(name_, symbol_) {
        address logic = ICrowdfundWithEditionsFactory(msg.sender).logic();

        assembly {
            sstore(_IMPLEMENTATION_SLOT, logic)
        }

        emit Upgraded(logic);

        editions = ICrowdfundWithEditionsFactory(msg.sender).editions();
        // Crowdfund-specific data.
        (
            fundingRecipient,
            fundingCap,
            operatorPercent,
            feePercentage
        ) = ICrowdfundWithEditionsFactory(msg.sender).parameters();

        operator = operator_;
        treasuryConfig = treasuryConfig_;
        // Initialize mutable storage.
        status = Status.FUNDING;
    }

    /// @notice Get current logic
    function logic() external view returns (address logic_) {
        assembly {
            logic_ := sload(_IMPLEMENTATION_SLOT)
        }
    }

    fallback() external payable {
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let result := delegatecall(
                gas(),
                sload(_IMPLEMENTATION_SLOT),
                ptr,
                calldatasize(),
                0,
                0
            )
            let size := returndatasize()
            returndatacopy(ptr, 0, size)

            switch result
            case 0 {
                revert(ptr, size)
            }
            default {
                return(ptr, size)
            }
        }
    }

    receive() external payable {}
}

File 2 of 4 : CrowdfundWithEditionsStorage.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

/**
 * @title CrowdfundWithEditionsStorage
 * @author MirrorXYZ
 */
contract CrowdfundWithEditionsStorage {
    /**
     * @notice The two states that this contract can exist in.
     * "FUNDING" allows contributors to add funds.
     */
    enum Status {
        FUNDING,
        TRADING
    }

    // ============ Constants ============

    /// @notice The factor by which ETH contributions will multiply into crowdfund tokens.
    uint16 internal constant TOKEN_SCALE = 1000;

    // ============ Reentrancy ============

    /// @notice Reentrancy constants.
    uint256 internal constant REENTRANCY_NOT_ENTERED = 1;
    uint256 internal constant REENTRANCY_ENTERED = 2;

    /// @notice Current reentrancy status -- used by the modifier.
    uint256 internal reentrancy_status;

    /// @notice The operator has a special role to change contract status.
    address payable public operator;

    /// @notice Receives the funds when calling withdraw. Operator can configure.
    address payable public fundingRecipient;

    /// @notice Treasury configuration.
    address public treasuryConfig;

    /// @notice We add a hard cap to prevent raising more funds than deemed reasonable.
    uint256 public fundingCap;

    /// @notice Fee percentage that the crowdfund pays to the treasury.
    uint256 public feePercentage;

    /// @notice The operator takes some equity in the tokens, represented by this percent.
    uint256 public operatorPercent;

    // ============ Mutable Storage ============

    /// @notice Represents the current state of the campaign.
    Status public status;

    // ============ Tiered Campaigns ============

    /// @notice Address of the editions contract to purchase from.
    address public editions;
}

File 3 of 4 : ERC20Storage.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

/**
 * @title ERC20Storage
 * @author MirrorXYZ
 */
contract ERC20Storage {
    /// @notice EIP-20 token name for this token
    string public name;

    /// @notice EIP-20 token symbol for this token
    string public symbol;

    /// @notice EIP-20 total number of tokens in circulation
    uint256 public totalSupply;

    /// @notice Initialize total supply to zero.
    constructor(string memory name_, string memory symbol_) {
        name = name_;
        symbol = symbol_;
        totalSupply = 0;
    }
}

File 4 of 4 : IERC20.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;

interface IERC20 {
    /// @notice EIP-20 token name for this token
    function name() external returns (string calldata);

    /// @notice EIP-20 token symbol for this token
    function symbol() external returns (string calldata);

    /// @notice EIP-20 token decimals for this token
    function decimals() external returns (uint8);

    /// @notice EIP-20 total number of tokens in circulation
    function totalSupply() external returns (uint256);

    /// @notice EIP-20 official record of token balances for each account
    function balanceOf(address account) external returns (uint256);

    /// @notice EIP-20 allowance amounts on behalf of others
    function allowance(address owner, address spender)
        external
        returns (uint256);

    /// @notice EIP-20 approves _spender_ to transfer up to _value_ multiple times
    function approve(address spender, uint256 value) external returns (bool);

    /// @notice EIP-20 transfer _value_ to _to_ from _msg.sender_
    function transfer(address to, uint256 value) external returns (bool);

    /// @notice EIP-20 transfer _value_ to _to_ from _from_
    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

interface IERC20Events {
    /// @notice EIP-20 Mint event
    event Mint(address indexed to, uint256 amount);

    /// @notice EIP-20 approval event
    event Approval(
        address indexed from,
        address indexed spender,
        uint256 value
    );

    /// @notice EIP-20 transfer event
    event Transfer(address indexed from, address indexed to, uint256 value);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 2000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"treasuryConfig_","type":"address"},{"internalType":"address payable","name":"operator_","type":"address"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"editions","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundingCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundingRecipient","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"logic","outputs":[{"internalType":"address","name":"logic_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operatorPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"status","outputs":[{"internalType":"enum CrowdfundWithEditionsStorage.Status","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryConfig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100cb5760003560e01c806395d89b4111610074578063cfd7b0df1161004e578063cfd7b0df14610280578063d7dfa0dd146102ad578063e3b2594f146102e1576100d2565b806395d89b4114610223578063a001ecdd14610238578063b8ddbcb31461024e576100d2565b8063200d2ed2116100a5578063200d2ed2146101b9578063570ca735146101e05780637b4044a01461020d576100d2565b806306fdde031461011857806318160ddd146101435780631bb534ba14610167576100d2565b366100d257005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e818015610114578184f35b8184fd5b34801561012457600080fd5b5061012d6102f7565b60405161013a91906103d3565b60405180910390f35b34801561014f57600080fd5b50610159600a5481565b60405190815260200161013a565b34801561017357600080fd5b506002546101949073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161013a565b3480156101c557600080fd5b506007546101d39060ff1681565b60405161013a9190610392565b3480156101ec57600080fd5b506001546101949073ffffffffffffffffffffffffffffffffffffffff1681565b34801561021957600080fd5b5061015960065481565b34801561022f57600080fd5b5061012d610385565b34801561024457600080fd5b5061015960055481565b34801561025a57600080fd5b5060075461019490610100900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561028c57600080fd5b506003546101949073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102b957600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610194565b3480156102ed57600080fd5b5061015960045481565b6008805461030490610446565b80601f016020809104026020016040519081016040528092919081815260200182805461033090610446565b801561037d5780601f106103525761010080835404028352916020019161037d565b820191906000526020600020905b81548152906001019060200180831161036057829003601f168201915b505050505081565b6009805461030490610446565b60208101600283106103cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060208083528351808285015260005b81811015610400578581018301518582016040015282016103e4565b81811115610412576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061045a57607f821691505b60208210811415610494577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea264697066735822122075e2c11b94fd8bff7467563877afbbd5b54be285e957310575d63f73b2551baf64736f6c63430008060033

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
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.