ETH Price: $3,390.65 (-2.59%)
Gas: 1 Gwei

Contract

0xa444EC96Ee01bB219A44B285De47bf33C3447ad5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

TokenTracker

LEOX (LEOX) (@$0.5641)
Transaction Hash
Method
Block
From
To
Value
0x2e6d0aee2dae3713909bf492cfabc304a96e7a2ffc431c40806b16ddc8b8988f Approve(pending)2024-06-23 2:31:265 days ago1719109886IN
Galileo Protocol: LEOX Token
0 ETH(Pending)(Pending)
0x7838e50b6df6c5ee5df12e5d785c5ae1c525ee28944675e5b73bdf80d5d2e6d2 Approve(pending)2024-06-23 2:31:235 days ago1719109883IN
Galileo Protocol: LEOX Token
0 ETH(Pending)(Pending)
Transfer201938602024-06-29 0:47:3556 mins ago1719622055IN
Galileo Protocol: LEOX Token
0 ETH0.000092481.97138018
Approve201929642024-06-28 21:46:593 hrs ago1719611219IN
Galileo Protocol: LEOX Token
0 ETH0.000138912.96779964
Transfer201927302024-06-28 21:00:114 hrs ago1719608411IN
Galileo Protocol: LEOX Token
0 ETH0.000130743.78000141
Transfer201925292024-06-28 20:19:115 hrs ago1719605951IN
Galileo Protocol: LEOX Token
0 ETH0.0002978810
Transfer201924892024-06-28 20:11:115 hrs ago1719605471IN
Galileo Protocol: LEOX Token
0 ETH0.000162713.14798155
Transfer201919942024-06-28 18:32:117 hrs ago1719599531IN
Galileo Protocol: LEOX Token
0 ETH0.0005685611
Transfer201915762024-06-28 17:08:118 hrs ago1719594491IN
Galileo Protocol: LEOX Token
0 ETH0.0003872413
Transfer201915622024-06-28 17:05:238 hrs ago1719594323IN
Galileo Protocol: LEOX Token
0 ETH0.000391257.57136358
Transfer201911332024-06-28 15:38:3510 hrs ago1719589115IN
Galileo Protocol: LEOX Token
0 ETH0.0004769916
Transfer201911022024-06-28 15:32:2310 hrs ago1719588743IN
Galileo Protocol: LEOX Token
0 ETH0.0004769916
Transfer201911022024-06-28 15:32:2310 hrs ago1719588743IN
Galileo Protocol: LEOX Token
0 ETH0.0004769916
Transfer201908772024-06-28 14:47:1110 hrs ago1719586031IN
Galileo Protocol: LEOX Token
0 ETH0.00082716
Transfer201902642024-06-28 12:44:1112 hrs ago1719578651IN
Galileo Protocol: LEOX Token
0 ETH0.000415212
Transfer201902142024-06-28 12:34:1113 hrs ago1719578051IN
Galileo Protocol: LEOX Token
0 ETH0.0004149112
Transfer201901892024-06-28 12:29:1113 hrs ago1719577751IN
Galileo Protocol: LEOX Token
0 ETH0.000620412
Transfer201895812024-06-28 10:26:5915 hrs ago1719570419IN
Galileo Protocol: LEOX Token
0 ETH0.0003875513
Approve201889262024-06-28 8:15:3517 hrs ago1719562535IN
Galileo Protocol: LEOX Token
0 ETH0.000242845.19504302
Transfer201886772024-06-28 7:25:3518 hrs ago1719559535IN
Galileo Protocol: LEOX Token
0 ETH0.0003577412
Approve201886402024-06-28 7:17:5918 hrs ago1719559079IN
Galileo Protocol: LEOX Token
0 ETH0.000220884.72513985
Approve201886362024-06-28 7:17:1118 hrs ago1719559031IN
Galileo Protocol: LEOX Token
0 ETH0.000111914.57162644
Approve201878402024-06-28 4:37:1121 hrs ago1719549431IN
Galileo Protocol: LEOX Token
0 ETH0.000141023.03478141
Transfer201876272024-06-28 3:54:1121 hrs ago1719546851IN
Galileo Protocol: LEOX Token
0 ETH0.0005684311
Approve201865992024-06-28 0:27:3525 hrs ago1719534455IN
Galileo Protocol: LEOX Token
0 ETH0.000181383.87515718
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-04-03
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;

