Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x6f40d4A6237C257fff2dB00FA0510DeEECd303eb
Balance 0 ETH
Nonce 1
Code Size 1541 bytes
Indexed Transactions 1 (24,436,67624,436,676)
Gas Used (indexed) 64,319
External Etherscan · Sourcify

Contract Bytecode

1541 bytes
0x6080604052600436106100705760003560e01c80635c60da1b1161004e5780635c60da1b1461015a57806395d89b411461017c578063a41098bf14610191578063bb913f41146101a657610070565b806306fdde03146100eb57806318160ddd14610116578063313ce56714610138575b600080546040516001600160a01b03909116906100909083903690610463565b600060405180830381855af49150503d80600081146100cb576040519150601f19603f3d011682016040523d82523d6000602084013e6100d0565b606091505b505090506040513d6000823e8180156100e7573d82f35b3d82fd5b3480156100f757600080fd5b506101006101c8565b60405161010d91906104a1565b60405180910390f35b34801561012257600080fd5b5061012b610255565b60405161010d91906105a0565b34801561014457600080fd5b5061014d61025b565b60405161010d91906105a9565b34801561016657600080fd5b5061016f610260565b60405161010d9190610473565b34801561018857600080fd5b5061010061026f565b34801561019d57600080fd5b5061016f6102c7565b3480156101b257600080fd5b506101c66101c1366004610424565b6102df565b005b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561024d5780601f106102225761010080835404028352916020019161024d565b820191906000526020600020905b81548152906001019060200180831161023057829003601f168201915b505050505081565b60035481565b601281565b6000546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561024d5780601f106102225761010080835404028352916020019161024d565b732971adfa57b20e5a416ae5a708a8655a9c74f72381565b336001600160a01b0316732971adfa57b20e5a416ae5a708a8655a9c74f7236001600160a01b031663ee97f7f36040518163ffffffff1660e01b815260040160206040518083038186803b15801561033657600080fd5b505afa15801561034a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036e9190610447565b6001600160a01b03161461039d5760405162461bcd60e51b81526004016103949061055c565b60405180910390fd5b6001600160a01b0381166103c35760405162461bcd60e51b8152600401610394906104f4565b600080546001600160a01b038381166001600160a01b031983161792839055604051918116927fd604de94d45953f9138079ec1b82d533cb2160c906d1076d1f7ed54befbca97a926104189285921690610487565b60405180910390a15050565b600060208284031215610435578081fd5b8135610440816105b7565b9392505050565b600060208284031215610458578081fd5b8151610440816105b7565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b818110156104cd578581018301518582016040015282016104b1565b818111156104de5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526042908201527f546f6b656e44656c656761746f723a3a5f736574496d706c656d656e7461746960408201527f6f6e3a20696e76616c696420696d706c656d656e746174696f6e206164647265606082015261737360f01b608082015260a00190565b60208082526024908201527f546b6e3a3a69734d61737465723a206d73672e73656e646572206e6f74206d6160408201526339ba32b960e11b606082015260800190565b90815260200190565b60ff91909116815260200190565b6001600160a01b03811681146105cc57600080fd5b5056fea264697066735822122074bc32cb9e5d16037640c248eea0a737b9df31782067aff0720bf127027e861864736f6c63430007030033

Verified Source Code Full Match

Compiler: v0.7.3+commit.9bfce1f6 EVM: istanbul Optimization: Yes (200 runs)
TokenDelegator.sol 77 lines
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;

import { TokenDelegatorStorage, TokenEvents } from "./TokenInterfaces.sol";

