ETH Price: $3,652.39 (+2.03%)

Contract

0xcf7f28d4c06f81Efc273a78446735C19B21C94C6
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve204854312024-08-08 17:41:59113 days ago1723138919IN
0xcf7f28d4...9B21C94C6
0 ETH0.000327496.3655059
Approve199203662024-05-21 19:27:47192 days ago1716319667IN
0xcf7f28d4...9B21C94C6
0 ETH0.0007340214.32754746
Approve198722552024-05-15 2:00:59199 days ago1715738459IN
0xcf7f28d4...9B21C94C6
0 ETH0.000235064.5637197
Approve198632432024-05-13 19:40:23200 days ago1715629223IN
0xcf7f28d4...9B21C94C6
0 ETH0.0005746711.17005887
Approve198302582024-05-09 5:00:11204 days ago1715230811IN
0xcf7f28d4...9B21C94C6
0 ETH0.000204123.96761662
Approve196135072024-04-08 21:04:59235 days ago1712610299IN
0xcf7f28d4...9B21C94C6
0 ETH0.00153129.7582451
Approve195019302024-03-24 4:06:35251 days ago1711253195IN
0xcf7f28d4...9B21C94C6
0 ETH0.0008872117.24482433
Approve194859692024-03-21 22:21:59253 days ago1711059719IN
0xcf7f28d4...9B21C94C6
0 ETH0.001433827.99305869
Approve193202482024-02-27 17:01:59276 days ago1709053319IN
0xcf7f28d4...9B21C94C6
0 ETH0.0033080764.22452856
Approve193197292024-02-27 15:16:59276 days ago1709047019IN
0xcf7f28d4...9B21C94C6
0 ETH0.0030752859.70495859
Approve187609572023-12-11 5:44:35354 days ago1702273475IN
0xcf7f28d4...9B21C94C6
0 ETH0.0019488937.83667361
Approve187609542023-12-11 5:43:59354 days ago1702273439IN
0xcf7f28d4...9B21C94C6
0 ETH0.0018052635.07283831
Approve187609532023-12-11 5:43:47354 days ago1702273427IN
0xcf7f28d4...9B21C94C6
0 ETH0.0018602936.11662984
Approve187609502023-12-11 5:43:11354 days ago1702273391IN
0xcf7f28d4...9B21C94C6
0 ETH0.0020367339.54212334
Approve175956842023-07-01 0:35:23518 days ago1688171723IN
0xcf7f28d4...9B21C94C6
0 ETH0.0008620916.75667297
Approve167788462023-03-07 20:38:47633 days ago1678221527IN
0xcf7f28d4...9B21C94C6
0 ETH0.0018284335.53946338
Approve165100642023-01-29 4:22:35671 days ago1674966155IN
0xcf7f28d4...9B21C94C6
0 ETH0.0004119814.09742605
Approve162834652022-12-28 13:11:35702 days ago1672233095IN
0xcf7f28d4...9B21C94C6
0 ETH0.0006788213.17910311
Approve162738322022-12-27 4:55:23703 days ago1672116923IN
0xcf7f28d4...9B21C94C6
0 ETH0.0009722318.87538344
Approve146301472022-04-21 19:24:10953 days ago1650569050IN
0xcf7f28d4...9B21C94C6
0 ETH0.0029477557.22916819
Approve142125432022-02-15 19:15:471018 days ago1644952547IN
0xcf7f28d4...9B21C94C6
0 ETH0.00673831130.8208184
Approve139106252021-12-31 3:06:321065 days ago1640919992IN
0xcf7f28d4...9B21C94C6
0 ETH0.0051239399.47837302
Approve138485492021-12-21 12:32:051074 days ago1640089925IN
0xcf7f28d4...9B21C94C6
0 ETH0.0032047962.21940933
Approve136802382021-11-25 0:03:591101 days ago1637798639IN
0xcf7f28d4...9B21C94C6
0 ETH0.00632192122.73676136
Approve136537542021-11-20 19:29:351105 days ago1637436575IN
0xcf7f28d4...9B21C94C6
0 ETH0.00538258104.5
View all transactions

Latest 4 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
133805472021-10-08 21:19:481148 days ago1633727988
0xcf7f28d4...9B21C94C6
24.375 ETH
133805472021-10-08 21:19:481148 days ago1633727988
0xcf7f28d4...9B21C94C6
0.625 ETH
133802652021-10-08 20:11:181148 days ago1633723878
0xcf7f28d4...9B21C94C6
0.19 ETH
133792672021-10-08 16:33:051148 days ago1633710785  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.