contract ERC20 {
    
    //stores current balances
    mapping(address => uint256) private _balances;
    //stores current approvals
    mapping(address => mapping(address => uint256)) private _allowances;
    //current total supply of token
    uint256 private _totalSupply;
    //current token metadata:
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    //the owner address of this contract, i.e. who can mint more tokens
    address private _owner;
    // For each account, a mapping of its account operators.
    mapping(address => mapping(address => bool)) private _accountOperators;
    // The absolute maximum supply that can be reached by minting. 
    uint256 private _maximumSupply;
    // Allow remint of tokens which have been burned.
    bool private _allowRemint;
    // Stores the accumulated burned total
    uint256 private _burnAccumulatedTotal;
        
    /**
     * @dev Emitted when `amount` tokens are moved from one account (`payerId`) to another (`payeeId`).
     *
     * Note that `amount` may be zero.
     */
    event Transfer(address indexed payerId, address indexed payeeId, uint256 amount);

    /**
     * @dev Emitted when the allowance of a `payeeId` for an `payerId` is set by
     * a call to {approve}. `amount` is the new allowance.
     */
    event Approval(address indexed payerId, address indexed payeeId, uint256 amount);

    /**
     * @dev Emitted when tokens are minted or burned.
     */
    event MetaData(string indexed functionName, bytes data);

    /**
     * @dev Emitted when contract owner is changed from `oldContractOwnerId` to `newContractOwnerId`.
     */
    event OwnerChanged(address indexed oldContractOwnerId, address indexed newContractOwnerId);

    /**
     * @dev Emitted when `additionalOwnerAccountId` is authorised by `ownerAccountId`.
     */
    event AuthorizedOperator(address indexed additionalOwnerAccountId, address indexed ownerAccountId);

    /**
     * @dev Emitted when `additionalOwnerAccountId` is revoked by `ownerAccountId`.
     */
    event RevokedOperator(address indexed additionalOwnerAccountId, address indexed ownerAccountId);

    /**
     * @dev Emitted when the batched transactions failed for address `failedAddress` for function `functionName`.
     */
    event BatchFailure(string indexed functionName, address indexed failedAddress);

    /**
     * @dev Sets the values for {_name}, {_symbol}, {_decimals}, {_totalSupply}.
     * Additionally, all of the supply is initially given to the address corresponding to {giveSupplyTo_}
     */
    constructor(string memory name_, string memory symbol_, uint8 decimals_, uint256 supply_, address giveSupplyTo_, address owner_, uint256 maximumSupply_, bool allowRemint_) {
        require(supply_<=maximumSupply_, "Current supply must be less than or equal to max supply");
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
        _totalSupply = supply_;
        _balances[giveSupplyTo_] = supply_;
        _owner = owner_;
        _maximumSupply = maximumSupply_;
        _allowRemint = allowRemint_;

        emit Transfer(address(0), giveSupplyTo_, supply_);
    }

    /**
     * @dev Functions using this modifier restrict the caller to only be the contract owner address (or the account operator of the owner)
     */
   modifier onlyOwner {
        require(isOperatorFor(msg.sender, owner()), "Caller is not the account's operator");
      _;
   }

    /**
     * @dev Moves `amount` tokens from the caller's account to `payeeId`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     *
     * Requirements
     *
     * -  the caller must have at least `amount` tokens.
     * - `payeeId` cannot be the zero address.
     */
    function transfer(address payeeId, uint256 amount) external returns (bool) {
        _transfer(msg.sender, payeeId, amount);
        return true;
    }

    /**
     * @dev Moves `amount` tokens from `payerId` to `payeeId`. The caller must
     * be an account operator of `payerId`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     *
     * Requirements
     *
     * - `payerId` cannot be the zero address.
     * - `payerId` must have at least `amount` tokens.
     * -  the caller must be an account operator for `payerId`.
     * - `payeeId` cannot be the zero address.
     */
    function operatorTransfer(
        address payerId,
        address payeeId,
        uint256 amount
    ) external returns (bool) {
        require(isOperatorFor(msg.sender, payerId), "Caller not an operator for payerId");
        _transfer(payerId, payeeId, amount);
        return true;
    }

    /**
     * @dev Sets `amount` as the allowance of `payeeId` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits an {Approval} event.
     *
     * The if statement makes sure that this contract's approval system is not 
     * vulnerable to teh race condition (where a payee spends the previous
     * and new allowance)
     *
     * Requirements
     *
     * - the caller must have at least `amount` tokens.
     * - `payeeId` cannot be the zero address.
     */
    function approve(address payeeId, uint256 amount) external returns (bool) {
        if (_allowances[msg.sender][payeeId] > 0){
            require(amount == 0, "Must set approval to zero before setting new approval"); //otherwise approve call would be vulnerable to race condition. Need to set approval to zero first             
        }
        _approve(msg.sender, payeeId, amount);
        return true;
    }

    /**
     * @dev Approves `amount` tokens from `payerId` to `payeeId`. The caller must
     * be an account operator of `payerId`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * The if statement makes sure that this contract's approval system is not 
     * vulnerable to the race condition (where a payee spends the previous
     * and new allowance)
     *
     * Emits a {Approval} event.
     *
     * Requirements
     *
     * - `payerId` cannot be the zero address.
     * - `payerId` must have at least `amount` tokens.
     * - the caller must be an account operator for `payerId`.
     * - `payeeId` cannot be the zero address.
     */
    function operatorApprove(
        address payerId,
        address payeeId,
        uint256 amount
    ) external returns (bool) {
        require(isOperatorFor(msg.sender, payerId), "Caller is not an account operator for payerId");
        if (_allowances[payerId][payeeId] > 0){
            require(amount == 0, "Must cancel previous approval"); //otherwise approve call would be vulnerable to race condition. Need to set approval to zero first     
        }
        _approve(payerId, payeeId, amount);
        return true;
    }

    /**
     * @dev Moves `amount` tokens from `payerId` to `payeeId` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     *
     * Requirements
     *
     * - `payerId` cannot be the zero address.
     * - the caller must have at least `amount` tokens approved tokens from `payeeId`.
     * - `payeeId` cannot be the zero address.
     */
    function transferFrom(address payerId, address payeeId, uint256 amount) external returns (bool) {
        _spendAllowance(payerId, msg.sender, amount);  // Decrease the msg.sender's approved spend amount
        _transfer(payerId, payeeId, amount);    // Transfer funds from the payerId to the payeeId as specified by the approved msg.sender
        return true;
    }

    /**
     * @dev Moves `amount` tokens from `payerId` to `payeeId` using the
     * allowance mechanism. `amount` is then deducted from the 'payerId'
     * allowance.
     *
     * Emits a {Transfer} event.
     *
     * Requirements
     *
     * - `payerId` cannot be the zero address.
     * - `payeeId` must have at least `amount` approved tokens from `payeeId`.
     * -  the caller must be an account operator for `payeeId`.
     * - `payeeId` cannot be the zero address.
     */
    function operatorTransferFrom(
        address payerId,
        address payeeId,
        uint256 amount
    ) external {
        require(isOperatorFor(msg.sender, payeeId), "Caller not an operator for payeeId");
        _spendAllowance(payerId, payeeId, amount);
        _transfer(payerId, payeeId, amount);
    }


    /** @dev Creates `amount` tokens and assigns them to `beneficiaryAccountId`, increasing
     * the total supply. Metadata can be assigned to this mint via the 'message' 
     * parameter if required.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     * Emits a {MetaData} event.
     *
     * Requirements:
     *
     * - `beneficiaryAccountId` cannot be the zero address.
     * - `msg.sender` must be the contract's owner address.
     */
    function mint(address beneficiaryAccountId, uint256 amount, bytes calldata data) external onlyOwner() returns (bool) {
        require(beneficiaryAccountId != address(0), "Zero address used");
        require((_allowRemint && _maximumSupply >= (_totalSupply + amount)) ||
                (!_allowRemint && (_maximumSupply >= (_totalSupply + amount + _burnAccumulatedTotal))) , "Minting would exceed the configured maximum supply.");

        _totalSupply += amount;
        _balances[beneficiaryAccountId] += amount;
        
        emit Transfer(address(0), beneficiaryAccountId, amount);
        emit MetaData("mint", data);

        return true;
    }

    /**
     * @dev Destroys `amount` tokens from the sender's address, reducing the
     * total supply. Metadata can be assigned to this burn via the 'data' 
     * parameter if required.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     * Emits a {MetaData} event.
     *
     * Requirements:
     *
     * - the caller's account must have at least `amount` tokens.
     */
    function burn(uint256 amount, bytes calldata data) external returns (bool) {
        _burn(msg.sender, amount, data);
        return true;
    }

    /**
     * @dev Destroys `amount` tokens from `payerId`, reducing the total supply.
     * Metadata can be assigned to this burn via the 'data' parameter if required.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     * Emits a {MetaData} event.
     *
     * Requirements
     *
     * - `payerId` cannot be the zero address.
     * - `payerId` must have at least `amount` tokens.
     * - the caller must be an account operator for `payerId`.
     */
    function operatorBurn(address payerId, uint256 amount, bytes calldata data) external returns (bool) {
        require(isOperatorFor(msg.sender, payerId), "Caller not an operator for payerId");
        _burn(payerId, amount, data);
        return true;
    }

    /**
     * @dev Changes the contract owner to 'newContractOwnerId', i.e. who can mint new tokens
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Requirements:
     *
     * - caller must have the owner role.
     */
    function changeOwner(address newContractOwnerId) external onlyOwner() returns (bool) {
        require(newContractOwnerId != address(0x0), "Zero address used");
        address oldOwner = _owner;
        _owner = newContractOwnerId;
        emit OwnerChanged(oldOwner, newContractOwnerId);
        return true;
    }


    /**
     * @dev Make `AdditionalOwnerAccountId` an account operator of caller.
     *
     * Emits an {AuthorizedOperator} event.
     *
     * Requirements:
     *
     * - `AdditionalOwnerAccountId` must not equal the caller.
     */
    function authorizeOperator(address additionalOwnerAccountId) external {
        require(msg.sender != additionalOwnerAccountId, "Authorizing self as operator");

        _accountOperators[msg.sender][additionalOwnerAccountId] = true;

        emit AuthorizedOperator(additionalOwnerAccountId, msg.sender);
    }

    /**
     * @dev Revoke `additionalOwnerAccountId`'s account operator status for caller.
     *
     * Emits a {RevokedOperator} event.
     *
     * Requirements:
     *
     * - `additionalOwnerAccountId` must not equal the caller.
     */
    function revokeOperator(address additionalOwnerAccountId) external {

        delete _accountOperators[msg.sender][additionalOwnerAccountId];

        emit RevokedOperator(additionalOwnerAccountId, msg.sender);
    }


    /**
     * @dev Same logic as calling the transfer function multiple times.
     * where payeeIds[x] receives amounts[x] tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     * If the operation failed, the payeeId causing the first failure will be returned;
     *
     * Emits a {Transfer} event for every transfer.
     *
     * Requirements:
     *
     * - `payerId` cannot be the zero address.
     * - `payerId` must have a balance of at least the total of the `amounts` array.
     * -  the caller must be `payerId` or an account operator for `payerId`.
     * -  Each `payeeIds[x]` cannot be the zero address.
     */
    function transferBatch(address payerId, address[] calldata payeeIds, uint256[] calldata amounts) external returns (bool, address) {
        require(isOperatorFor(msg.sender, payerId), "Caller not an operator for payerId");
        uint count;
        uint size = payeeIds.length;
        while (count < size){
            if (balanceOf(payerId) < amounts[count]){
                emit BatchFailure("transfer", payeeIds[count]); //alerts the listener to the address that failed the batch
                return (false, payeeIds[count]);
            }
            _transfer(payerId, payeeIds[count], amounts[count]);
            count++;
        }
        return (true, address(0x0));
    }


    /**
     * @dev Same logic as calling the transferFrom function multiple times.
     * where payeeId attempts to debit amounts[X] tokens from payerIds[X].
     * If a particular debit did is not possible (as the allowance is not high enough
     * for this particular payerIds[X]), the batch continues. 
     *
     * Returns firstly a boolean value indicating whether the batch transfer succeeded for every given payerId (true)
     * or if the batch transfer failed for some payerIds (false). If false, then the payerIds that could not
     * perform the transfer are also returned;
     *
     * Emits a {Transfer} event for every transfer
     *
     * Requirements
     *
     * -  Each `payerIds[x]` cannot be the zero address.
     * - `payeeId` must have at least `amount[x]` approved tokens from each `payerIds[x]`.
     * -  the caller must be `payeeId` or an account operator for `payeeId`.
     * -  `payeeId` cannot be the zero address.
     */
    function transferFromBatch(address payeeId, address[] calldata payerIds, uint256[] calldata amounts) external returns (bool) {
        require(isOperatorFor(msg.sender, payeeId), "Caller not an operator for payeeId");
        require(payerIds.length == amounts.length, "Length of 'payerIds' and 'amounts' arrays are not equal");

        uint count;
        uint size = payerIds.length;
        bool success = true;

        while (count < size){
            //
            if ((balanceOf(payerIds[count]) < amounts[count]) || (amounts[count] > allowance(payerIds[count], payeeId))){
                success = false;
                emit BatchFailure("transferFrom", payerIds[count]);
            } else {
                //only perform the transfer from if it will succeed
                _spendAllowance(payerIds[count], payeeId, amounts[count]);  // Decrease the payeeId's approved spend amount
                _transfer(payerIds[count], payeeId, amounts[count]);    // Transfer funds from the payerId to the payeeId as specified by the approved msg.sender
            }
            count++;
        }
        return success;
    }


    /**
     * @dev Moves `amount` of tokens from `payerId` to `payeeId`.
     *
     * This internal function is equivalent to {transfer}
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `payerId` cannot be the zero address.
     * - `payeeId` cannot be the zero address.
     * - `payerId` must have a balance of at least `amount`.
     */
    function _transfer(address payerId, address payeeId, uint256 amount) private {
        require(payerId != address(0), "Zero address used");
        require(payeeId != address(0), "Zero address used");
        require(payeeId != address(this), "Contract address used");

        uint256 senderBalance = _balances[payerId];
        require(senderBalance >= amount, "Amount exceeds balance");
        unchecked {
            _balances[payerId] = senderBalance - amount;
        }
        _balances[payeeId] += amount;

        emit Transfer(payerId, payeeId, amount);

    }

    /**
     * @dev Burns (deletes) `amount` of tokens from `payerId`, with optional metadata `data`.
     *
     * Emits a {Transfer} event.
     * Emits a {MetaData} event.
     *
     * Requirements:
     *
     * - `payerId` cannot be the zero address.
     * - `payerId` must have a balance of at least `amount`.
     */
    function _burn(address payerId, uint256 amount, bytes calldata data) private {

        require(payerId != address(0), "Zero address used");

        uint256 accountBalance = _balances[payerId];
        require(accountBalance >= amount, "Amount exceeds balance");
        unchecked {
            _balances[payerId] = accountBalance - amount;
        }
        _totalSupply -= amount;        
        _burnAccumulatedTotal += amount;

        emit Transfer(payerId, address(0), amount);
        emit MetaData("burn", data);
    }

    /**
     * @dev Sets `amount` as the allowance of `payeeId` over the `payerId` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `payerId` cannot be the zero address.
     * - `payeeId` cannot be the zero address.
     */
    function _approve(address payerId, address payeeId, uint256 amount) private {
        require(payerId != address(0), "Zero address used");
        require(payeeId != address(0), "Zero address used");

        _allowances[payerId][payeeId] = amount;
        emit Approval(payerId, payeeId, amount);
    }

    /**
     * @dev Reduces the allowance `amount` of tokens approved by the `payerId` to the spender
     * In the case of max approval the allowance will not reduce unless the user sets the approval directly
     */
    function _spendAllowance(address payerId, address spender, uint256 amount) private {
        uint256 currentAllowance = allowance(payerId, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "Amount exceeds allowance");
            unchecked {
                _approve(payerId, spender, currentAllowance - amount);
            }
        }
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei.
     *
     * NOTE: This information is only used for display purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {balanceOf} and {transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

     /**
     * @dev Returns the amount of tokens in existence.
     *
     * This value changes when {mint} and {burn} are called.
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Returns the address with the owner role of this token contract, 
     * i.e. what address can mint new tokens.
     * if a multi-sig account operator is required, this address should 
     * point to a smart contract implementing this multi-sig.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Returns the amount of tokens owned by `accountId`.
     *
     * This value changes when {transfer} and {transferFrom} are called.
     */
    function balanceOf(address accountId) public view returns (uint256) {
        return _balances[accountId];
    }

    /**
     *
     * Returns the maximum supply that can be reached by minting new tokens. A maximumSupply of zero means the supply is unlimited. 
     *
    */
    function maximumSupply() public view returns(uint256) {
        return _maximumSupply;
    }

    /**
     *
     * Returns the running total of the number of tokens burned
     *
    */
    function burnAccumulatedTotal() public view returns(uint256) {
        return _burnAccumulatedTotal;
    }

    /**
     * @dev Returns the remaining number of tokens that `payeeId` will be
     * allowed to spend on behalf of `payerId` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address payerId, address payeeId) public view returns (uint256) {
        return _allowances[payerId][payeeId];
    }

    /**
     * @dev Returns true if `AdditionalOwnerAccountId` is an account operator of `OwnerAccountId`.
     * Account operators can send and burn tokens for an authorised account. All
     * accounts are their own account operator.
     */
    function isOperatorFor(address AdditionalOwnerAccountId, address OwnerAccountId) public view returns (bool) {
        return
            AdditionalOwnerAccountId == OwnerAccountId ||
            _accountOperators[OwnerAccountId][AdditionalOwnerAccountId];
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"uint256","name":"supply_","type":"uint256"},{"internalType":"address","name":"giveSupplyTo_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"maximumSupply_","type":"uint256"},{"internalType":"bool","name":"allowRemint_","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payerId","type":"address"},{"indexed":true,"internalType":"address","name":"payeeId","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"additionalOwnerAccountId","type":"address"},{"indexed":true,"internalType":"address","name":"ownerAccountId","type":"address"}],"name":"AuthorizedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"functionName","type":"string"},{"indexed":true,"internalType":"address","name":"failedAddress","type":"address"}],"name":"BatchFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"functionName","type":"string"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"MetaData","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldContractOwnerId","type":"address"},{"indexed":true,"internalType":"address","name":"newContractOwnerId","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"additionalOwnerAccountId","type":"address"},{"indexed":true,"internalType":"address","name":"ownerAccountId","type":"address"}],"name":"RevokedOperator","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"payerId","type":"address"},{"indexed":true,"internalType":"address","name":"payeeId","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"payerId","type":"address"},{"internalType":"address","name":"payeeId","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"payeeId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"additionalOwnerAccountId","type":"address"}],"name":"authorizeOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"accountId","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnAccumulatedTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newContractOwnerId","type":"address"}],"name":"changeOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"AdditionalOwnerAccountId","type":"address"},{"internalType":"address","name":"OwnerAccountId","type":"address"}],"name":"isOperatorFor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maximumSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"beneficiaryAccountId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"payerId","type":"address"},{"internalType":"address","name":"payeeId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"operatorApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payerId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"operatorBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payerId","type":"address"},{"internalType":"address","name":"payeeId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"operatorTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payerId","type":"address"},{"internalType":"address","name":"payeeId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"operatorTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"additionalOwnerAccountId","type":"address"}],"name":"revokeOperator","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"payeeId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payerId","type":"address"},{"internalType":"address[]","name":"payeeIds","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"transferBatch","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payerId","type":"address"},{"internalType":"address","name":"payeeId","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"payeeId","type":"address"},{"internalType":"address[]","name":"payerIds","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"transferFromBatch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162001c6238038062001c62833981016040819052620000349162000264565b81851115620000af5760405162461bcd60e51b815260206004820152603760248201527f43757272656e7420737570706c79206d757374206265206c657373207468616e60448201527f206f7220657175616c20746f206d617820737570706c79000000000000000000606482015260840160405180910390fd5b6003620000bd8982620003c3565b506004620000cc8882620003c3565b506005805460ff1990811660ff891617825560028790556001600160a01b038681166000818152602081815260408083208c90558654610100600160a81b031916610100958b16959095029490941790955560078790556008805490941686151517909355905188815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050505050506200048f565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200019957600080fd5b81516001600160401b0380821115620001b657620001b662000171565b604051601f8301601f19908116603f01168101908282118183101715620001e157620001e162000171565b81604052838152602092508683858801011115620001fe57600080fd5b600091505b8382101562000222578582018301518183018401529082019062000203565b600093810190920192909252949350505050565b80516001600160a01b03811681146200024e57600080fd5b919050565b805180151581146200024e57600080fd5b600080600080600080600080610100898b0312156200028257600080fd5b88516001600160401b03808211156200029a57600080fd5b620002a88c838d0162000187565b995060208b0151915080821115620002bf57600080fd5b50620002ce8b828c0162000187565b975050604089015160ff81168114620002e657600080fd5b60608a01519096509450620002fe60808a0162000236565b93506200030e60a08a0162000236565b925060c089015191506200032560e08a0162000253565b90509295985092959890939650565b600181811c908216806200034957607f821691505b6020821081036200036a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003be57600081815260208120601f850160051c81016020861015620003995750805b601f850160051c820191505b81811015620003ba57828155600101620003a5565b5050505b505050565b81516001600160401b03811115620003df57620003df62000171565b620003f781620003f0845462000334565b8462000370565b602080601f8311600181146200042f5760008415620004165750858301515b600019600386901b1c1916600185901b178555620003ba565b600085815260208120601f198616915b8281101562000460578886015182559484019460019091019084016200043f565b50858210156200047f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6117c3806200049f6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638fd10f72116100c3578063ce30b8d91161007c578063ce30b8d914610302578063cf828b5314610315578063d95b63711461031d578063dd62ed3e14610330578063fad8b32a14610343578063fe9d93031461035657600080fd5b80638fd10f721461027c57806394d008ef146102ae578063959b8c3f146102c157806395d89b41146102d4578063a6f9dae1146102dc578063a9059cbb146102ef57600080fd5b806318160ddd1161011557806318160ddd146101e757806323b872dd146101ef578063313ce5671461020257806370a08231146102175780637c514984146102405780638da5cb5b1461025357600080fd5b806303679fc71461015d5780630480e58b1461017257806306fdde0314610189578063095ea7b31461019e5780630c297029146101c15780630d1af103146101d4575b600080fd5b61017061016b36600461130f565b610369565b005b6007545b6040519081526020015b60405180910390f35b6101916103b3565b604051610180919061134b565b6101b16101ac366004611399565b610445565b6040519015158152602001610180565b6101b16101cf36600461130f565b6104ef565b6101b16101e236600461130f565b6105eb565b600254610176565b6101b16101fd36600461130f565b61061e565b60055460405160ff9091168152602001610180565b6101766102253660046113c3565b6001600160a01b031660009081526020819052604090205490565b6101b161024e36600461142a565b61062b565b60055461010090046001600160a01b03166040516001600160a01b039091168152602001610180565b61028f61028a36600461142a565b6108a7565b6040805192151583526001600160a01b03909116602083015201610180565b6101b16102bc3660046114ed565b610a2d565b6101706102cf3660046113c3565b610c2c565b610191610cdc565b6101b16102ea3660046113c3565b610ceb565b6101b16102fd366004611399565b610dac565b6101b16103103660046114ed565b610db9565b600954610176565b6101b161032b366004611547565b610df8565b61017661033e366004611547565b610e46565b6101706103513660046113c3565b610e71565b6101b161036436600461157a565b610ec6565b6103733383610df8565b6103985760405162461bcd60e51b815260040161038f906115c6565b60405180910390fd5b6103a3838383610ed4565b6103ae838383610f4e565b505050565b6060600380546103c290611608565b80601f01602080910402602001604051908101604052809291908181526020018280546103ee90611608565b801561043b5780601f106104105761010080835404028352916020019161043b565b820191906000526020600020905b81548152906001019060200180831161041e57829003601f168201915b5050505050905090565b3360009081526001602090815260408083206001600160a01b0386168452909152812054156104da5781156104da5760405162461bcd60e51b815260206004820152603560248201527f4d7573742073657420617070726f76616c20746f207a65726f206265666f7265604482015274081cd95d1d1a5b99c81b995dc8185c1c1c9bdd985b605a1b606482015260840161038f565b6104e53384846110dd565b5060015b92915050565b60006104fb3385610df8565b61055d5760405162461bcd60e51b815260206004820152602d60248201527f43616c6c6572206973206e6f7420616e206163636f756e74206f70657261746f60448201526c1c88199bdc881c185e595c9259609a1b606482015260840161038f565b6001600160a01b03808516600090815260016020908152604080832093871683529290522054156105d65781156105d65760405162461bcd60e51b815260206004820152601d60248201527f4d7573742063616e63656c2070726576696f757320617070726f76616c000000604482015260640161038f565b6105e18484846110dd565b5060019392505050565b60006105f73385610df8565b6106135760405162461bcd60e51b815260040161038f90611642565b6105e1848484610f4e565b6000610613843384610ed4565b60006106373387610df8565b6106535760405162461bcd60e51b815260040161038f906115c6565b8382146106c85760405162461bcd60e51b815260206004820152603760248201527f4c656e677468206f66202770617965724964732720616e642027616d6f756e7460448201527f73272061727261797320617265206e6f7420657175616c000000000000000000606482015260840161038f565b60008460015b8183101561089b578585848181106106e8576106e8611684565b9050602002013561071989898681811061070457610704611684565b905060200201602081019061022591906113c3565b108061076b575061075088888581811061073557610735611684565b905060200201602081019061074a91906113c3565b8a610e46565b86868581811061076257610762611684565b90506020020135115b156107f75750600087878481811061078557610785611684565b905060200201602081019061079a91906113c3565b6001600160a01b03166040516107c2906b7472616e7366657246726f6d60a01b8152600c0190565b604051908190038120907f9ced85143b46956397827f2830e092929d343270e8524450940e1c3ae71befe190600090a3610889565b61084088888581811061080c5761080c611684565b905060200201602081019061082191906113c3565b8a88888781811061083457610834611684565b90506020020135610ed4565b61088988888581811061085557610855611684565b905060200201602081019061086a91906113c3565b8a88888781811061087d5761087d611684565b90506020020135610f4e565b82610893816116b0565b9350506106ce565b98975050505050505050565b6000806108b43388610df8565b6108d05760405162461bcd60e51b815260040161038f90611642565b6000855b80821015610a18578585838181106108ee576108ee611684565b905060200201356109148a6001600160a01b031660009081526020819052604090205490565b10156109c95787878381811061092c5761092c611684565b905060200201602081019061094191906113c3565b6001600160a01b031660405161096590673a3930b739b332b960c11b815260080190565b604051908190038120907f9ced85143b46956397827f2830e092929d343270e8524450940e1c3ae71befe190600090a360008888848181106109a9576109a9611684565b90506020020160208101906109be91906113c3565b935093505050610a23565b610a06898989858181106109df576109df611684565b90506020020160208101906109f491906113c3565b88888681811061087d5761087d611684565b81610a10816116b0565b9250506108d4565b600160009350935050505b9550959350505050565b6000610a4b3361032b6005546001600160a01b036101009091041690565b610a675760405162461bcd60e51b815260040161038f906116c9565b6001600160a01b038516610a8d5760405162461bcd60e51b815260040161038f9061170d565b60085460ff168015610aae575083600254610aa89190611738565b60075410155b80610ae3575060085460ff16158015610ae3575060095484600254610ad39190611738565b610add9190611738565b60075410155b610b4b5760405162461bcd60e51b815260206004820152603360248201527f4d696e74696e6720776f756c64206578636565642074686520636f6e666967756044820152723932b21036b0bc34b6bab69039bab838363c9760691b606482015260840161038f565b8360026000828254610b5d9190611738565b90915550506001600160a01b03851660009081526020819052604081208054869290610b8a908490611738565b90915550506040518481526001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604051631b5a5b9d60e21b815260040160405180910390207fb8ed7b1dcec9fe99007e055ff92bdea26fa8e2b943868e40eaa7d1c72d2743028484604051610c1992919061174b565b60405180910390a2506001949350505050565b6001600160a01b0381163303610c845760405162461bcd60e51b815260206004820152601c60248201527f417574686f72697a696e672073656c66206173206f70657261746f7200000000604482015260640161038f565b3360008181526006602090815260408083206001600160a01b0386168085529252808320805460ff191660011790555190917ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f991a350565b6060600480546103c290611608565b6000610d093361032b6005546001600160a01b036101009091041690565b610d255760405162461bcd60e51b815260040161038f906116c9565b6001600160a01b038216610d4b5760405162461bcd60e51b815260040161038f9061170d565b600580546001600160a01b03848116610100818102610100600160a81b031985161790945560405193909204169182907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a360019150505b919050565b60006104e5338484610f4e565b6000610dc53386610df8565b610de15760405162461bcd60e51b815260040161038f90611642565b610ded8585858561118a565b506001949350505050565b6000816001600160a01b0316836001600160a01b03161480610e3f57506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3360008181526006602090815260408083206001600160a01b0386168085529252808320805460ff191690555190917f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa191a350565b60006105e13385858561118a565b6000610ee08484610e46565b90506000198114610f485781811015610f3b5760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206578636565647320616c6c6f77616e63650000000000000000604482015260640161038f565b610f4884848484036110dd565b50505050565b6001600160a01b038316610f745760405162461bcd60e51b815260040161038f9061170d565b6001600160a01b038216610f9a5760405162461bcd60e51b815260040161038f9061170d565b306001600160a01b03831603610fea5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd081859191c995cdcc81d5cd959605a1b604482015260640161038f565b6001600160a01b0383166000908152602081905260409020548181101561104c5760405162461bcd60e51b8152602060048201526016602482015275416d6f756e7420657863656564732062616c616e636560501b604482015260640161038f565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611083908490611738565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110cf91815260200190565b60405180910390a350505050565b6001600160a01b0383166111035760405162461bcd60e51b815260040161038f9061170d565b6001600160a01b0382166111295760405162461bcd60e51b815260040161038f9061170d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0384166111b05760405162461bcd60e51b815260040161038f9061170d565b6001600160a01b038416600090815260208190526040902054838110156112125760405162461bcd60e51b8152602060048201526016602482015275416d6f756e7420657863656564732062616c616e636560501b604482015260640161038f565b6001600160a01b038516600090815260208190526040812085830390556002805486929061124190849061177a565b92505081905550836009600082825461125a9190611738565b90915550506040518481526000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405163313ab93760e11b815260040160405180910390207fb8ed7b1dcec9fe99007e055ff92bdea26fa8e2b943868e40eaa7d1c72d27430284846040516112e992919061174b565b60405180910390a25050505050565b80356001600160a01b0381168114610da757600080fd5b60008060006060848603121561132457600080fd5b61132d846112f8565b925061133b602085016112f8565b9150604084013590509250925092565b600060208083528351808285015260005b818110156113785785810183015185820160400152820161135c565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156113ac57600080fd5b6113b5836112f8565b946020939093013593505050565b6000602082840312156113d557600080fd5b610e3f826112f8565b60008083601f8401126113f057600080fd5b50813567ffffffffffffffff81111561140857600080fd5b6020830191508360208260051b850101111561142357600080fd5b9250929050565b60008060008060006060868803121561144257600080fd5b61144b866112f8565b9450602086013567ffffffffffffffff8082111561146857600080fd5b61147489838a016113de565b9096509450604088013591508082111561148d57600080fd5b5061149a888289016113de565b969995985093965092949392505050565b60008083601f8401126114bd57600080fd5b50813567ffffffffffffffff8111156114d557600080fd5b60208301915083602082850101111561142357600080fd5b6000806000806060858703121561150357600080fd5b61150c856112f8565b935060208501359250604085013567ffffffffffffffff81111561152f57600080fd5b61153b878288016114ab565b95989497509550505050565b6000806040838503121561155a57600080fd5b611563836112f8565b9150611571602084016112f8565b90509250929050565b60008060006040848603121561158f57600080fd5b83359250602084013567ffffffffffffffff8111156115ad57600080fd5b6115b9868287016114ab565b9497909650939450505050565b60208082526022908201527f43616c6c6572206e6f7420616e206f70657261746f7220666f72207061796565604082015261125960f21b606082015260800190565b600181811c9082168061161c57607f821691505b60208210810361163c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526022908201527f43616c6c6572206e6f7420616e206f70657261746f7220666f72207061796572604082015261125960f21b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016116c2576116c261169a565b5060010190565b60208082526024908201527f43616c6c6572206973206e6f7420746865206163636f756e742773206f70657260408201526330ba37b960e11b606082015260800190565b60208082526011908201527016995c9bc81859191c995cdcc81d5cd959607a1b604082015260600190565b808201808211156104e9576104e961169a565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b818103818111156104e9576104e961169a56fea2646970667358221220ad028ba2df50c1aaf446fc39e9812d2161040118e752016e3710c99b66453e7d64736f6c6343000810003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000017ee212c2da8cf8d7400000000000000000000000000000c9359d1e63f79a01c875b51bf71823dc2e597900000000000000000000000000c9359d1e63f79a01c875b51bf71823dc2e597900000000000000000000000000000000000000000007c13bc4b2c133c56000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000044c454f580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044c454f5800000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638fd10f72116100c3578063ce30b8d91161007c578063ce30b8d914610302578063cf828b5314610315578063d95b63711461031d578063dd62ed3e14610330578063fad8b32a14610343578063fe9d93031461035657600080fd5b80638fd10f721461027c57806394d008ef146102ae578063959b8c3f146102c157806395d89b41146102d4578063a6f9dae1146102dc578063a9059cbb146102ef57600080fd5b806318160ddd1161011557806318160ddd146101e757806323b872dd146101ef578063313ce5671461020257806370a08231146102175780637c514984146102405780638da5cb5b1461025357600080fd5b806303679fc71461015d5780630480e58b1461017257806306fdde0314610189578063095ea7b31461019e5780630c297029146101c15780630d1af103146101d4575b600080fd5b61017061016b36600461130f565b610369565b005b6007545b6040519081526020015b60405180910390f35b6101916103b3565b604051610180919061134b565b6101b16101ac366004611399565b610445565b6040519015158152602001610180565b6101b16101cf36600461130f565b6104ef565b6101b16101e236600461130f565b6105eb565b600254610176565b6101b16101fd36600461130f565b61061e565b60055460405160ff9091168152602001610180565b6101766102253660046113c3565b6001600160a01b031660009081526020819052604090205490565b6101b161024e36600461142a565b61062b565b60055461010090046001600160a01b03166040516001600160a01b039091168152602001610180565b61028f61028a36600461142a565b6108a7565b6040805192151583526001600160a01b03909116602083015201610180565b6101b16102bc3660046114ed565b610a2d565b6101706102cf3660046113c3565b610c2c565b610191610cdc565b6101b16102ea3660046113c3565b610ceb565b6101b16102fd366004611399565b610dac565b6101b16103103660046114ed565b610db9565b600954610176565b6101b161032b366004611547565b610df8565b61017661033e366004611547565b610e46565b6101706103513660046113c3565b610e71565b6101b161036436600461157a565b610ec6565b6103733383610df8565b6103985760405162461bcd60e51b815260040161038f906115c6565b60405180910390fd5b6103a3838383610ed4565b6103ae838383610f4e565b505050565b6060600380546103c290611608565b80601f01602080910402602001604051908101604052809291908181526020018280546103ee90611608565b801561043b5780601f106104105761010080835404028352916020019161043b565b820191906000526020600020905b81548152906001019060200180831161041e57829003601f168201915b5050505050905090565b3360009081526001602090815260408083206001600160a01b0386168452909152812054156104da5781156104da5760405162461bcd60e51b815260206004820152603560248201527f4d7573742073657420617070726f76616c20746f207a65726f206265666f7265604482015274081cd95d1d1a5b99c81b995dc8185c1c1c9bdd985b605a1b606482015260840161038f565b6104e53384846110dd565b5060015b92915050565b60006104fb3385610df8565b61055d5760405162461bcd60e51b815260206004820152602d60248201527f43616c6c6572206973206e6f7420616e206163636f756e74206f70657261746f60448201526c1c88199bdc881c185e595c9259609a1b606482015260840161038f565b6001600160a01b03808516600090815260016020908152604080832093871683529290522054156105d65781156105d65760405162461bcd60e51b815260206004820152601d60248201527f4d7573742063616e63656c2070726576696f757320617070726f76616c000000604482015260640161038f565b6105e18484846110dd565b5060019392505050565b60006105f73385610df8565b6106135760405162461bcd60e51b815260040161038f90611642565b6105e1848484610f4e565b6000610613843384610ed4565b60006106373387610df8565b6106535760405162461bcd60e51b815260040161038f906115c6565b8382146106c85760405162461bcd60e51b815260206004820152603760248201527f4c656e677468206f66202770617965724964732720616e642027616d6f756e7460448201527f73272061727261797320617265206e6f7420657175616c000000000000000000606482015260840161038f565b60008460015b8183101561089b578585848181106106e8576106e8611684565b9050602002013561071989898681811061070457610704611684565b905060200201602081019061022591906113c3565b108061076b575061075088888581811061073557610735611684565b905060200201602081019061074a91906113c3565b8a610e46565b86868581811061076257610762611684565b90506020020135115b156107f75750600087878481811061078557610785611684565b905060200201602081019061079a91906113c3565b6001600160a01b03166040516107c2906b7472616e7366657246726f6d60a01b8152600c0190565b604051908190038120907f9ced85143b46956397827f2830e092929d343270e8524450940e1c3ae71befe190600090a3610889565b61084088888581811061080c5761080c611684565b905060200201602081019061082191906113c3565b8a88888781811061083457610834611684565b90506020020135610ed4565b61088988888581811061085557610855611684565b905060200201602081019061086a91906113c3565b8a88888781811061087d5761087d611684565b90506020020135610f4e565b82610893816116b0565b9350506106ce565b98975050505050505050565b6000806108b43388610df8565b6108d05760405162461bcd60e51b815260040161038f90611642565b6000855b80821015610a18578585838181106108ee576108ee611684565b905060200201356109148a6001600160a01b031660009081526020819052604090205490565b10156109c95787878381811061092c5761092c611684565b905060200201602081019061094191906113c3565b6001600160a01b031660405161096590673a3930b739b332b960c11b815260080190565b604051908190038120907f9ced85143b46956397827f2830e092929d343270e8524450940e1c3ae71befe190600090a360008888848181106109a9576109a9611684565b90506020020160208101906109be91906113c3565b935093505050610a23565b610a06898989858181106109df576109df611684565b90506020020160208101906109f491906113c3565b88888681811061087d5761087d611684565b81610a10816116b0565b9250506108d4565b600160009350935050505b9550959350505050565b6000610a4b3361032b6005546001600160a01b036101009091041690565b610a675760405162461bcd60e51b815260040161038f906116c9565b6001600160a01b038516610a8d5760405162461bcd60e51b815260040161038f9061170d565b60085460ff168015610aae575083600254610aa89190611738565b60075410155b80610ae3575060085460ff16158015610ae3575060095484600254610ad39190611738565b610add9190611738565b60075410155b610b4b5760405162461bcd60e51b815260206004820152603360248201527f4d696e74696e6720776f756c64206578636565642074686520636f6e666967756044820152723932b21036b0bc34b6bab69039bab838363c9760691b606482015260840161038f565b8360026000828254610b5d9190611738565b90915550506001600160a01b03851660009081526020819052604081208054869290610b8a908490611738565b90915550506040518481526001600160a01b038616906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604051631b5a5b9d60e21b815260040160405180910390207fb8ed7b1dcec9fe99007e055ff92bdea26fa8e2b943868e40eaa7d1c72d2743028484604051610c1992919061174b565b60405180910390a2506001949350505050565b6001600160a01b0381163303610c845760405162461bcd60e51b815260206004820152601c60248201527f417574686f72697a696e672073656c66206173206f70657261746f7200000000604482015260640161038f565b3360008181526006602090815260408083206001600160a01b0386168085529252808320805460ff191660011790555190917ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f991a350565b6060600480546103c290611608565b6000610d093361032b6005546001600160a01b036101009091041690565b610d255760405162461bcd60e51b815260040161038f906116c9565b6001600160a01b038216610d4b5760405162461bcd60e51b815260040161038f9061170d565b600580546001600160a01b03848116610100818102610100600160a81b031985161790945560405193909204169182907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a360019150505b919050565b60006104e5338484610f4e565b6000610dc53386610df8565b610de15760405162461bcd60e51b815260040161038f90611642565b610ded8585858561118a565b506001949350505050565b6000816001600160a01b0316836001600160a01b03161480610e3f57506001600160a01b0380831660009081526006602090815260408083209387168352929052205460ff165b9392505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3360008181526006602090815260408083206001600160a01b0386168085529252808320805460ff191690555190917f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa191a350565b60006105e13385858561118a565b6000610ee08484610e46565b90506000198114610f485781811015610f3b5760405162461bcd60e51b815260206004820152601860248201527f416d6f756e74206578636565647320616c6c6f77616e63650000000000000000604482015260640161038f565b610f4884848484036110dd565b50505050565b6001600160a01b038316610f745760405162461bcd60e51b815260040161038f9061170d565b6001600160a01b038216610f9a5760405162461bcd60e51b815260040161038f9061170d565b306001600160a01b03831603610fea5760405162461bcd60e51b815260206004820152601560248201527410dbdb9d1c9858dd081859191c995cdcc81d5cd959605a1b604482015260640161038f565b6001600160a01b0383166000908152602081905260409020548181101561104c5760405162461bcd60e51b8152602060048201526016602482015275416d6f756e7420657863656564732062616c616e636560501b604482015260640161038f565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611083908490611738565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110cf91815260200190565b60405180910390a350505050565b6001600160a01b0383166111035760405162461bcd60e51b815260040161038f9061170d565b6001600160a01b0382166111295760405162461bcd60e51b815260040161038f9061170d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0384166111b05760405162461bcd60e51b815260040161038f9061170d565b6001600160a01b038416600090815260208190526040902054838110156112125760405162461bcd60e51b8152602060048201526016602482015275416d6f756e7420657863656564732062616c616e636560501b604482015260640161038f565b6001600160a01b038516600090815260208190526040812085830390556002805486929061124190849061177a565b92505081905550836009600082825461125a9190611738565b90915550506040518481526000906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405163313ab93760e11b815260040160405180910390207fb8ed7b1dcec9fe99007e055ff92bdea26fa8e2b943868e40eaa7d1c72d27430284846040516112e992919061174b565b60405180910390a25050505050565b80356001600160a01b0381168114610da757600080fd5b60008060006060848603121561132457600080fd5b61132d846112f8565b925061133b602085016112f8565b9150604084013590509250925092565b600060208083528351808285015260005b818110156113785785810183015185820160400152820161135c565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156113ac57600080fd5b6113b5836112f8565b946020939093013593505050565b6000602082840312156113d557600080fd5b610e3f826112f8565b60008083601f8401126113f057600080fd5b50813567ffffffffffffffff81111561140857600080fd5b6020830191508360208260051b850101111561142357600080fd5b9250929050565b60008060008060006060868803121561144257600080fd5b61144b866112f8565b9450602086013567ffffffffffffffff8082111561146857600080fd5b61147489838a016113de565b9096509450604088013591508082111561148d57600080fd5b5061149a888289016113de565b969995985093965092949392505050565b60008083601f8401126114bd57600080fd5b50813567ffffffffffffffff8111156114d557600080fd5b60208301915083602082850101111561142357600080fd5b6000806000806060858703121561150357600080fd5b61150c856112f8565b935060208501359250604085013567ffffffffffffffff81111561152f57600080fd5b61153b878288016114ab565b95989497509550505050565b6000806040838503121561155a57600080fd5b611563836112f8565b9150611571602084016112f8565b90509250929050565b60008060006040848603121561158f57600080fd5b83359250602084013567ffffffffffffffff8111156115ad57600080fd5b6115b9868287016114ab565b9497909650939450505050565b60208082526022908201527f43616c6c6572206e6f7420616e206f70657261746f7220666f72207061796565604082015261125960f21b606082015260800190565b600181811c9082168061161c57607f821691505b60208210810361163c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526022908201527f43616c6c6572206e6f7420616e206f70657261746f7220666f72207061796572604082015261125960f21b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016116c2576116c261169a565b5060010190565b60208082526024908201527f43616c6c6572206973206e6f7420746865206163636f756e742773206f70657260408201526330ba37b960e11b606082015260800190565b60208082526011908201527016995c9bc81859191c995cdcc81d5cd959607a1b604082015260600190565b808201808211156104e9576104e961169a565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b818103818111156104e9576104e961169a56fea2646970667358221220ad028ba2df50c1aaf446fc39e9812d2161040118e752016e3710c99b66453e7d64736f6c63430008100033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000017ee212c2da8cf8d7400000000000000000000000000000c9359d1e63f79a01c875b51bf71823dc2e597900000000000000000000000000c9359d1e63f79a01c875b51bf71823dc2e597900000000000000000000000000000000000000000007c13bc4b2c133c56000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000044c454f580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044c454f5800000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): LEOX
Arg [1] : symbol_ (string): LEOX
Arg [2] : decimals_ (uint8): 18
Arg [3] : supply_ (uint256): 28929829000000000000000000
Arg [4] : giveSupplyTo_ (address): 0x0C9359D1E63f79a01c875B51bF71823dC2E59790
Arg [5] : owner_ (address): 0x0C9359D1E63f79a01c875B51bF71823dC2E59790
Arg [6] : maximumSupply_ (uint256): 150000000000000000000000000
Arg [7] : allowRemint_ (bool): True

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 00000000000000000000000000000000000000000017ee212c2da8cf8d740000
Arg [4] : 0000000000000000000000000c9359d1e63f79a01c875b51bf71823dc2e59790
Arg [5] : 0000000000000000000000000c9359d1e63f79a01c875b51bf71823dc2e59790
Arg [6] : 0000000000000000000000000000000000000000007c13bc4b2c133c56000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [9] : 4c454f5800000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [11] : 4c454f5800000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

62:23468:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8656:321;;;;;;:::i;:::-;;:::i;:::-;;22269:94;22341:14;;22269:94;;;671:25:1;;;659:2;644:18;22269:94:0;;;;;;;;20278:83;;;:::i;:::-;;;;;;;:::i;5547:419::-;;;;;;:::i;:::-;;:::i;:::-;;;1684:14:1;;1677:22;1659:41;;1647:2;1632:18;5547:419:0;1519:187:1;6691:543:0;;;;;;:::i;:::-;;:::i;4675:302::-;;;;;;:::i;:::-;;:::i;21350:91::-;21421:12;;21350:91;;7772:372;;;;;;:::i;:::-;;:::i;21114:83::-;21180:9;;21114:83;;21180:9;;;;1853:36:1;;1841:2;1826:18;21114:83:0;1711:184:1;21980:114:0;;;;;;:::i;:::-;-1:-1:-1;;;;;22066:20:0;22039:7;22066:20;;;;;;;;;;;;21980:114;15789:1155;;;;;;:::i;:::-;;:::i;21729:79::-;21794:6;;;;;-1:-1:-1;;;;;21794:6:0;21729:79;;-1:-1:-1;;;;;3479:32:1;;;3461:51;;3449:2;3434:18;21729:79:0;3315:203:1;14097:701:0;;;;;;:::i;:::-;;:::i;:::-;;;;3716:14:1;;3709:22;3691:41;;-1:-1:-1;;;;;3768:32:1;;;3763:2;3748:18;;3741:60;3664:18;14097:701:0;3523:284:1;9559:667:0;;;;;;:::i;:::-;;:::i;12600:317::-;;;;;;:::i;:::-;;:::i;20480:87::-;;;:::i;12019:322::-;;;;;;:::i;:::-;;:::i;3990:154::-;;;;;;:::i;:::-;;:::i;11473:261::-;;;;;;:::i;:::-;;:::i;22469:108::-;22548:21;;22469:108;;23258:265;;;;;;:::i;:::-;;:::i;22863:138::-;;;;;;:::i;:::-;;:::i;13179:221::-;;;;;;:::i;:::-;;:::i;10736:147::-;;;;;;:::i;:::-;;:::i;8656:321::-;8798:34;8812:10;8824:7;8798:13;:34::i;:::-;8790:81;;;;-1:-1:-1;;;8790:81:0;;;;;;;:::i;:::-;;;;;;;;;8882:41;8898:7;8907;8916:6;8882:15;:41::i;:::-;8934:35;8944:7;8953;8962:6;8934:9;:35::i;:::-;8656:321;;;:::o;20278:83::-;20315:13;20348:5;20341:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20278:83;:::o;5547:419::-;5648:10;5615:4;5636:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5636:32:0;;;;;;;;;;:36;5632:257;;5696:11;;5688:77;;;;-1:-1:-1;;;5688:77:0;;6457:2:1;5688:77:0;;;6439:21:1;6496:2;6476:18;;;6469:30;6535:34;6515:18;;;6508:62;-1:-1:-1;;;6586:18:1;;;6579:51;6647:19;;5688:77:0;6255:417:1;5688:77:0;5899:37;5908:10;5920:7;5929:6;5899:8;:37::i;:::-;-1:-1:-1;5954:4:0;5547:419;;;;;:::o;6691:543::-;6818:4;6843:34;6857:10;6869:7;6843:13;:34::i;:::-;6835:92;;;;-1:-1:-1;;;6835:92:0;;6879:2:1;6835:92:0;;;6861:21:1;6918:2;6898:18;;;6891:30;6957:34;6937:18;;;6930:62;-1:-1:-1;;;7008:18:1;;;7001:43;7061:19;;6835:92:0;6677:409:1;6835:92:0;-1:-1:-1;;;;;6942:20:0;;;6974:1;6942:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;:33;6938:222;;6999:11;;6991:53;;;;-1:-1:-1;;;6991:53:0;;7293:2:1;6991:53:0;;;7275:21:1;7332:2;7312:18;;;7305:30;7371:31;7351:18;;;7344:59;7420:18;;6991:53:0;7091:353:1;6991:53:0;7170:34;7179:7;7188;7197:6;7170:8;:34::i;:::-;-1:-1:-1;7222:4:0;6691:543;;;;;:::o;4675:302::-;4803:4;4828:34;4842:10;4854:7;4828:13;:34::i;:::-;4820:81;;;;-1:-1:-1;;;4820:81:0;;;;;;;:::i;:::-;4912:35;4922:7;4931;4940:6;4912:9;:35::i;7772:372::-;7862:4;7879:44;7895:7;7904:10;7916:6;7879:15;:44::i;15789:1155::-;15908:4;15933:34;15947:10;15959:7;15933:13;:34::i;:::-;15925:81;;;;-1:-1:-1;;;15925:81:0;;;;;;;:::i;:::-;16025:33;;;16017:101;;;;-1:-1:-1;;;16017:101:0;;8054:2:1;16017:101:0;;;8036:21:1;8093:2;8073:18;;;8066:30;8132:34;8112:18;;;8105:62;8203:25;8183:18;;;8176:53;8246:19;;16017:101:0;7852:419:1;16017:101:0;16131:10;16164:8;16205:4;16222:690;16237:4;16229:5;:12;16222:690;;;16307:7;;16315:5;16307:14;;;;;;;:::i;:::-;;;;;;;16278:26;16288:8;;16297:5;16288:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;16278:26::-;:43;16277:103;;;;16344:35;16354:8;;16363:5;16354:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16371:7;16344:9;:35::i;:::-;16327:7;;16335:5;16327:14;;;;;;;:::i;:::-;;;;;;;:52;16277:103;16273:606;;;-1:-1:-1;16410:5:0;16468:8;;16477:5;16468:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16439:45:0;;;;;-1:-1:-1;;;8610:27:1;;8662:2;8653:12;;8408:263;16439:45:0;;;;;;;;;;;;;;;16273:606;;;16594:57;16610:8;;16619:5;16610:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16627:7;16636;;16644:5;16636:14;;;;;;;:::i;:::-;;;;;;;16594:15;:57::i;:::-;16719:51;16729:8;;16738:5;16729:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;16746:7;16755;;16763:5;16755:14;;;;;;;:::i;:::-;;;;;;;16719:9;:51::i;:::-;16893:7;;;;:::i;:::-;;;;16222:690;;;16929:7;15789:1155;-1:-1:-1;;;;;;;;15789:1155:0:o;14097:701::-;14212:4;14218:7;14246:34;14260:10;14272:7;14246:13;:34::i;:::-;14238:81;;;;-1:-1:-1;;;14238:81:0;;;;;;;:::i;:::-;14330:10;14363:8;14389:364;14404:4;14396:5;:12;14389:364;;;14449:7;;14457:5;14449:14;;;;;;;:::i;:::-;;;;;;;14428:18;14438:7;-1:-1:-1;;;;;22066:20:0;22039:7;22066:20;;;;;;;;;;;;21980:114;14428:18;:35;14424:230;;;14513:8;;14522:5;14513:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14488:41:0;;;;;-1:-1:-1;;;9150:23:1;;9198:1;9189:11;;8948:258;14488:41:0;;;;;;;;;;;;;;;14615:5;14622:8;;14631:5;14622:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14607:31;;;;;;;;14424:230;14668:51;14678:7;14687:8;;14696:5;14687:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;14704:7;;14712:5;14704:14;;;;;;;:::i;14668:51::-;14734:7;;;;:::i;:::-;;;;14389:364;;;14771:4;14785:3;14763:27;;;;;;14097:701;;;;;;;;;:::o;9559:667::-;9670:4;3528:34;3542:10;3554:7;21794:6;;-1:-1:-1;;;;;21794:6:0;;;;;;21729:79;3528:34;3520:83;;;;-1:-1:-1;;;3520:83:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9695:34:0;::::1;9687:64;;;;-1:-1:-1::0;;;9687:64:0::1;;;;;;;:::i;:::-;9771:12;::::0;::::1;;:57:::0;::::1;;;;9821:6;9806:12;;:21;;;;:::i;:::-;9787:14;;:41;;9771:57;9770:166;;;-1:-1:-1::0;9852:12:0::1;::::0;::::1;;9851:13;:84:::0;::::1;;;;9912:21;;9903:6;9888:12;;:21;;;;:::i;:::-;:45;;;;:::i;:::-;9869:14;;:65;;9851:84;9762:231;;;::::0;-1:-1:-1;;;9762:231:0;;10294:2:1;9762:231:0::1;::::0;::::1;10276:21:1::0;10333:2;10313:18;;;10306:30;10372:34;10352:18;;;10345:62;-1:-1:-1;;;10423:18:1;;;10416:49;10482:19;;9762:231:0::1;10092:415:1::0;9762:231:0::1;10022:6;10006:12;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;10039:31:0;::::1;:9;:31:::0;;;::::1;::::0;;;;;;:41;;10074:6;;10039:9;:41:::1;::::0;10074:6;;10039:41:::1;:::i;:::-;::::0;;;-1:-1:-1;;10106:50:0::1;::::0;671:25:1;;;-1:-1:-1;;;;;10106:50:0;::::1;::::0;10123:1:::1;::::0;10106:50:::1;::::0;659:2:1;644:18;10106:50:0::1;;;;;;;10172:22;::::0;-1:-1:-1;;;10714:19:1;;10758:1;10749:11;10172:22:0::1;;;;;;;;10189:4;;10172:22;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;10214:4:0::1;9559:667:::0;;;;;;:::o;12600:317::-;-1:-1:-1;;;;;12689:38:0;;:10;:38;12681:79;;;;-1:-1:-1;;;12681:79:0;;11366:2:1;12681:79:0;;;11348:21:1;11405:2;11385:18;;;11378:30;11444;11424:18;;;11417:58;11492:18;;12681:79:0;11164:352:1;12681:79:0;12791:10;12773:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;12773:55:0;;;;;;;;;;:62;;-1:-1:-1;;12773:62:0;12831:4;12773:62;;;12853:56;12773:55;;12853:56;;;12600:317;:::o;20480:87::-;20519:13;20552:7;20545:14;;;;;:::i;12019:322::-;12098:4;3528:34;3542:10;3554:7;21794:6;;-1:-1:-1;;;;;21794:6:0;;;;;;21729:79;3528:34;3520:83;;;;-1:-1:-1;;;3520:83:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12123:34:0;::::1;12115:64;;;;-1:-1:-1::0;;;12115:64:0::1;;;;;;;:::i;:::-;12209:6;::::0;;-1:-1:-1;;;;;12226:27:0;;::::1;12209:6;12226:27:::0;;::::1;-1:-1:-1::0;;;;;;12226:27:0;::::1;;::::0;;;12269:42:::1;::::0;12209:6;;;::::1;;::::0;;;12269:42:::1;::::0;12190:16:::1;::::0;12269:42:::1;12329:4;12322:11;;;3612:1;12019:322:::0;;;:::o;3990:154::-;4059:4;4076:38;4086:10;4098:7;4107:6;4076:9;:38::i;11473:261::-;11567:4;11592:34;11606:10;11618:7;11592:13;:34::i;:::-;11584:81;;;;-1:-1:-1;;;11584:81:0;;;;;;;:::i;:::-;11676:28;11682:7;11691:6;11699:4;;11676:5;:28::i;:::-;-1:-1:-1;11722:4:0;11473:261;;;;;;:::o;23258:265::-;23360:4;23425:14;-1:-1:-1;;;;;23397:42:0;:24;-1:-1:-1;;;;;23397:42:0;;:118;;;-1:-1:-1;;;;;;23456:33:0;;;;;;;:17;:33;;;;;;;;:59;;;;;;;;;;;;23397:118;23377:138;23258:265;-1:-1:-1;;;23258:265:0:o;22863:138::-;-1:-1:-1;;;;;22964:20:0;;;22937:7;22964:20;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;22863:138::o;13179:221::-;13284:10;13266:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;13266:55:0;;;;;;;;;;13259:62;;-1:-1:-1;;13259:62:0;;;13339:53;13266:55;;13339:53;;;13179:221;:::o;10736:147::-;10805:4;10822:31;10828:10;10840:6;10848:4;;10822:5;:31::i;19797:411::-;19891:24;19918:27;19928:7;19937;19918:9;:27::i;:::-;19891:54;;-1:-1:-1;;19960:16:0;:37;19956:245;;20042:6;20022:16;:26;;20014:63;;;;-1:-1:-1;;;20014:63:0;;11723:2:1;20014:63:0;;;11705:21:1;11762:2;11742:18;;;11735:30;11801:26;11781:18;;;11774:54;11845:18;;20014:63:0;11521:348:1;20014:63:0;20121:53;20130:7;20139;20167:6;20148:16;:25;20121:8;:53::i;:::-;19880:328;19797:411;;;:::o;17344:585::-;-1:-1:-1;;;;;17440:21:0;;17432:51;;;;-1:-1:-1;;;17432:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17502:21:0;;17494:51;;;;-1:-1:-1;;;17494:51:0;;;;;;;:::i;:::-;17583:4;-1:-1:-1;;;;;17564:24:0;;;17556:58;;;;-1:-1:-1;;;17556:58:0;;12076:2:1;17556:58:0;;;12058:21:1;12115:2;12095:18;;;12088:30;-1:-1:-1;;;12134:18:1;;;12127:51;12195:18;;17556:58:0;11874:345:1;17556:58:0;-1:-1:-1;;;;;17651:18:0;;17627:21;17651:18;;;;;;;;;;;17688:23;;;;17680:58;;;;-1:-1:-1;;;17680:58:0;;12426:2:1;17680:58:0;;;12408:21:1;12465:2;12445:18;;;12438:30;-1:-1:-1;;;12484:18:1;;;12477:52;12546:18;;17680:58:0;12224:346:1;17680:58:0;-1:-1:-1;;;;;17774:18:0;;;:9;:18;;;;;;;;;;;17795:22;;;17774:43;;17839:18;;;;;;;;:28;;17811:6;;17774:9;17839:28;;17811:6;;17839:28;:::i;:::-;;;;;;;;17903:7;-1:-1:-1;;;;;17885:34:0;17894:7;-1:-1:-1;;;;;17885:34:0;;17912:6;17885:34;;;;671:25:1;;659:2;644:18;;525:177;17885:34:0;;;;;;;;17421:508;17344:585;;;:::o;19258:309::-;-1:-1:-1;;;;;19353:21:0;;19345:51;;;;-1:-1:-1;;;19345:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19415:21:0;;19407:51;;;;-1:-1:-1;;;19407:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19471:20:0;;;;;;;:11;:20;;;;;;;;:29;;;;;;;;;;;;;:38;;;19525:34;;671:25:1;;;19525:34:0;;644:18:1;19525:34:0;;;;;;;19258:309;;;:::o;18274:542::-;-1:-1:-1;;;;;18372:21:0;;18364:51;;;;-1:-1:-1;;;18364:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18453:18:0;;18428:22;18453:18;;;;;;;;;;;18490:24;;;;18482:59;;;;-1:-1:-1;;;18482:59:0;;12426:2:1;18482:59:0;;;12408:21:1;12465:2;12445:18;;;12438:30;-1:-1:-1;;;12484:18:1;;;12477:52;12546:18;;18482:59:0;12224:346:1;18482:59:0;-1:-1:-1;;;;;18577:18:0;;:9;:18;;;;;;;;;;18598:23;;;18577:44;;18643:12;:22;;18615:6;;18577:9;18643:22;;18615:6;;18643:22;:::i;:::-;;;;;;;;18709:6;18684:21;;:31;;;;;;;:::i;:::-;;;;-1:-1:-1;;18733:37:0;;671:25:1;;;18759:1:0;;-1:-1:-1;;;;;18733:37:0;;;;;659:2:1;644:18;18733:37:0;;;;;;;18786:22;;-1:-1:-1;;;12910:19:1;;12954:1;12945:11;18786:22:0;;;;;;;;18803:4;;18786:22;;;;;;;:::i;:::-;;;;;;;;18351:465;18274:542;;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;192:328;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;425:38;459:2;448:9;444:18;425:38;:::i;:::-;415:48;;510:2;499:9;495:18;482:32;472:42;;192:328;;;;;:::o;707:548::-;819:4;848:2;877;866:9;859:21;909:6;903:13;952:6;947:2;936:9;932:18;925:34;977:1;987:140;1001:6;998:1;995:13;987:140;;;1096:14;;;1092:23;;1086:30;1062:17;;;1081:2;1058:26;1051:66;1016:10;;987:140;;;991:3;1176:1;1171:2;1162:6;1151:9;1147:22;1143:31;1136:42;1246:2;1239;1235:7;1230:2;1222:6;1218:15;1214:29;1203:9;1199:45;1195:54;1187:62;;;;707:548;;;;:::o;1260:254::-;1328:6;1336;1389:2;1377:9;1368:7;1364:23;1360:32;1357:52;;;1405:1;1402;1395:12;1357:52;1428:29;1447:9;1428:29;:::i;:::-;1418:39;1504:2;1489:18;;;;1476:32;;-1:-1:-1;;;1260:254:1:o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;2091:367::-;2154:8;2164:6;2218:3;2211:4;2203:6;2199:17;2195:27;2185:55;;2236:1;2233;2226:12;2185:55;-1:-1:-1;2259:20:1;;2302:18;2291:30;;2288:50;;;2334:1;2331;2324:12;2288:50;2371:4;2363:6;2359:17;2347:29;;2431:3;2424:4;2414:6;2411:1;2407:14;2399:6;2395:27;2391:38;2388:47;2385:67;;;2448:1;2445;2438:12;2385:67;2091:367;;;;;:::o;2463:847::-;2594:6;2602;2610;2618;2626;2679:2;2667:9;2658:7;2654:23;2650:32;2647:52;;;2695:1;2692;2685:12;2647:52;2718:29;2737:9;2718:29;:::i;:::-;2708:39;;2798:2;2787:9;2783:18;2770:32;2821:18;2862:2;2854:6;2851:14;2848:34;;;2878:1;2875;2868:12;2848:34;2917:70;2979:7;2970:6;2959:9;2955:22;2917:70;:::i;:::-;3006:8;;-1:-1:-1;2891:96:1;-1:-1:-1;3094:2:1;3079:18;;3066:32;;-1:-1:-1;3110:16:1;;;3107:36;;;3139:1;3136;3129:12;3107:36;;3178:72;3242:7;3231:8;3220:9;3216:24;3178:72;:::i;:::-;2463:847;;;;-1:-1:-1;2463:847:1;;-1:-1:-1;3269:8:1;;3152:98;2463:847;-1:-1:-1;;;2463:847:1:o;3812:347::-;3863:8;3873:6;3927:3;3920:4;3912:6;3908:17;3904:27;3894:55;;3945:1;3942;3935:12;3894:55;-1:-1:-1;3968:20:1;;4011:18;4000:30;;3997:50;;;4043:1;4040;4033:12;3997:50;4080:4;4072:6;4068:17;4056:29;;4132:3;4125:4;4116:6;4108;4104:19;4100:30;4097:39;4094:59;;;4149:1;4146;4139:12;4164:551;4252:6;4260;4268;4276;4329:2;4317:9;4308:7;4304:23;4300:32;4297:52;;;4345:1;4342;4335:12;4297:52;4368:29;4387:9;4368:29;:::i;:::-;4358:39;;4444:2;4433:9;4429:18;4416:32;4406:42;;4499:2;4488:9;4484:18;4471:32;4526:18;4518:6;4515:30;4512:50;;;4558:1;4555;4548:12;4512:50;4597:58;4647:7;4638:6;4627:9;4623:22;4597:58;:::i;:::-;4164:551;;;;-1:-1:-1;4674:8:1;-1:-1:-1;;;;4164:551:1:o;4720:260::-;4788:6;4796;4849:2;4837:9;4828:7;4824:23;4820:32;4817:52;;;4865:1;4862;4855:12;4817:52;4888:29;4907:9;4888:29;:::i;:::-;4878:39;;4936:38;4970:2;4959:9;4955:18;4936:38;:::i;:::-;4926:48;;4720:260;;;;;:::o;4985:477::-;5064:6;5072;5080;5133:2;5121:9;5112:7;5108:23;5104:32;5101:52;;;5149:1;5146;5139:12;5101:52;5185:9;5172:23;5162:33;;5246:2;5235:9;5231:18;5218:32;5273:18;5265:6;5262:30;5259:50;;;5305:1;5302;5295:12;5259:50;5344:58;5394:7;5385:6;5374:9;5370:22;5344:58;:::i;:::-;4985:477;;5421:8;;-1:-1:-1;5318:84:1;;-1:-1:-1;;;;4985:477:1:o;5467:398::-;5669:2;5651:21;;;5708:2;5688:18;;;5681:30;5747:34;5742:2;5727:18;;5720:62;-1:-1:-1;;;5813:2:1;5798:18;;5791:32;5855:3;5840:19;;5467:398::o;5870:380::-;5949:1;5945:12;;;;5992;;;6013:61;;6067:4;6059:6;6055:17;6045:27;;6013:61;6120:2;6112:6;6109:14;6089:18;6086:38;6083:161;;6166:10;6161:3;6157:20;6154:1;6147:31;6201:4;6198:1;6191:15;6229:4;6226:1;6219:15;6083:161;;5870:380;;;:::o;7449:398::-;7651:2;7633:21;;;7690:2;7670:18;;;7663:30;7729:34;7724:2;7709:18;;7702:62;-1:-1:-1;;;7795:2:1;7780:18;;7773:32;7837:3;7822:19;;7449:398::o;8276:127::-;8337:10;8332:3;8328:20;8325:1;8318:31;8368:4;8365:1;8358:15;8392:4;8389:1;8382:15;8676:127;8737:10;8732:3;8728:20;8725:1;8718:31;8768:4;8765:1;8758:15;8792:4;8789:1;8782:15;8808:135;8847:3;8868:17;;;8865:43;;8888:18;;:::i;:::-;-1:-1:-1;8935:1:1;8924:13;;8808:135::o;9211:400::-;9413:2;9395:21;;;9452:2;9432:18;;;9425:30;9491:34;9486:2;9471:18;;9464:62;-1:-1:-1;;;9557:2:1;9542:18;;9535:34;9601:3;9586:19;;9211:400::o;9616:341::-;9818:2;9800:21;;;9857:2;9837:18;;;9830:30;-1:-1:-1;;;9891:2:1;9876:18;;9869:47;9948:2;9933:18;;9616:341::o;9962:125::-;10027:9;;;10048:10;;;10045:36;;;10061:18;;:::i;10771:388::-;10928:2;10917:9;10910:21;10967:6;10962:2;10951:9;10947:18;10940:34;11024:6;11016;11011:2;11000:9;10996:18;10983:48;11080:1;11051:22;;;11075:2;11047:31;;;11040:42;;;;11143:2;11122:15;;;-1:-1:-1;;11118:29:1;11103:45;11099:54;;10771:388;-1:-1:-1;10771:388:1:o;12575:128::-;12642:9;;;12663:11;;;12660:37;;;12677:18;;:::i

Swarm Source

ipfs://ad028ba2df50c1aaf446fc39e9812d2161040118e752016e3710c99b66453e7d

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Galileo Protocol is an innovative venture in the luxury e-commerce space, leveraging the power of Web3 technologies. It focuses on integrating pNFTs to offer unique and enhanced customer experiences. These pNFTs add value and exclusivity to luxury items, bridging RWA with digital innovation.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.