contract InstaToken is TokenDelegatorStorage, TokenEvents {
    constructor(
        address account,
        address implementation_,
        uint initialSupply_,
        uint mintingAllowedAfter_,
        bool transferPaused_
    ) {
        require(implementation_ != address(0), "TokenDelegator::constructor invalid address");
        delegateTo(
            implementation_,
            abi.encodeWithSignature(
                "initialize(address,uint256,uint256,bool)",
                account,
                initialSupply_,
                mintingAllowedAfter_,
                transferPaused_
            )
        );

        implementation = implementation_;

        emit NewImplementation(address(0), implementation);
    }

    /**
     * @notice Called by the admin to update the implementation of the delegator
     * @param implementation_ The address of the new implementation for delegation
     */
    function _setImplementation(address implementation_) external isMaster {
        require(implementation_ != address(0), "TokenDelegator::_setImplementation: invalid implementation address");

        address oldImplementation = implementation;
        implementation = implementation_;

        emit NewImplementation(oldImplementation, implementation);
    }

    /**
     * @notice Internal method to delegate execution to another contract
     * @dev It returns to the external caller whatever the implementation returns or forwards reverts
     * @param callee The contract to delegatecall
     * @param data The raw data to delegatecall
     */
    function delegateTo(address callee, bytes memory data) internal {
        (bool success, bytes memory returnData) = callee.delegatecall(data);
        assembly {
            if eq(success, 0) {
                revert(add(returnData, 0x20), returndatasize())
            }
        }
    }

    /**
     * @dev Delegates execution to an implementation contract.
     * It returns to the external caller whatever the implementation returns
     * or forwards reverts.
     */
    fallback () external payable {
        // delegate all other functions to current implementation
        (bool success, ) = implementation.delegatecall(msg.data);

        assembly {
            let free_mem_ptr := mload(0x40)
            returndatacopy(free_mem_ptr, 0, returndatasize())

            switch success
            case 0 { revert(free_mem_ptr, returndatasize()) }
            default { return(free_mem_ptr, returndatasize()) }
        }
    }
}
TokenInterfaces.sol 102 lines
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;

interface IndexInterface {
    function master() external view returns (address);
}

contract TokenEvents {
    
    /// @notice An event thats emitted when an account changes its delegate
    event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);

    /// @notice An event thats emitted when a delegate account's vote balance changes
    event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance);

    /// @notice An event thats emitted when the minter changes
    event MinterChanged(address indexed oldMinter, address indexed newMinter);

    /// @notice The standard EIP-20 transfer event
    event Transfer(address indexed from, address indexed to, uint256 amount);

    /// @notice The standard EIP-20 approval event
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /// @notice Emitted when implementation is changed
    event NewImplementation(address oldImplementation, address newImplementation);

    /// @notice An event thats emitted when the token transfered is paused
    event TransferPaused(address indexed minter);

    /// @notice An event thats emitted when the token transfered is unpaused
    event TransferUnpaused(address indexed minter);

    /// @notice An event thats emitted when the token symbol is changed
    event ChangedSymbol(string oldSybmol, string newSybmol);

    /// @notice An event thats emitted when the token name is changed
    event ChangedName(string oldName, string newName);
}

contract TokenDelegatorStorage {
    /// @notice InstaIndex contract
    IndexInterface constant public instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723);

    /// @notice Active brains of Token
    address public implementation;

    /// @notice EIP-20 token name for this token
    string public name = "Instadapp";

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

    /// @notice Total number of tokens in circulation
    uint public totalSupply;

    /// @notice EIP-20 token decimals for this token
    uint8 public constant decimals = 18;

    modifier isMaster() {
        require(instaIndex.master() == msg.sender, "Tkn::isMaster: msg.sender not master");
        _;
    }
}

/**
 * @title Storage for Token Delegate
 * @notice For future upgrades, do not change TokenDelegateStorageV1. Create a new
 * contract which implements TokenDelegateStorageV1 and following the naming convention
 * TokenDelegateStorageVX.
 */
contract TokenDelegateStorageV1 is TokenDelegatorStorage {
    /// @notice The timestamp after which minting may occur
    uint public mintingAllowedAfter;

    /// @notice token transfer pause state
    bool public transferPaused;

    // Allowance amounts on behalf of others
    mapping (address => mapping (address => uint96)) internal allowances;

    // Official record of token balances for each account
    mapping (address => uint96) internal balances;

    /// @notice A record of each accounts delegate
    mapping (address => address) public delegates;

    /// @notice A checkpoint for marking number of votes from a given block
    struct Checkpoint {
        uint32 fromBlock;
        uint96 votes;
    }

    /// @notice A record of votes checkpoints for each account, by index
    mapping (address => mapping (uint32 => Checkpoint)) public checkpoints;

    /// @notice The number of checkpoints for each account
    mapping (address => uint32) public numCheckpoints;

    /// @notice A record of states for signing / validating signatures
    mapping (address => uint) public nonces;
}

Read Contract

decimals 0x313ce567 → uint8
implementation 0x5c60da1b → address
instaIndex 0xa41098bf → address
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 1 functions

These functions modify contract state and require a wallet transaction to execute.

_setImplementation 0xbb913f41
address implementation_

Top Interactions

AddressTxnsSentReceived
0xF42AAc93...f173 1 1

Recent Transactions

CSV
|
Hash Method Block Age From/To Value Txn Fee Type
0x79979100...bfe5b0 transfer 24,436,676 IN 0xF42AAc93...f173 0 ETH EIP-1559