ETH Price: $2,453.66 (-2.74%)

Token

Songcamp Elektra (ELEKTRA)
 

Overview

Max Total Supply

165,400 ELEKTRA

Holders

205

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
ttc.eth
Balance
300 ELEKTRA

Value
$0.00
0x2fcC020F72E5d2EdD2a24D04f3Dc90D7fDFbD1DD
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TieredCrowdfundProxy

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2021-07-12
*/

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.5;

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

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

    // The factor by which ETH contributions will multiply into crowdfund tokens.
    uint16 internal constant TOKEN_SCALE = 1000;
    uint256 internal constant REENTRANCY_NOT_ENTERED = 1;
    uint256 internal constant REENTRANCY_ENTERED = 2;
    uint8 public constant decimals = 18;

    // ============ Immutable Storage ============

    // The operator has a special role to change contract status.
    address payable public operator;
    address payable public fundingRecipient;
    // We add a hard cap to prevent raising more funds than deemed reasonable.
    uint256 public fundingCap;
    // The operator takes some equity in the tokens, represented by this percent.
    uint256 public operatorPercent;
    string public symbol;
    string public name;

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

    // Represents the current state of the campaign.
    Status public status;
    uint256 internal reentrancy_status;

    // ============ Mutable ERC20 Attributes ============

    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;
    mapping(address => uint256) public nonces;

    // ============ Delegation logic ============
    address public logic;

    // ============ Tiered Campaigns ============
    // Address of the editions contract to purchase from.
    address public editions;
}


// File contracts/TieredCrowdfundProxy.sol


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

    function logic() external returns (address);

    function editions() external returns (address);

    // ERC20 data.
    function parameters()
        external
        returns (
            address payable operator,
            address payable fundingRecipient,
            uint256 fundingCap,
            uint256 operatorPercent,
            string memory name,
            string memory symbol
        );
}

/**
 * @title TieredCrowdfundProxy
 * @author MirrorXYZ
 */
