Cryo Explorer Ethereum Mainnet

Address Contract Verified

Address 0x66f0fC0e73F99A055393BBcf7d37C89424D60a8B
Balance 0 ETH
Nonce 1
Code Size 1737 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

1737 bytes
0x608060405234801561000f575f5ffd5b50600436106100cf575f3560e01c806370a082311161007d578063dd62ed3e11610058578063dd62ed3e146101ce578063e0737f7a146101f8578063fe6d812414610202575f5ffd5b806370a082311461017c57806395d89b411461019b578063a9059cbb146101bb575f5ffd5b806323b872dd116100ad57806323b872dd146101455780632ff2e9dc14610158578063313ce5671461016d575f5ffd5b806306fdde03146100d3578063095ea7b31461010c57806318160ddd1461012f575b5f5ffd5b60408051808201909152600b81526a139bd89b194815985d5b1d60aa1b60208201525b6040516101039190610571565b60405180910390f35b61011f61011a3660046105c1565b610241565b6040519015158152602001610103565b6101375f5481565b604051908152602001610103565b61011f6101533660046105e9565b6102ad565b6101376d18e5ff0156dafca953184000000081565b60405160128152602001610103565b61013761018a366004610623565b60016020525f908152604090205481565b6040805180820190915260048152632721262b60e11b60208201526100f6565b61011f6101c93660046105c1565b610337565b6101376101dc366004610643565b600260209081525f928352604080842090915290825290205481565b61020061034c565b005b6102297f0000000000000000000000007564b7c8f067f57debc13d69e458498b5de1eac081565b6040516001600160a01b039091168152602001610103565b335f8181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061029b9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526002602090815260408083203384529091528120545f19811461032157828110156102f9576040516313be252b60e01b815260040160405180910390fd5b6001600160a01b0385165f908152600260209081526040808320338452909152902083820390555b61032c8585856103ee565b506001949350505050565b5f6103433384846103ee565b50600192915050565b336001600160a01b037f0000000000000000000000007564b7c8f067f57debc13d69e458498b5de1eac0161461039557604051633e34a41b60e21b815260040160405180910390fd5b5f54156103b45760405162dc149f60e41b815260040160405180910390fd5b6103ec7f0000000000000000000000007564b7c8f067f57debc13d69e458498b5de1eac06d18e5ff0156dafca95318400000006104e2565b565b6001600160a01b0382166104155760405163a38ca3d960e01b815260040160405180910390fd5b6001600160a01b03831661043c5760405163f38f85c360e01b815260040160405180910390fd5b6001600160a01b0383165f908152600160205260409020548181101561047557604051631e9acf1760e31b815260040160405180910390fd5b6001600160a01b038085165f8181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104d49086815260200190565b60405180910390a350505050565b6001600160a01b03821661050957604051630fa894ad60e01b815260040160405180910390fd5b805f5f8282546105199190610674565b90915550506001600160a01b0382165f818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146105bc575f5ffd5b919050565b5f5f604083850312156105d2575f5ffd5b6105db836105a6565b946020939093013593505050565b5f5f5f606084860312156105fb575f5ffd5b610604846105a6565b9250610612602085016105a6565b929592945050506040919091013590565b5f60208284031215610633575f5ffd5b61063c826105a6565b9392505050565b5f5f60408385031215610654575f5ffd5b61065d836105a6565b915061066b602084016105a6565b90509250929050565b808201808211156102a757634e487b7160e01b5f52601160045260245ffdfea2646970667358221220d9f25e5e1bad3704e88818434bd2b27a568e600e68a8ed54f4882b4c456b3af264736f6c634300081c0033

Verified Source Code Full Match

Compiler: v0.8.28+commit.7893614a EVM: cancun Optimization: Yes (300 runs)
token.sol 108 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

contract AuroraUnit {
    /*//////////////////////////////////////////////////////////////
                                EVENTS
    //////////////////////////////////////////////////////////////*/
    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /*//////////////////////////////////////////////////////////////
                                ERRORS
    //////////////////////////////////////////////////////////////*/
    error TransferToZero();
    error TransferFromZero();
    error InsufficientBalance();
    error InsufficientAllowance();
    error AlreadyInitialized();
    error NotMinter();
    error MintToZero();

    /*//////////////////////////////////////////////////////////////
                               METADATA
    //////////////////////////////////////////////////////////////*/
    string internal constant _NAME   = "Noble Vault";
    string internal constant _SYMBOL = "NBLV";

    function name() public pure returns (string memory) { return _NAME; }
    function symbol() public pure returns (string memory) { return _SYMBOL; }
    function decimals() public pure returns (uint8) { return 18; }

    /*//////////////////////////////////////////////////////////////
                               ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/
    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    /*//////////////////////////////////////////////////////////////
                                IMMUTABLES
    //////////////////////////////////////////////////////////////*/
    address public immutable MINTER;
    uint256 public constant INITIAL_SUPPLY = 505000000000000 * 1e18;

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/
    constructor(address _minter) {
        MINTER = _minter;
    }

    /*//////////////////////////////////////////////////////////////
                              ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/
    function approve(address spender, uint256 amount) public returns (bool) {
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address to, uint256 amount) public returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public returns (bool) {
        uint256 allowed = allowance[from][msg.sender];
        if (allowed != type(uint256).max) {
            if (allowed < amount) revert InsufficientAllowance();
            unchecked { allowance[from][msg.sender] = allowed - amount; }
        }
        _transfer(from, to, amount);
        return true;
    }

    /*//////////////////////////////////////////////////////////////
                              ONE-TIME MINT
    //////////////////////////////////////////////////////////////*/
    function initMint() external {
        if (msg.sender != MINTER) revert NotMinter();
        if (totalSupply != 0) revert AlreadyInitialized();
        _mint(MINTER, INITIAL_SUPPLY);
    }

    /*//////////////////////////////////////////////////////////////
                         INTERNALS: TRANSFER/MINT
    //////////////////////////////////////////////////////////////*/
    function _transfer(address from, address to, uint256 amount) internal {
        if (to == address(0)) revert TransferToZero();
        if (from == address(0)) revert TransferFromZero();

        uint256 fromBal = balanceOf[from];
        if (fromBal < amount) revert InsufficientBalance();

        unchecked {
            balanceOf[from] = fromBal - amount;
            balanceOf[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function _mint(address to, uint256 amount) internal {
        if (to == address(0)) revert MintToZero();
        totalSupply += amount;
        unchecked { balanceOf[to] += amount; }
        emit Transfer(address(0), to, amount);
    }
}

Read Contract

INITIAL_SUPPLY 0x2ff2e9dc → uint256
MINTER 0xfe6d8124 → address
allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 4 functions

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

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
initMint 0xe0737f7a
No parameters
transfer 0xa9059cbb
address to
uint256 amount
returns: bool
transferFrom 0x23b872dd
address from
address to
uint256 amount
returns: bool

Recent Transactions

No transactions found for this address