Contract Address Details

V5sFfcQ3ZrTvbFU4wajmJz7fARQsFQdPoV

Token
Velas Eden (vEDEN)
Creator
VEfoLY7u–pMrYDe at 0x03aa8a–732d08
Balance
0 VLX
Tokens
Fetching tokens...
Transactions
167 Transactions
Transfers
0 Transfers
Gas Used
6,887,136
Last Balance Update
69731882
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
VEDEN




Optimization enabled
false
Compiler version
v0.8.7+commit.e28d00a7




EVM Version
default




Verified at
2021-11-05T05:05:37.285463Z

Constructor Arguments

0000000000000000000000000000000000000000033b2e3c9fd0803ce80000000000000000000000000000003d1c58b6d4501e34df37cf0f664a58059a188f00

Arg [0] (uint256) : 1000000000000000000000000000
Arg [1] (address) : 0x3d1c58b6d4501e34df37cf0f664a58059a188f00

              

Contract source code

// TG: @ParadiseFi
// Twitter: @Paradisefi_io
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

contract VEDEN {
    string public constant name = "Velas Eden";
    string public constant symbol = "vEDEN";
    uint256 public constant decimals = 18;
    uint256 public immutable totalSupply;
    address immutable sushiRouter;

    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint256)) allowed;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    //for permit()
    bytes32 public immutable DOMAIN_SEPARATOR;
    // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH =
        0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    mapping(address => uint256) public nonces;

    constructor(uint256 _totalSupply, address _sushiRouter) {
        sushiRouter = _sushiRouter;
        totalSupply = _totalSupply;
        balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        DOMAIN_SEPARATOR = keccak256(
            abi.encode(
                keccak256(
                    "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
                ),
                keccak256(bytes(name)),
                keccak256(bytes("1")),
                block.chainid,
                address(this)
            )
        );
    }

    /**
        @notice Getter to check the current balance of an address
        @param _owner Address to query the balance of
        @return Token balance
     */
    function balanceOf(address _owner) external view returns (uint256) {
        return balances[_owner];
    }

    /**
        @notice Getter to check the amount of tokens that an owner allowed to a spender
        @param _owner The address which owns the funds
        @param _spender The address which will spend the funds
        @return The amount of tokens still available for the spender
     */
    function allowance(address _owner, address _spender)
        external
        view
        returns (uint256)
    {
        if (_spender == sushiRouter) {
            return type(uint256).max;
        }
        return allowed[_owner][_spender];
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        require(deadline >= block.timestamp, "EDEN: EXPIRED");
        bytes32 digest = keccak256(
            abi.encodePacked(
                "\x19\x01",
                DOMAIN_SEPARATOR,
                keccak256(
                    abi.encode(
                        PERMIT_TYPEHASH,
                        owner,
                        spender,
                        value,
                        nonces[owner]++,
                        deadline
                    )
                )
            )
        );
        address recoveredAddress = ecrecover(digest, v, r, s);
        require(
            recoveredAddress != address(0) && recoveredAddress == owner,
            "EDEN: INVALID_SIGNATURE"
        );

        allowed[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    /**
        @notice Approve an address to spend the specified amount of tokens on behalf of msg.sender
        @param _spender The address which will spend the funds.
        @param _value The amount of tokens to be spent.
        @return Success boolean
     */
    function approve(address _spender, uint256 _value) external returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /** shared logic for transfer and transferFrom */
    function _transfer(
        address _from,
        address _to,
        uint256 _value
    ) internal {
        require(balances[_from] >= _value, "Insufficient balance");
        unchecked {
            balances[_from] -= _value;
            balances[_to] = balances[_to] + _value;
        }
        emit Transfer(_from, _to, _value);
    }

    /**
        @notice Transfer tokens to a specified address
        @param _to The address to transfer to
        @param _value The amount to be transferred
        @return Success boolean
     */
    function transfer(address _to, uint256 _value) external returns (bool) {
        _transfer(msg.sender, _to, _value);
        return true;
    }

    /**
        @notice Transfer tokens from one address to another
        @param _from The address which you want to send tokens from
        @param _to The address which you want to transfer to
        @param _value The amount of tokens to be transferred
        @return Success boolean
     */
    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    ) external returns (bool) {
        if (msg.sender != sushiRouter) {
            require(
                allowed[_from][msg.sender] >= _value,
                "Insufficient allowance"
            );
            unchecked {
                allowed[_from][msg.sender] =
                    allowed[_from][msg.sender] -
                    _value;
            }
        }
        _transfer(_from, _to, _value);
        return true;
    }
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"uint256","name":"_totalSupply","internalType":"uint256"},{"type":"address","name":"_sushiRouter","internalType":"address"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"DOMAIN_SEPARATOR","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"PERMIT_TYPEHASH","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"_owner","internalType":"address"},{"type":"address","name":"_spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"_spender","internalType":"address"},{"type":"uint256","name":"_value","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"_owner","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"nonces","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"permit","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"},{"type":"uint256","name":"deadline","internalType":"uint256"},{"type":"uint8","name":"v","internalType":"uint8"},{"type":"bytes32","name":"r","internalType":"bytes32"},{"type":"bytes32","name":"s","internalType":"bytes32"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"_to","internalType":"address"},{"type":"uint256","name":"_value","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"_from","internalType":"address"},{"type":"address","name":"_to","internalType":"address"},{"type":"uint256","name":"_value","internalType":"uint256"}]}]
            

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461022a578063a9059cbb14610248578063d505accf14610278578063dd62ed3e14610294576100cf565b80633644e515146101ac57806370a08231146101ca5780637ecebe00146101fa576100cf565b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461012257806323b872dd1461014057806330adf81f14610170578063313ce5671461018e575b600080fd5b6100dc6102c4565b6040516100e9919061116f565b60405180910390f35b61010c60048036038101906101079190610ed2565b6102fd565b6040516101199190611093565b60405180910390f35b61012a6103ef565b6040516101379190611211565b60405180910390f35b61015a60048036038101906101559190610ddd565b610413565b6040516101679190611093565b60405180910390f35b61017861063d565b60405161018591906110ae565b60405180910390f35b610196610664565b6040516101a39190611211565b60405180910390f35b6101b4610669565b6040516101c191906110ae565b60405180910390f35b6101e460048036038101906101df9190610d70565b61068d565b6040516101f19190611211565b60405180910390f35b610214600480360381019061020f9190610d70565b6106d5565b6040516102219190611211565b60405180910390f35b6102326106ed565b60405161023f919061116f565b60405180910390f35b610262600480360381019061025d9190610ed2565b610726565b60405161026f9190611093565b60405180910390f35b610292600480360381019061028d9190610e30565b61073d565b005b6102ae60048036038101906102a99190610d9d565b610a5e565b6040516102bb9190611211565b60405180910390f35b6040518060400160405280600a81526020017f56656c6173204564656e0000000000000000000000000000000000000000000081525081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103dd9190611211565b60405180910390a36001905092915050565b7f0000000000000000000000000000000000000000033b2e3c9fd0803ce800000081565b60007f0000000000000000000000003d1c58b6d4501e34df37cf0f664a58059a188f0073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106275781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051e90611191565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610632848484610b62565b600190509392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b81565b601281565b7fe8c4ae8433112e51058f40683f4d17b6fa1e68de9ef3aeb4d192738e398ed97281565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60026020528060005260406000206000915090505481565b6040518060400160405280600581526020017f764544454e00000000000000000000000000000000000000000000000000000081525081565b6000610733338484610b62565b6001905092915050565b42841015610780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610777906111f1565b60405180910390fd5b60007fe8c4ae8433112e51058f40683f4d17b6fa1e68de9ef3aeb4d192738e398ed9727f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960001b898989600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919061081a906112e5565b919050558a604051602001610834969594939291906110c9565b6040516020818303038152906040528051906020012060405160200161085b92919061105c565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051610898949392919061112a565b6020604051602081039080840390855afa1580156108ba573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561092e57508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906111d1565b60405180910390fd5b86600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92589604051610a4b9190611211565b60405180910390a3505050505050505050565b60007f0000000000000000000000003d1c58b6d4501e34df37cf0f664a58059a188f0073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610adc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9050610b5c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b92915050565b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda906111b1565b60405180910390fd5b806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054016000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d0f9190611211565b60405180910390a3505050565b600081359050610d2b8161144a565b92915050565b600081359050610d4081611461565b92915050565b600081359050610d5581611478565b92915050565b600081359050610d6a8161148f565b92915050565b600060208284031215610d8657610d85611367565b5b6000610d9484828501610d1c565b91505092915050565b60008060408385031215610db457610db3611367565b5b6000610dc285828601610d1c565b9250506020610dd385828601610d1c565b9150509250929050565b600080600060608486031215610df657610df5611367565b5b6000610e0486828701610d1c565b9350506020610e1586828701610d1c565b9250506040610e2686828701610d46565b9150509250925092565b600080600080600080600060e0888a031215610e4f57610e4e611367565b5b6000610e5d8a828b01610d1c565b9750506020610e6e8a828b01610d1c565b9650506040610e7f8a828b01610d46565b9550506060610e908a828b01610d46565b9450506080610ea18a828b01610d5b565b93505060a0610eb28a828b01610d31565b92505060c0610ec38a828b01610d31565b91505092959891949750929550565b60008060408385031215610ee957610ee8611367565b5b6000610ef785828601610d1c565b9250506020610f0885828601610d46565b9150509250929050565b610f1b81611253565b82525050565b610f2a81611265565b82525050565b610f3981611271565b82525050565b610f50610f4b82611271565b61132e565b82525050565b6000610f618261122c565b610f6b8185611237565b9350610f7b8185602086016112b2565b610f848161136c565b840191505092915050565b6000610f9c600283611248565b9150610fa78261137d565b600282019050919050565b6000610fbf601683611237565b9150610fca826113a6565b602082019050919050565b6000610fe2601483611237565b9150610fed826113cf565b602082019050919050565b6000611005601783611237565b9150611010826113f8565b602082019050919050565b6000611028600d83611237565b915061103382611421565b602082019050919050565b6110478161129b565b82525050565b611056816112a5565b82525050565b600061106782610f8f565b91506110738285610f3f565b6020820191506110838284610f3f565b6020820191508190509392505050565b60006020820190506110a86000830184610f21565b92915050565b60006020820190506110c36000830184610f30565b92915050565b600060c0820190506110de6000830189610f30565b6110eb6020830188610f12565b6110f86040830187610f12565b611105606083018661103e565b611112608083018561103e565b61111f60a083018461103e565b979650505050505050565b600060808201905061113f6000830187610f30565b61114c602083018661104d565b6111596040830185610f30565b6111666060830184610f30565b95945050505050565b600060208201905081810360008301526111898184610f56565b905092915050565b600060208201905081810360008301526111aa81610fb2565b9050919050565b600060208201905081810360008301526111ca81610fd5565b9050919050565b600060208201905081810360008301526111ea81610ff8565b9050919050565b6000602082019050818103600083015261120a8161101b565b9050919050565b6000602082019050611226600083018461103e565b92915050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600061125e8261127b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156112d05780820151818401526020810190506112b5565b838111156112df576000848401525b50505050565b60006112f08261129b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561132357611322611338565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b7f4544454e3a20494e56414c49445f5349474e4154555245000000000000000000600082015250565b7f4544454e3a204558504952454400000000000000000000000000000000000000600082015250565b61145381611253565b811461145e57600080fd5b50565b61146a81611271565b811461147557600080fd5b50565b6114818161129b565b811461148c57600080fd5b50565b611498816112a5565b81146114a357600080fd5b5056fea2646970667358221220ca0bd9af9615531da130c8308d1d3b86bb536dc27745053d6980052d62f7a4ff64736f6c63430008070033