contract TieredCrowdfundProxy is TieredCrowdfundStorage {
    constructor() {
        logic = ITieredCrowdfundFactory(msg.sender).logic();
        editions = ITieredCrowdfundFactory(msg.sender).editions();
        // Crowdfund-specific data.
        (
            operator,
            fundingRecipient,
            fundingCap,
            operatorPercent,
            name,
            symbol
        ) = ITieredCrowdfundFactory(msg.sender).parameters();
        // Initialize mutable storage.
        status = Status.FUNDING;
    }

    fallback() external payable {
        address _impl = logic;
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize())
            let result := delegatecall(gas(), _impl, 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 {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"editions","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 TieredCrowdfundStorage.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"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b50336001600160a01b031663d7dfa0dd6040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156200004e57600080fd5b505af115801562000063573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000899190620003bf565b600c60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550336001600160a01b031663b8ddbcb36040518163ffffffff1660e01b8152600401602060405180830381600087803b158015620000eb57600080fd5b505af115801562000100573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001269190620003bf565b600d60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550336001600160a01b031663890357306040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200018857600080fd5b505af11580156200019d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620001c79190810190620003e6565b60008060016000600260006003600060056000600460008c9190509080519060200190620001f792919062000262565b50508a516200020c919060208d019062000262565b5050989098559790975580546001600160a01b0398891661010098890a908102908a02199091161790558154978716950a94850294909502199095169290921790925550506006805460ff1916905550620004fa565b82805462000270906200048e565b90600052602060002090601f016020900481019282620002945760008555620002df565b82601f10620002af57805160ff1916838001178555620002df565b82800160010185558215620002df579182015b82811115620002df578251825591602001919060010190620002c2565b50620002ed929150620002f1565b5090565b5b80821115620002ed5760008155600101620002f2565b600082601f8301126200031a57600080fd5b81516001600160401b0380821115620003375762000337620004cb565b604051601f8301601f19908116603f01168101908282118183101715620003625762000362620004cb565b816040528381526020925086838588010111156200037f57600080fd5b600091505b83821015620003a3578582018301518183018401529082019062000384565b83821115620003b55760008385830101525b9695505050505050565b600060208284031215620003d257600080fd5b8151620003df81620004e1565b9392505050565b60008060008060008060c087890312156200040057600080fd5b86516200040d81620004e1565b60208801519096506200042081620004e1565b6040880151606089015160808a015192975090955093506001600160401b03808211156200044d57600080fd5b6200045b8a838b0162000308565b935060a08901519150808211156200047257600080fd5b506200048189828a0162000308565b9150509295509295509295565b600181811c90821680620004a357607f821691505b60208210811415620004c557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114620004f757600080fd5b50565b6105c9806200050a6000396000f3fe6080604052600436106100e15760003560e01c80637b4044a01161007f578063b8ddbcb311610059578063b8ddbcb3146102ca578063d7dfa0dd146102f7578063dd62ed3e14610324578063e3b2594f1461035c576100e8565b80637b4044a0146102725780637ecebe001461028857806395d89b41146102b5576100e8565b8063200d2ed2116100bb578063200d2ed2146101ca578063313ce567146101f1578063570ca7351461021857806370a0823114610245576100e8565b806306fdde031461012957806318160ddd146101545780631bb534ba14610178576100e8565b366100e857005b600c5460405173ffffffffffffffffffffffffffffffffffffffff9091169036600082376000803683855af43d806000843e818015610125578184f35b8184fd5b34801561013557600080fd5b5061013e610372565b60405161014b91906104cc565b60405180910390f35b34801561016057600080fd5b5061016a60085481565b60405190815260200161014b565b34801561018457600080fd5b506001546101a59073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014b565b3480156101d657600080fd5b506006546101e49060ff1681565b60405161014b919061048b565b3480156101fd57600080fd5b50610206601281565b60405160ff909116815260200161014b565b34801561022457600080fd5b506000546101a59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561025157600080fd5b5061016a610260366004610436565b60096020526000908152604090205481565b34801561027e57600080fd5b5061016a60035481565b34801561029457600080fd5b5061016a6102a3366004610436565b600b6020526000908152604090205481565b3480156102c157600080fd5b5061013e610400565b3480156102d657600080fd5b50600d546101a59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561030357600080fd5b50600c546101a59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561033057600080fd5b5061016a61033f366004610458565b600a60209081526000928352604080842090915290825290205481565b34801561036857600080fd5b5061016a60025481565b6005805461037f9061053f565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab9061053f565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b505050505081565b6004805461037f9061053f565b803573ffffffffffffffffffffffffffffffffffffffff8116811461043157600080fd5b919050565b60006020828403121561044857600080fd5b6104518261040d565b9392505050565b6000806040838503121561046b57600080fd5b6104748361040d565b91506104826020840161040d565b90509250929050565b60208101600283106104c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060208083528351808285015260005b818110156104f9578581018301518582016040015282016104dd565b8181111561050b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061055357607f821691505b6020821081141561058d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220cec644ee21cdccf7b828fbfa1f15b275c2bc29023800e6bf8a3b9dd1a5baf5fd64736f6c63430008050033

Deployed Bytecode

0x6080604052600436106100e15760003560e01c80637b4044a01161007f578063b8ddbcb311610059578063b8ddbcb3146102ca578063d7dfa0dd146102f7578063dd62ed3e14610324578063e3b2594f1461035c576100e8565b80637b4044a0146102725780637ecebe001461028857806395d89b41146102b5576100e8565b8063200d2ed2116100bb578063200d2ed2146101ca578063313ce567146101f1578063570ca7351461021857806370a0823114610245576100e8565b806306fdde031461012957806318160ddd146101545780631bb534ba14610178576100e8565b366100e857005b600c5460405173ffffffffffffffffffffffffffffffffffffffff9091169036600082376000803683855af43d806000843e818015610125578184f35b8184fd5b34801561013557600080fd5b5061013e610372565b60405161014b91906104cc565b60405180910390f35b34801561016057600080fd5b5061016a60085481565b60405190815260200161014b565b34801561018457600080fd5b506001546101a59073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014b565b3480156101d657600080fd5b506006546101e49060ff1681565b60405161014b919061048b565b3480156101fd57600080fd5b50610206601281565b60405160ff909116815260200161014b565b34801561022457600080fd5b506000546101a59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561025157600080fd5b5061016a610260366004610436565b60096020526000908152604090205481565b34801561027e57600080fd5b5061016a60035481565b34801561029457600080fd5b5061016a6102a3366004610436565b600b6020526000908152604090205481565b3480156102c157600080fd5b5061013e610400565b3480156102d657600080fd5b50600d546101a59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561030357600080fd5b50600c546101a59073ffffffffffffffffffffffffffffffffffffffff1681565b34801561033057600080fd5b5061016a61033f366004610458565b600a60209081526000928352604080842090915290825290205481565b34801561036857600080fd5b5061016a60025481565b6005805461037f9061053f565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab9061053f565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b505050505081565b6004805461037f9061053f565b803573ffffffffffffffffffffffffffffffffffffffff8116811461043157600080fd5b919050565b60006020828403121561044857600080fd5b6104518261040d565b9392505050565b6000806040838503121561046b57600080fd5b6104748361040d565b91506104826020840161040d565b90509250929050565b60208101600283106104c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b600060208083528351808285015260005b818110156104f9578581018301518582016040015282016104dd565b8181111561050b576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600181811c9082168061055357607f821691505b6020821081141561058d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220cec644ee21cdccf7b828fbfa1f15b275c2bc29023800e6bf8a3b9dd1a5baf5fd64736f6c63430008050033

Deployed Bytecode Sourcemap

2456:1144:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3067:5;;3124:4;3118:11;3067:5;;;;;3164:14;3051:13;3118:11;3143:36;3258:1;3255;3239:14;3234:3;3227:5;3220;3207:53;3286:16;3339:4;3336:1;3331:3;3316:28;3367:6;3391:66;;;;3518:4;3513:3;3506:17;3391:66;3433:4;3428:3;3421:17;1124:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1388:26;;;;;;;;;;;;;;;;;;;2354:25:1;;;2342:2;2327:18;1388:26:0;2309:76:1;819:39:0;;;;;;;;;;-1:-1:-1;819:39:0;;;;;;;;;;;847:42:1;835:55;;;817:74;;805:2;790:18;819:39:0;772:125:1;1257:20:0;;;;;;;;;;-1:-1:-1;1257:20:0;;;;;;;;;;;;;;;:::i;616:35::-;;;;;;;;;;;;649:2;616:35;;;;;2562:4:1;2550:17;;;2532:36;;2520:2;2505:18;616:35:0;2487:87:1;781:31:0;;;;;;;;;;-1:-1:-1;781:31:0;;;;;;;;1421:44;;;;;;;;;;-1:-1:-1;1421:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;1060:30;;;;;;;;;;;;;;;;1543:41;;;;;;;;;;-1:-1:-1;1543:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;1097:20;;;;;;;;;;;;;:::i;1783:23::-;;;;;;;;;;-1:-1:-1;1783:23:0;;;;;;;;1644:20;;;;;;;;;;-1:-1:-1;1644:20:0;;;;;;;;1472:64;;;;;;;;;;-1:-1:-1;1472:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;945:25;;;;;;;;;;;;;;;;1124:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1097:20::-;;;;;;;:::i;14:196:1:-;82:20;;142:42;131:54;;121:65;;111:2;;200:1;197;190:12;111:2;63:147;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:2;;;343:1;340;333:12;295:2;366:29;385:9;366:29;:::i;:::-;356:39;285:116;-1:-1:-1;;;285:116:1:o;406:260::-;474:6;482;535:2;523:9;514:7;510:23;506:32;503:2;;;551:1;548;541:12;503:2;574:29;593:9;574:29;:::i;:::-;564:39;;622:38;656:2;645:9;641:18;622:38;:::i;:::-;612:48;;493:173;;;;;:::o;1149:393::-;1289:2;1274:18;;1322:1;1311:13;;1301:2;;1358:77;1355:1;1348:88;1459:4;1456:1;1449:15;1487:4;1484:1;1477:15;1301:2;1511:25;;;1256:286;:::o;1547:656::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:2;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:2;-1:-1:-1;2119:2:1;2107:15;2124:66;2103:88;2088:104;;;;2194:2;2084:113;;1668:535;-1:-1:-1;;;1668:535:1:o;2579:437::-;2658:1;2654:12;;;;2701;;;2722:2;;2776:4;2768:6;2764:17;2754:27;;2722:2;2829;2821:6;2818:14;2798:18;2795:38;2792:2;;;2866:77;2863:1;2856:88;2967:4;2964:1;2957:15;2995:4;2992:1;2985:15;2792:2;;2634:382;;;:::o

Swarm Source

ipfs://cec644ee21cdccf7b828fbfa1f15b275c2bc29023800e6bf8a3b9dd1a5baf5fd
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.