Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 343 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 16698227 | 1093 days ago | IN | 0 ETH | 0.00130922 | ||||
| Transfer | 16414538 | 1133 days ago | IN | 0 ETH | 0.00168359 | ||||
| Transfer | 16251451 | 1156 days ago | IN | 0 ETH | 0.00054987 | ||||
| Transfer | 14479453 | 1426 days ago | IN | 0 ETH | 0.00127525 | ||||
| Transfer | 14454760 | 1429 days ago | IN | 0 ETH | 0.00135767 | ||||
| Approve | 14390432 | 1439 days ago | IN | 0 ETH | 0.00034453 | ||||
| Contribute | 14298249 | 1454 days ago | IN | 0.333 ETH | 0.00210234 | ||||
| Transfer | 14292969 | 1455 days ago | IN | 0 ETH | 0.00215663 | ||||
| Approve | 14285515 | 1456 days ago | IN | 0 ETH | 0.00171748 | ||||
| Approve | 14285299 | 1456 days ago | IN | 0 ETH | 0.00246234 | ||||
| Close Funding | 14285259 | 1456 days ago | IN | 0 ETH | 0.00777728 | ||||
| Contribute | 14285254 | 1456 days ago | IN | 0.15 ETH | 0.00285717 | ||||
| Contribute | 14285247 | 1456 days ago | IN | 0.1 ETH | 0.00305085 | ||||
| Contribute | 14285242 | 1456 days ago | IN | 0.095 ETH | 0.00290873 | ||||
| Contribute | 14285241 | 1456 days ago | IN | 1.5 ETH | 0.00190752 | ||||
| Contribute | 14285239 | 1456 days ago | IN | 0.15 ETH | 0.00186116 | ||||
| Contribute | 14285228 | 1456 days ago | IN | 0.123 ETH | 0.00318401 | ||||
| Contribute | 14285208 | 1456 days ago | IN | 0.1 ETH | 0.00339592 | ||||
| Contribute | 14285204 | 1456 days ago | IN | 0.23 ETH | 0.00341025 | ||||
| Contribute | 14285189 | 1456 days ago | IN | 0.25 ETH | 0.00291007 | ||||
| Contribute | 14285070 | 1456 days ago | IN | 0.5 ETH | 0.00245361 | ||||
| Contribute | 14285051 | 1456 days ago | IN | 0.05 ETH | 0.00259085 | ||||
| Contribute | 14285037 | 1456 days ago | IN | 0.05 ETH | 0.00256012 | ||||
| Contribute | 14285025 | 1456 days ago | IN | 0.1 ETH | 0.00302512 | ||||
| Contribute | 14285002 | 1456 days ago | IN | 0.2 ETH | 0.00223997 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x45D9684a...17Bc5Cb60 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
CrowdfundProxy
Compiler Version
v0.8.6+commit.11564f7e
Optimization Enabled:
Yes with 2000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
import {CrowdfundStorage} from "./CrowdfundStorage.sol";
import {ERC20Storage} from "../../../external/ERC20Storage.sol";
import {IERC20Events} from "../../../external/interface/IERC20.sol";
interface ICrowdfundFactory {
function mediaAddress() external returns (address);
function logic() external returns (address);
// ERC20 data.
function parameters()
external
returns (
address payable fundingRecipient,
uint256 fundingCap,
uint256 operatorPercent,
uint256 feePercentage
);
}
/**
* @title CrowdfundProxy
* @author MirrorXYZ
*/
contract CrowdfundProxy is CrowdfundStorage, 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 = ICrowdfundFactory(msg.sender).logic();
assembly {
sstore(_IMPLEMENTATION_SLOT, logic)
}
emit Upgraded(logic);
// Crowdfund-specific data.
(
fundingRecipient,
fundingCap,
operatorPercent,
feePercentage
) = ICrowdfundFactory(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 {}
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.6;
/**
* @title CrowdfundStorage
* @author MirrorXYZ
*/
contract CrowdfundStorage {
/**
* @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;
}// 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;
}
}// 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);
}{
"optimizer": {
"enabled": true,
"runs": 2000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"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 CrowdfundStorage.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"}]Contract Creation Code
0x60806040523480156200001157600080fd5b506040516200097e3803806200097e8339810160408190526200003491620003da565b8151829082906200004d90600890602085019062000214565b5080516200006390600990602084019062000214565b506000600a8190555050506000336001600160a01b031663d7dfa0dd6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620000ac57600080fd5b505af1158015620000c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e7919062000371565b9050807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806001600160a01b03167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a2336001600160a01b031663890357306040518163ffffffff1660e01b8152600401608060405180830381600087803b1580156200017e57600080fd5b505af115801562000193573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b9919062000398565b600555600655600455600280546001600160a01b03199081166001600160a01b0393841617909155600180548216968316969096179095556003805490951695169490941790925550506007805460ff1916905550620004db565b82805462000222906200046f565b90600052602060002090601f01602090048101928262000246576000855562000291565b82601f106200026157805160ff191683800117855562000291565b8280016001018555821562000291579182015b828111156200029157825182559160200191906001019062000274565b506200029f929150620002a3565b5090565b5b808211156200029f5760008155600101620002a4565b600082601f830112620002cc57600080fd5b81516001600160401b0380821115620002e957620002e9620004ac565b604051601f8301601f19908116603f01168101908282118183101715620003145762000314620004ac565b816040528381526020925086838588010111156200033157600080fd5b600091505b8382101562000355578582018301518183018401529082019062000336565b83821115620003675760008385830101525b9695505050505050565b6000602082840312156200038457600080fd5b81516200039181620004c2565b9392505050565b60008060008060808587031215620003af57600080fd5b8451620003bc81620004c2565b60208601516040870151606090970151919890975090945092505050565b60008060008060808587031215620003f157600080fd5b8451620003fe81620004c2565b60208601519094506200041181620004c2565b60408601519093506001600160401b03808211156200042f57600080fd5b6200043d88838901620002ba565b935060608701519150808211156200045457600080fd5b506200046387828801620002ba565b91505092959194509250565b600181811c908216806200048457607f821691505b60208210811415620004a657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114620004d857600080fd5b50565b61049380620004eb6000396000f3fe6080604052600436106100c05760003560e01c80637b4044a011610074578063cfd7b0df1161004e578063cfd7b0df14610243578063d7dfa0dd14610270578063e3b2594f146102a4576100c7565b80637b4044a01461020257806395d89b4114610218578063a001ecdd1461022d576100c7565b80631bb534ba116100a55780631bb534ba1461015c578063200d2ed2146101ae578063570ca735146101d5576100c7565b806306fdde031461010d57806318160ddd14610138576100c7565b366100c757005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e818015610109578184f35b8184fd5b34801561011957600080fd5b506101226102ba565b60405161012f9190610396565b60405180910390f35b34801561014457600080fd5b5061014e600a5481565b60405190815260200161012f565b34801561016857600080fd5b506002546101899073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012f565b3480156101ba57600080fd5b506007546101c89060ff1681565b60405161012f9190610355565b3480156101e157600080fd5b506001546101899073ffffffffffffffffffffffffffffffffffffffff1681565b34801561020e57600080fd5b5061014e60065481565b34801561022457600080fd5b50610122610348565b34801561023957600080fd5b5061014e60055481565b34801561024f57600080fd5b506003546101899073ffffffffffffffffffffffffffffffffffffffff1681565b34801561027c57600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610189565b3480156102b057600080fd5b5061014e60045481565b600880546102c790610409565b80601f01602080910402602001604051908101604052809291908181526020018280546102f390610409565b80156103405780601f1061031557610100808354040283529160200191610340565b820191906000526020600020905b81548152906001019060200180831161032357829003601f168201915b505050505081565b600980546102c790610409565b6020810160028310610390577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060208083528351808285015260005b818110156103c3578581018301518582016040015282016103a7565b818111156103d5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061041d57607f821691505b60208210811415610457577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220f6ac1fd7363a36b71a4bc262e40ec0fb4ebd0a0da64a0227886f49edfcc9523864736f6c6343000806003300000000000000000000000021a93be569666527dae0fdbfbe7715299dec120200000000000000000000000059943aa96c8e74276de27690e0b782e5160bc84d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000266d4c4f54555320696e746572696d20746f6b656e20746f206d696e74204c6f747573204e4654000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064d4c4f5455530000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100c05760003560e01c80637b4044a011610074578063cfd7b0df1161004e578063cfd7b0df14610243578063d7dfa0dd14610270578063e3b2594f146102a4576100c7565b80637b4044a01461020257806395d89b4114610218578063a001ecdd1461022d576100c7565b80631bb534ba116100a55780631bb534ba1461015c578063200d2ed2146101ae578063570ca735146101d5576100c7565b806306fdde031461010d57806318160ddd14610138576100c7565b366100c757005b604051366000823760008036837f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d806000843e818015610109578184f35b8184fd5b34801561011957600080fd5b506101226102ba565b60405161012f9190610396565b60405180910390f35b34801561014457600080fd5b5061014e600a5481565b60405190815260200161012f565b34801561016857600080fd5b506002546101899073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161012f565b3480156101ba57600080fd5b506007546101c89060ff1681565b60405161012f9190610355565b3480156101e157600080fd5b506001546101899073ffffffffffffffffffffffffffffffffffffffff1681565b34801561020e57600080fd5b5061014e60065481565b34801561022457600080fd5b50610122610348565b34801561023957600080fd5b5061014e60055481565b34801561024f57600080fd5b506003546101899073ffffffffffffffffffffffffffffffffffffffff1681565b34801561027c57600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610189565b3480156102b057600080fd5b5061014e60045481565b600880546102c790610409565b80601f01602080910402602001604051908101604052809291908181526020018280546102f390610409565b80156103405780601f1061031557610100808354040283529160200191610340565b820191906000526020600020905b81548152906001019060200180831161032357829003601f168201915b505050505081565b600980546102c790610409565b6020810160028310610390577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060208083528351808285015260005b818110156103c3578581018301518582016040015282016103a7565b818111156103d5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061041d57607f821691505b60208210811415610457577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220f6ac1fd7363a36b71a4bc262e40ec0fb4ebd0a0da64a0227886f49edfcc9523864736f6c63430008060033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.