ETH Price: $1,518.50 (-14.55%)

Contract

0xd58B9Ae085F725Ba97B8C30C0d0aeC0ECa47146b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer221698292025-03-31 22:18:356 days ago1743459515IN
0xd58B9Ae0...ECa47146b
0 ETH0.000020040.4849265
Release221675042025-03-31 14:30:596 days ago1743431459IN
0xd58B9Ae0...ECa47146b
0 ETH0.000065261.06099771
Transfer221177952025-03-24 15:55:1113 days ago1742831711IN
0xd58B9Ae0...ECa47146b
0 ETH0.000039870.96480708
Release221176702025-03-24 15:30:1113 days ago1742830211IN
0xd58B9Ae0...ECa47146b
0 ETH0.000076681.24678569
Transfer220676362025-03-17 15:55:1120 days ago1742226911IN
0xd58B9Ae0...ECa47146b
0 ETH0.000031890.77167947
Release220675132025-03-17 15:30:1120 days ago1742225411IN
0xd58B9Ae0...ECa47146b
0 ETH0.000049320.80197164
Transfer220175012025-03-10 15:55:1127 days ago1741622111IN
0xd58B9Ae0...ECa47146b
0 ETH0.000129033.1222426
Release220173772025-03-10 15:30:1127 days ago1741620611IN
0xd58B9Ae0...ECa47146b
0 ETH0.000294454.78716425
Transfer219673612025-03-03 15:50:1134 days ago1741017011IN
0xd58B9Ae0...ECa47146b
0 ETH0.000082852.00491333
Release219672612025-03-03 15:30:1134 days ago1741015811IN
0xd58B9Ae0...ECa47146b
0 ETH0.000236683.84791862
Transfer219172102025-02-24 15:55:1141 days ago1740412511IN
0xd58B9Ae0...ECa47146b
0 ETH0.000160173.87558991
Release219170872025-02-24 15:30:1141 days ago1740411011IN
0xd58B9Ae0...ECa47146b
0 ETH0.000231963.77125365
Transfer219038132025-02-22 18:59:1143 days ago1740250751IN
0xd58B9Ae0...ECa47146b
0 ETH0.000028150.77121775
Transfer219037682025-02-22 18:50:1143 days ago1740250211IN
0xd58B9Ae0...ECa47146b
0 ETH0.000031730.76844062
Transfer219036842025-02-22 18:33:2343 days ago1740249203IN
0xd58B9Ae0...ECa47146b
0 ETH0.00002820.7727136
Transfer219036592025-02-22 18:28:1143 days ago1740248891IN
0xd58B9Ae0...ECa47146b
0 ETH0.000040870.76249276
Transfer219016432025-02-22 11:42:4744 days ago1740224567IN
0xd58B9Ae0...ECa47146b
0 ETH0.000024370.66785403
Transfer219015192025-02-22 11:17:3544 days ago1740223055IN
0xd58B9Ae0...ECa47146b
0 ETH0.000036270.67677994
Transfer219009882025-02-22 9:30:2344 days ago1740216623IN
0xd58B9Ae0...ECa47146b
0 ETH0.000025140.688826
Transfer219008852025-02-22 9:09:3544 days ago1740215375IN
0xd58B9Ae0...ECa47146b
0 ETH0.000039890.74428749
Transfer218671242025-02-17 15:55:1148 days ago1739807711IN
0xd58B9Ae0...ECa47146b
0 ETH0.0016104238.96701836
Release218670002025-02-17 15:30:1148 days ago1739806211IN
0xd58B9Ae0...ECa47146b
0 ETH0.0027073644.01575909
Transfer218171472025-02-10 15:55:1155 days ago1739202911IN
0xd58B9Ae0...ECa47146b
0 ETH0.000060041.45284215
Release218170242025-02-10 15:30:1155 days ago1739201411IN
0xd58B9Ae0...ECa47146b
0 ETH0.000094131.53049011
Transfer217671982025-02-03 16:33:1162 days ago1738600391IN
0xd58B9Ae0...ECa47146b
0 ETH0.000937422.68202645
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.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-14
*/

pragma solidity 0.8.0;

/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
    /**
    * @dev Returns the amount of tokens in existence.
    */
    function totalSupply() external view returns (uint256);

    /**
    * @dev Returns the name of the token.
    */
    function name() external view returns (string memory);

    /**
    * @dev Returns the symbol of the token.
    */
    function symbol() external view returns (string memory);

    /**
    * @dev Returns the decimals places of the token.
    */
    function decimals() external view returns (uint8);

    /**
    * @dev Returns the bep token owner.
    */
    function getOwner() external view returns (address);

    /**
    * @dev Returns the amount of tokens owned by `account`.
    */
    function balanceOf(address account) external view returns (uint256);

    /**
    * @dev Moves `amount` tokens from the caller's account to `recipient`.
    *
    * Returns a boolean value indicating whether the operation succeeded.
    *
    * Emits a {Transfer} event.
    */
    function transfer(address recipient, uint256 amount) external returns (bool);

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

    /**
    * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
    *
    * Returns a boolean value indicating whether the operation succeeded.
    *
    * IMPORTANT: Beware that changing an allowance with this method brings the risk
    * that someone may use both the old and the new allowance by unfortunate
    * transaction ordering. One possible solution to mitigate this race
    * condition is to first reduce the spender's allowance to 0 and set the
    * desired value afterwards:
    * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    *
    * Emits an {Approval} event.
    */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
    * @dev Moves `amount` tokens from `sender` to `recipient` 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.
    */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
    * @dev Emitted when `value` tokens are moved from one account (`from`) to
    * another (`to`).
    *
    * Note that `value` may be zero.
    */
    event Transfer(address indexed from, address indexed to, uint256 value);

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

/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

/**
* @dev Contract module which provides a manager access control mechanism, where
* there is owner and manager, that can be granted exclusive access to
* specific functions.
*
* Both owner and manager accounts need to be specified when deploying the contract. This
* can later be changed with {setOwner} and {setManager}.
*
* This module is used through inheritance. Modifiers `onlyOwner` and `ownerOrManager`
* will be available, which can be applied to your functions to restrict their use.
*/
abstract contract Managed is Context
{
    event OwnershipTransfered(address indexed previousOwner, address indexed newOwner);
    event ManagementTransferred(address indexed previousManager, address indexed newManager);

    address private _owner;
    address private _manager;

    /**
    * @dev Initializes the contract, setting owner and manager.
    */
    constructor(address owner_, address manager_)
    {
        require(owner_ != address(0), "Owner address can't be a zero address");
        require(manager_ != address(0), "Manager address can't be a zero address");

        _setOwner(owner_);
        _setManager(manager_);
    }

    /**
    * @dev Returns the address of the current owner.
    */
    function owner() public view returns (address)
    { return _owner; }

    /**
    * @dev Returns the address of the current manager.
    */
    function manager() public view returns (address)
    { return _manager; }

    /**
    * @dev Transfers owner permissions to a new account (`newOwner`).
    * Can only be called by owner.
    */
    function setOwner(address newOwner) external onlyOwner
    {
        require(newOwner != address(0), "Managed: new owner can't be zero address");
        _setOwner(newOwner);
    }

    /**
    * @dev Transfers manager permissions to a new account (`newManager`).
    * Can only be called by owner.
    */
    function setManager(address newManager) external onlyOwner
    {
        require(newManager != address(0), "Managed: new manager can't be zero address");
        _setManager(newManager);
    }

    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyOwner()
    {
        require(_msgSender() == _owner, "Managed: caller is not the owner");
        _;
    }

    /**
    * @dev Throws if called by any account other than owner or manager.
    */
    modifier ownerOrManager()
    {
        require(_msgSender() == _owner || _msgSender() == _manager, "Managed: caller is not the owner or manager");
        _;
    }

    /**
    * @dev Transfers owner permissions to a new account (`newOwner`).
    * Internal function without access restriction.
    */
    function _setOwner(address newOwner) internal
    {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransfered(oldOwner, newOwner);
    }

    /**
    * @dev Transfers manager permissions to a new account (`newManager`).
    * Internal function without access restriction.
    */
    function _setManager(address newManager) internal
    {
        address oldManager = _manager;
        _manager = newManager;
        emit ManagementTransferred(oldManager, newManager);
    }
}

/**
* @dev Contract module which provides a locking mechanism that allows
* a total token lock, or lock of a specific address.
*
* This module is used through inheritance. Modifier `isUnlocked`
* will be available, which can be applied to your functions to restrict their use.
*/
abstract contract Lockable is Managed
{
    event AddressLockChanged(address indexed addr, bool newLock);
    event TokenLockChanged(bool newLock);

    mapping(address => bool) private _addressLocks;
    bool private _locked;

    /**
    * @dev Completely locks any transfers of the token.
    * Can only be called by owner.
    */
    function lockToken() external onlyOwner
    {
        _locked = true;
        emit TokenLockChanged(true);
    }

    /**
    * @dev Completely unlocks any transfers of the token.
    * Can only be called by owner.
    */
    function unlockToken() external onlyOwner
    {
        _locked = false;
        emit TokenLockChanged(false);
    }

    /**
    * @dev Return whether the token is currently locked.
    */
    function isLocked() public view returns (bool)
    { return _locked; }

    /**
    * @dev Throws if a function is called while the token is locked.
    */
    modifier isUnlocked()
    {
        require(!_locked, "All token transfers are currently locked");
        _;
    }

    /**
    * @dev Completely locks sending and receiving of token for a specific address.
    * Can only be called by owner or manager
    */
    function lockAddress(address addr) external onlyOwner
    {
        _addressLocks[addr] = true;
        emit AddressLockChanged(addr, true);
    }

    /**
    * @dev Completely unlocks sending and receiving of token for a specific address.
    * Can only be called by owner or manager
    */
    function unlockAddress(address addr) external onlyOwner
    {
        _addressLocks[addr] = false;
        emit AddressLockChanged(addr, false);
    }

    /**
    * @dev Returns whether the account (`addr`) is currently locked.
    */
    function isAddressLocked(address addr) public view returns (bool)
    { return _addressLocks[addr]; }
}

/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, Managed, Lockable
{
    event Burn(address indexed from, uint256 amount);
    event Release(address indexed to, uint256 amount);
    event Halving(uint256 oldReleaseAmount, uint256 newReleaseAmount);
    event ReleaseAddressChanged(address indexed oldAddress, address indexed newAddress);

    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    uint8 private immutable _decimals;

    uint256 private _releaseAmount;
    uint256 private _nextReleaseDate;
    uint256 private _nextReducementDate;
    address private _releaseAddress;

    uint256 private _week = 600000; // 10 000 minutes
    uint256 private _4years = 126000000; // 2 100 000 minutes

    /**
    * @dev Sets the values for {owner}, {manager} and {initialDepositAddress}.
    *
    * Sets the {_releaseAmount} to 50538 coins, and timestamp for {_nextReleaseDate} and {_nextReducementDate}.
    * Sends first released amount to the {initialDepositAddress}, and locks the remaining supply within contract.
    *
    * The default value of {decimals} is 18. To select a different value for
    * {decimals} you should overload it.
    *
    * All values for token parameters are immutable: they can only be set once during
    * construction.
    */
    constructor(string memory name_, string memory symbol_, uint8 decimals_, address owner_, address manager_, address initialDepositAddress) Managed(owner_, manager_)
    {
        require(initialDepositAddress != address(0), "Initial unlock address can't be a zero address");

        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;

        _totalSupply = 21000000 * uint256(10**decimals_);
        _releaseAmount = 50000 * uint256(10**decimals_);

        _nextReleaseDate = block.timestamp + _week;
        _nextReducementDate = block.timestamp + _4years;

        _balances[address(this)] = _totalSupply - _releaseAmount;
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _releaseAddress = initialDepositAddress;

        _balances[initialDepositAddress] = _releaseAmount;
        emit Transfer(address(0), initialDepositAddress, _balances[initialDepositAddress]);

        emit Release(initialDepositAddress, _balances[initialDepositAddress]);
    }

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

    /**
    * @dev Returns the symbol of the token, usually a shorter version of the
    * name.
    */
    function symbol() public view virtual override 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. This is the value {ERC20} uses, unless this function is
    * overridden;
    *
    * NOTE: This information is only used for _display_ purposes: it in
    * no way affects any of the arithmetic of the contract, including
    * {IERC20-balanceOf} and {IERC20-transfer}.
    */
    function decimals() public view virtual override returns (uint8) {
        return _decimals;
    }

    /**
    * @dev See {IERC20-getOwner}.
    */
    function getOwner() public view virtual override returns (address)
    { return owner(); }

    /**
    * @dev See {IERC20-totalSupply}.
    */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
    * @dev See {IERC20-balanceOf}.
    */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
    * @dev See {IERC20-transfer}.
    *
    * Requirements:
    *
    * - the caller must have an available balance of at least `amount`.
    */
    function transfer(address recipient, uint256 amount) external virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
    * @dev See {IERC20-allowance}.
    */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
    * @dev See {IERC20-approve}.
    *
    * Requirements:
    *
    * - `spender` cannot be the zero address.
    */
    function approve(address spender, uint256 amount) external virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
    * @dev See {IERC20-transferFrom}.
    *
    * Emits an {Approval} event indicating the updated allowance. This is not
    * required by the EIP. See the note at the beginning of {ERC20}.
    *
    * Requirements:
    *
    * - `sender` and `recipient` cannot be the zero address.
    * - `sender` must have a balance of at least `amount`.
    * - the caller must have allowance for ``sender``'s tokens of at least
    * `amount`.
    */
    function transferFrom(address sender, address recipient, uint256 amount) external virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
    * @dev Destroys `amount` tokens from the caller.
    *
    * See {ERC20-_burn}.
    */
    function burn(uint256 amount) external virtual
    { _burn(_msgSender(), amount); }

    /**
    * @dev Destroys `amount` tokens from `account`, deducting from the caller's
    * allowance.
    *
    * See {ERC20-_burn} and {ERC20-allowance}.
    *
    * Requirements:
    *
    * - the caller must have allowance for `accounts`'s tokens of at least
    * `amount`.
    */
    function burnFrom(address account, uint256 amount) external virtual
    {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        unchecked {
            _approve(account, _msgSender(), currentAllowance - amount);
        }
        _burn(account, amount);
    }

    /**
    * @dev Atomically increases the allowance granted to `spender` by the caller.
    *
    * This is an alternative to {approve} that can be used as a mitigation for
    * problems described in {IERC20-approve}.
    *
    * Emits an {Approval} event indicating the updated allowance.
    *
    * Requirements:
    *
    * - `spender` cannot be the zero address.
    */
    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
    * @dev Atomically decreases the allowance granted to `spender` by the caller.
    *
    * This is an alternative to {approve} that can be used as a mitigation for
    * problems described in {IERC20-approve}.
    *
    * Emits an {Approval} event indicating the updated allowance.
    *
    * Requirements:
    *
    * - `spender` cannot be the zero address.
    * - `spender` must have allowance for the caller of at least
    * `subtractedValue`.
    */
    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
    * @dev Sets {_releaseAddress} to {newReleaseAddress}.
    *
    * Emits a {ReleaseAddressChanged} event containing old and a new release addresses.
    */
    function setReleaseAddress(address newReleaseAddress) external onlyOwner
    {
        require(newReleaseAddress != address(0), "New release address can't be a zero address");

        address oldAddress = _releaseAddress;
        _releaseAddress = newReleaseAddress;

        emit ReleaseAddressChanged(oldAddress, _releaseAddress);
    }

    /**
    * @dev Calculates and releases new coins into circulation.
    * If multiple weeks have passed, releases all the coins that should be
    * released within those weeks.
    *
    * Emits a {Release} event containing the address {_releaseAddress} the coins were released to,
    * and the amount {toRelease} of coins the function released.
    */
    function release() external ownerOrManager
    {
        require(block.timestamp > _nextReleaseDate, "Next coin release is not yet scheduled");
        require(balanceOf(address(this)) > 0, "There are no more coins to release");

        uint256 toRelease = 0;
        uint256 currentRelease = 0;

        while((currentRelease = _calculateReleaseAmount()) > 0)
        { toRelease += currentRelease; }

        _transfer(address(this), _releaseAddress, toRelease);
        emit Release(_releaseAddress, toRelease);
    }

    /**
    * @dev Calculates the exact amount of coins that should be released for one release cycle.
    * If the next release will be after the halving date, it also calculates a new {_releaseAmount}
    * for future releases.
    *
    * Emits a {Halving} event if halving happens, containing the old release amount {oldReleaseAmount},
    * and new release amount {_releaseAmount}
    */
    function _calculateReleaseAmount() internal returns (uint256)
    {
        if(block.timestamp < _nextReleaseDate || balanceOf(address(this)) == 0)
            return 0;

        uint256 amount = _releaseAmount > balanceOf(address(this)) ? balanceOf(address(this)) : _releaseAmount;

        _nextReleaseDate += _week;
        if(_nextReleaseDate >= _nextReducementDate)
        {
            _nextReducementDate += _4years;

            uint256 oldReleaseAmount = _releaseAmount;
            _releaseAmount = (_releaseAmount * 500000) / 1000000;

            emit Halving(oldReleaseAmount, _releaseAmount);
        }

        return amount;
    }

    /**
    * @dev Moves `amount` of tokens from `sender` to `recipient`.
    *
    * This internal function is equivalent to {transfer}, and can be used to
    * e.g. implement automatic token fees, slashing mechanisms, etc.
    *
    * If the `recipient` address is zero address, calls {_burn} instead.
    *
    * Emits a {Transfer} event.
    *
    * Requirements:
    *
    * - `sender` cannot be the zero address.
    * - `sender` must have an available balance of at least `amount`.
    */
    function _transfer(address sender, address recipient, uint256 amount) internal isUnlocked virtual
    {
        require(recipient != address(0), "ERC20: transfer to zero address");
        require(sender != address(0), "ERC20: transfer from the zero address");

        require(!isAddressLocked(sender), "Sender address is currently locked and can't send funds");
        require(!isAddressLocked(recipient), "Recipient address is currently locked and can't receive funds");

        require(_balances[sender] >= amount, "ERC20: transfer amount exceeds available balance");

        _balances[sender] -= amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /**
    * @dev Sets `amount` as the allowance of `spender` over the `owner` 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:
    *
    * - `owner` cannot be the zero address.
    * - `spender` cannot be the zero address.
    */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
    * @dev Destroys `amount` tokens from `account`, reducing the
    * total supply.
    *
    * Emits a {Transfer} event with `to` set to the zero address.
    * Emits a {Burn} event with `amount` burned.
    *
    * Requirements:
    *
    * - `account` cannot be the zero address.
    * - `account` must have at least `amount` tokens.
    * - `account` can't be locked.
    */
    function _burn(address account, uint256 amount) internal isUnlocked virtual
    {
        require(account != address(0), "ERC20: burn from the zero address");

        require(!isAddressLocked(account), "Sender address is currently locked and can't burn funds");

        require(_balances[account] >= amount, "ERC20: burn amount exceeds available balance");

        _balances[account] -= amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
        emit Burn(account, amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"manager_","type":"address"},{"internalType":"address","name":"initialDepositAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"bool","name":"newLock","type":"bool"}],"name":"AddressLockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldReleaseAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newReleaseAmount","type":"uint256"}],"name":"Halving","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousManager","type":"address"},{"indexed":true,"internalType":"address","name":"newManager","type":"address"}],"name":"ManagementTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Release","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAddress","type":"address"},{"indexed":true,"internalType":"address","name":"newAddress","type":"address"}],"name":"ReleaseAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"newLock","type":"bool"}],"name":"TokenLockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isAddressLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"lockAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"release","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newManager","type":"address"}],"name":"setManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReleaseAddress","type":"address"}],"name":"setReleaseAddress","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"unlockAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a0604052620927c0600d556307829b80600e553480156200002057600080fd5b50604051620021c2380380620021c28339810160408190526200004391620004b0565b82826001600160a01b038216620000775760405162461bcd60e51b81526004016200006e9062000566565b60405180910390fd5b6001600160a01b038116620000a05760405162461bcd60e51b81526004016200006e90620005ab565b620000ab82620002a0565b620000b681620002f0565b50506001600160a01b038116620000e15760405162461bcd60e51b81526004016200006e90620005f2565b8551620000f690600790602089019062000342565b5084516200010c90600890602088019062000342565b507fff0000000000000000000000000000000000000000000000000000000000000060f885901b166080526200014484600a620006b1565b62000154906301406f40620007a9565b6006556200016484600a620006b1565b620001729061c350620007a9565b600955600d5462000184904262000649565b600a55600e5462000196904262000649565b600b55600954600654620001ab9190620007cb565b306000818152600460205260408082208490555191929091600080516020620021a283398151915291620001df9162000640565b60405180910390a3600c80546001600160a01b0319166001600160a01b038316908117909155600954600082815260046020526040808220839055519091600080516020620021a2833981519152916200023a919062000640565b60405180910390a36001600160a01b038116600081815260046020526040908190205490517ff6334794522b9db534a812aaae1af828a2e96aac68473b58e36d7d0bfd67477b916200028c9162000640565b60405180910390a25050505050506200084e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee679190a35050565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8590600090a35050565b8280546200035090620007e5565b90600052602060002090601f016020900481019282620003745760008555620003bf565b82601f106200038f57805160ff1916838001178555620003bf565b82800160010185558215620003bf579182015b82811115620003bf578251825591602001919060010190620003a2565b50620003cd929150620003d1565b5090565b5b80821115620003cd5760008155600101620003d2565b80516001600160a01b03811681146200040057600080fd5b919050565b600082601f83011262000416578081fd5b81516001600160401b038082111562000433576200043362000838565b6040516020601f8401601f19168201810183811183821017156200045b576200045b62000838565b604052838252858401810187101562000472578485fd5b8492505b8383101562000495578583018101518284018201529182019162000476565b83831115620004a657848185840101525b5095945050505050565b60008060008060008060c08789031215620004c9578182fd5b86516001600160401b0380821115620004e0578384fd5b620004ee8a838b0162000405565b9750602089015191508082111562000504578384fd5b506200051389828a0162000405565b955050604087015160ff811681146200052a578283fd5b93506200053a60608801620003e8565b92506200054a60808801620003e8565b91506200055a60a08801620003e8565b90509295509295509295565b60208082526025908201527f4f776e657220616464726573732063616e27742062652061207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526027908201527f4d616e6167657220616464726573732063616e27742062652061207a65726f206040820152666164647265737360c81b606082015260800190565b6020808252602e908201527f496e697469616c20756e6c6f636b20616464726573732063616e27742062652060408201526d61207a65726f206164647265737360901b606082015260800190565b90815260200190565b600082198211156200065f576200065f62000822565b500190565b80825b6001808611620006785750620006a8565b8187048211156200068d576200068d62000822565b808616156200069b57918102915b9490941c93800262000667565b94509492505050565b6000620006c560001960ff851684620006cc565b9392505050565b600082620006dd57506001620006c5565b81620006ec57506000620006c5565b8160018114620007055760028114620007105762000744565b6001915050620006c5565b60ff84111562000724576200072462000822565b6001841b9150848211156200073d576200073d62000822565b50620006c5565b5060208310610133831016604e8410600b84101617156200077c575081810a8381111562000776576200077662000822565b620006c5565b6200078b848484600162000664565b808604821115620007a057620007a062000822565b02949350505050565b6000816000190483118215151615620007c657620007c662000822565b500290565b600082821015620007e057620007e062000822565b500390565b600281046001821680620007fa57607f821691505b602082108114156200081c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60805160f81c6119356200086d600039600061059001526119356000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806386d1a69f116100de578063a9059cbb11610097578063c2e2b29211610071578063c2e2b29214610308578063d0ebdbe71461031b578063dd62ed3e1461032e578063e52e9f15146103415761018e565b8063a9059cbb146102da578063b7eb5e0a146102ed578063bca7a9e2146103005761018e565b806386d1a69f1461029f578063893d20e8146102a75780638da5cb5b146102af57806395d89b41146102b7578063a457c2d7146102bf578063a4e2d634146102d25761018e565b8063313ce5671161014b57806342966c681161012557806342966c6814610251578063481c6a751461026457806370a082311461027957806379cc67901461028c5761018e565b8063313ce5671461021657806334a90d021461022b578063395093511461023e5761018e565b806306fdde0314610193578063095ea7b3146101b157806313af4035146101d157806318160ddd146101e657806318a24b5b146101fb57806323b872dd14610203575b600080fd5b61019b610354565b6040516101a891906111d4565b60405180910390f35b6101c46101bf366004611174565b6103e7565b6040516101a891906111c9565b6101e46101df3660046110e6565b610404565b005b6101ee610479565b6040516101a8919061181b565b6101e461047f565b6101c4610211366004611139565b6104fe565b61021e61058e565b6040516101a89190611832565b6101e46102393660046110e6565b6105b2565b6101c461024c366004611174565b61064c565b6101e461025f36600461119d565b6106a0565b61026c6106b1565b6040516101a891906111b5565b6101ee6102873660046110e6565b6106c0565b6101e461029a366004611174565b6106df565b6101e4610732565b61026c610865565b61026c610874565b61019b610883565b6101c46102cd366004611174565b610892565b6101c461090b565b6101c46102e8366004611174565b610914565b6101e46102fb3660046110e6565b610928565b6101e46109af565b6101e46103163660046110e6565b610a27565b6101e46103293660046110e6565b610adb565b6101ee61033c366004611107565b610b44565b6101c461034f3660046110e6565b610b6f565b606060078054610363906118ae565b80601f016020809104026020016040519081016040528092919081815260200182805461038f906118ae565b80156103dc5780601f106103b1576101008083540402835291602001916103dc565b820191906000526020600020905b8154815290600101906020018083116103bf57829003601f168201915b505050505090505b90565b60006103fb6103f4610b8d565b8484610b91565b50600192915050565b6000546001600160a01b0316610418610b8d565b6001600160a01b0316146104475760405162461bcd60e51b815260040161043e90611469565b60405180910390fd5b6001600160a01b03811661046d5760405162461bcd60e51b815260040161043e90611528565b61047681610c45565b50565b60065490565b6000546001600160a01b0316610493610b8d565b6001600160a01b0316146104b95760405162461bcd60e51b815260040161043e90611469565b6003805460ff191690556040517f74e75687cb4b4a63d93a397950b5ded4054b5b45e48b215162a5efb3162465cd906104f4906000906111c9565b60405180910390a1565b600061050b848484610c95565b6001600160a01b03841660009081526005602052604081208161052c610b8d565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508281101561056f5760405162461bcd60e51b815260040161043e90611421565b6105838561057b610b8d565b858403610b91565b506001949350505050565b7f000000000000000000000000000000000000000000000000000000000000000090565b6000546001600160a01b03166105c6610b8d565b6001600160a01b0316146105ec5760405162461bcd60e51b815260040161043e90611469565b6001600160a01b03811660008181526002602052604090819020805460ff1916600190811790915590517f18e3f5e6e436b491427e1abe846e624b5846cd3bad2f3b48ad174ec2eb1431d991610641916111c9565b60405180910390a250565b60006103fb610659610b8d565b848460056000610667610b8d565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461069b9190611840565b610b91565b6104766106ab610b8d565b82610e27565b6001546001600160a01b031690565b6001600160a01b0381166000908152600460205260409020545b919050565b60006106ed8361033c610b8d565b90508181101561070f5760405162461bcd60e51b815260040161043e906114e4565b6107238361071b610b8d565b848403610b91565b61072d8383610e27565b505050565b6000546001600160a01b0316610746610b8d565b6001600160a01b0316148061077557506001546001600160a01b031661076a610b8d565b6001600160a01b0316145b6107915760405162461bcd60e51b815260040161043e9061172e565b600a5442116107b25760405162461bcd60e51b815260040161043e9061149e565b60006107bd306106c0565b116107da5760405162461bcd60e51b815260040161043e90611227565b6000805b60006107e8610f93565b9150811115610802576107fb8183611840565b91506107de565b600c5461081a9030906001600160a01b031684610c95565b600c546040516001600160a01b03909116907ff6334794522b9db534a812aaae1af828a2e96aac68473b58e36d7d0bfd67477b9061085990859061181b565b60405180910390a25050565b600061086f610874565b905090565b6000546001600160a01b031690565b606060088054610363906118ae565b600080600560006108a1610b8d565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156108ed5760405162461bcd60e51b815260040161043e906117d6565b6109016108f8610b8d565b85858403610b91565b5060019392505050565b60035460ff1690565b60006103fb610921610b8d565b8484610c95565b6000546001600160a01b031661093c610b8d565b6001600160a01b0316146109625760405162461bcd60e51b815260040161043e90611469565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f18e3f5e6e436b491427e1abe846e624b5846cd3bad2f3b48ad174ec2eb1431d991610641916111c9565b6000546001600160a01b03166109c3610b8d565b6001600160a01b0316146109e95760405162461bcd60e51b815260040161043e90611469565b6003805460ff191660019081179091556040517f74e75687cb4b4a63d93a397950b5ded4054b5b45e48b215162a5efb3162465cd916104f4916111c9565b6000546001600160a01b0316610a3b610b8d565b6001600160a01b031614610a615760405162461bcd60e51b815260040161043e90611469565b6001600160a01b038116610a875760405162461bcd60e51b815260040161043e906115cd565b600c80546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f0822d2eff5e397b947a8e3922f27065290b50e08d40f83fa8f3b72c41aa7e6f590600090a35050565b6000546001600160a01b0316610aef610b8d565b6001600160a01b031614610b155760405162461bcd60e51b815260040161043e90611469565b6001600160a01b038116610b3b5760405162461bcd60e51b815260040161043e906112f3565b6104768161107d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6001600160a01b031660009081526002602052604090205460ff1690565b3390565b6001600160a01b038316610bb75760405162461bcd60e51b815260040161043e9061169e565b6001600160a01b038216610bdd5760405162461bcd60e51b815260040161043e906112b1565b6001600160a01b0380841660008181526005602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c3890859061181b565b60405180910390a3505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee679190a35050565b60035460ff1615610cb85760405162461bcd60e51b815260040161043e90611269565b6001600160a01b038216610cde5760405162461bcd60e51b815260040161043e9061133d565b6001600160a01b038316610d045760405162461bcd60e51b815260040161043e90611659565b610d0d83610b6f565b15610d2a5760405162461bcd60e51b815260040161043e90611570565b610d3382610b6f565b15610d505760405162461bcd60e51b815260040161043e906113c4565b6001600160a01b038316600090815260046020526040902054811115610d885760405162461bcd60e51b815260040161043e90611374565b6001600160a01b03831660009081526004602052604081208054839290610db0908490611897565b90915550506001600160a01b03821660009081526004602052604081208054839290610ddd908490611840565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c38919061181b565b60035460ff1615610e4a5760405162461bcd60e51b815260040161043e90611269565b6001600160a01b038216610e705760405162461bcd60e51b815260040161043e90611618565b610e7982610b6f565b15610e965760405162461bcd60e51b815260040161043e90611779565b6001600160a01b038216600090815260046020526040902054811115610ece5760405162461bcd60e51b815260040161043e906116e2565b6001600160a01b03821660009081526004602052604081208054839290610ef6908490611897565b925050819055508060066000828254610f0f9190611897565b90915550506040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f5290859061181b565b60405180910390a3816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610859919061181b565b6000600a54421080610fab5750610fa9306106c0565b155b15610fb8575060006103e4565b6000610fc3306106c0565b60095411610fd357600954610fdc565b610fdc306106c0565b9050600d54600a6000828254610ff29190611840565b9091555050600b54600a541061086f57600e54600b60008282546110169190611840565b9091555050600954620f424061102f826207a120611878565b6110399190611858565b60098190556040517f394823b0bcaf78cd8f5876a52c05dbab91512a05f5da2a31e239a11ab66d605f9161106f91849190611824565b60405180910390a150905090565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8590600090a35050565b80356001600160a01b03811681146106da57600080fd5b6000602082840312156110f7578081fd5b611100826110cf565b9392505050565b60008060408385031215611119578081fd5b611122836110cf565b9150611130602084016110cf565b90509250929050565b60008060006060848603121561114d578081fd5b611156846110cf565b9250611164602085016110cf565b9150604084013590509250925092565b60008060408385031215611186578182fd5b61118f836110cf565b946020939093013593505050565b6000602082840312156111ae578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015611200578581018301518582016040015282016111e4565b818111156112115783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f546865726520617265206e6f206d6f726520636f696e7320746f2072656c6561604082015261736560f01b606082015260800190565b60208082526028908201527f416c6c20746f6b656e207472616e7366657273206172652063757272656e746c6040820152671e481b1bd8dad95960c21b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f4d616e616765643a206e6577206d616e616765722063616e2774206265207a65604082015269726f206164647265737360b01b606082015260800190565b6020808252601f908201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604082015260600190565b60208082526030908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160408201526f7661696c61626c652062616c616e636560801b606082015260800190565b6020808252603d908201527f526563697069656e7420616464726573732069732063757272656e746c79206c60408201527f6f636b656420616e642063616e277420726563656976652066756e6473000000606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4d616e616765643a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526026908201527f4e65787420636f696e2072656c65617365206973206e6f74207965742073636860408201526519591d5b195960d21b606082015260800190565b60208082526024908201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604082015263616e636560e01b606082015260800190565b60208082526028908201527f4d616e616765643a206e6577206f776e65722063616e2774206265207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526037908201527f53656e64657220616464726573732069732063757272656e746c79206c6f636b60408201527f656420616e642063616e27742073656e642066756e6473000000000000000000606082015260800190565b6020808252602b908201527f4e65772072656c6561736520616464726573732063616e27742062652061207a60408201526a65726f206164647265737360a81b606082015260800190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f45524332303a206275726e20616d6f756e74206578636565647320617661696c60408201526b61626c652062616c616e636560a01b606082015260800190565b6020808252602b908201527f4d616e616765643a2063616c6c6572206973206e6f7420746865206f776e657260408201526a1037b91036b0b730b3b2b960a91b606082015260800190565b60208082526037908201527f53656e64657220616464726573732069732063757272656e746c79206c6f636b60408201527f656420616e642063616e2774206275726e2066756e6473000000000000000000606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b918252602082015260400190565b60ff91909116815260200190565b60008219821115611853576118536118e9565b500190565b60008261187357634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611892576118926118e9565b500290565b6000828210156118a9576118a96118e9565b500390565b6002810460018216806118c257607f821691505b602082108114156118e357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220f9a291144a28b74c864733111fc7837806dea8f0f460d716c0226600cb111f8a64736f6c63430008000033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000ddb5b5fff59c95cb7d60fabf44b340ce9aea37400000000000000000000000000ce1190eac11747eddf500480464ed2ac8eb184000000000000000000000000016acecfed1dd8461de48aa09522a0e9528b07d35000000000000000000000000000000000000000000000000000000000000000750726f7065725400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000550524f5054000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c806386d1a69f116100de578063a9059cbb11610097578063c2e2b29211610071578063c2e2b29214610308578063d0ebdbe71461031b578063dd62ed3e1461032e578063e52e9f15146103415761018e565b8063a9059cbb146102da578063b7eb5e0a146102ed578063bca7a9e2146103005761018e565b806386d1a69f1461029f578063893d20e8146102a75780638da5cb5b146102af57806395d89b41146102b7578063a457c2d7146102bf578063a4e2d634146102d25761018e565b8063313ce5671161014b57806342966c681161012557806342966c6814610251578063481c6a751461026457806370a082311461027957806379cc67901461028c5761018e565b8063313ce5671461021657806334a90d021461022b578063395093511461023e5761018e565b806306fdde0314610193578063095ea7b3146101b157806313af4035146101d157806318160ddd146101e657806318a24b5b146101fb57806323b872dd14610203575b600080fd5b61019b610354565b6040516101a891906111d4565b60405180910390f35b6101c46101bf366004611174565b6103e7565b6040516101a891906111c9565b6101e46101df3660046110e6565b610404565b005b6101ee610479565b6040516101a8919061181b565b6101e461047f565b6101c4610211366004611139565b6104fe565b61021e61058e565b6040516101a89190611832565b6101e46102393660046110e6565b6105b2565b6101c461024c366004611174565b61064c565b6101e461025f36600461119d565b6106a0565b61026c6106b1565b6040516101a891906111b5565b6101ee6102873660046110e6565b6106c0565b6101e461029a366004611174565b6106df565b6101e4610732565b61026c610865565b61026c610874565b61019b610883565b6101c46102cd366004611174565b610892565b6101c461090b565b6101c46102e8366004611174565b610914565b6101e46102fb3660046110e6565b610928565b6101e46109af565b6101e46103163660046110e6565b610a27565b6101e46103293660046110e6565b610adb565b6101ee61033c366004611107565b610b44565b6101c461034f3660046110e6565b610b6f565b606060078054610363906118ae565b80601f016020809104026020016040519081016040528092919081815260200182805461038f906118ae565b80156103dc5780601f106103b1576101008083540402835291602001916103dc565b820191906000526020600020905b8154815290600101906020018083116103bf57829003601f168201915b505050505090505b90565b60006103fb6103f4610b8d565b8484610b91565b50600192915050565b6000546001600160a01b0316610418610b8d565b6001600160a01b0316146104475760405162461bcd60e51b815260040161043e90611469565b60405180910390fd5b6001600160a01b03811661046d5760405162461bcd60e51b815260040161043e90611528565b61047681610c45565b50565b60065490565b6000546001600160a01b0316610493610b8d565b6001600160a01b0316146104b95760405162461bcd60e51b815260040161043e90611469565b6003805460ff191690556040517f74e75687cb4b4a63d93a397950b5ded4054b5b45e48b215162a5efb3162465cd906104f4906000906111c9565b60405180910390a1565b600061050b848484610c95565b6001600160a01b03841660009081526005602052604081208161052c610b8d565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508281101561056f5760405162461bcd60e51b815260040161043e90611421565b6105838561057b610b8d565b858403610b91565b506001949350505050565b7f000000000000000000000000000000000000000000000000000000000000001290565b6000546001600160a01b03166105c6610b8d565b6001600160a01b0316146105ec5760405162461bcd60e51b815260040161043e90611469565b6001600160a01b03811660008181526002602052604090819020805460ff1916600190811790915590517f18e3f5e6e436b491427e1abe846e624b5846cd3bad2f3b48ad174ec2eb1431d991610641916111c9565b60405180910390a250565b60006103fb610659610b8d565b848460056000610667610b8d565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461069b9190611840565b610b91565b6104766106ab610b8d565b82610e27565b6001546001600160a01b031690565b6001600160a01b0381166000908152600460205260409020545b919050565b60006106ed8361033c610b8d565b90508181101561070f5760405162461bcd60e51b815260040161043e906114e4565b6107238361071b610b8d565b848403610b91565b61072d8383610e27565b505050565b6000546001600160a01b0316610746610b8d565b6001600160a01b0316148061077557506001546001600160a01b031661076a610b8d565b6001600160a01b0316145b6107915760405162461bcd60e51b815260040161043e9061172e565b600a5442116107b25760405162461bcd60e51b815260040161043e9061149e565b60006107bd306106c0565b116107da5760405162461bcd60e51b815260040161043e90611227565b6000805b60006107e8610f93565b9150811115610802576107fb8183611840565b91506107de565b600c5461081a9030906001600160a01b031684610c95565b600c546040516001600160a01b03909116907ff6334794522b9db534a812aaae1af828a2e96aac68473b58e36d7d0bfd67477b9061085990859061181b565b60405180910390a25050565b600061086f610874565b905090565b6000546001600160a01b031690565b606060088054610363906118ae565b600080600560006108a1610b8d565b6001600160a01b03908116825260208083019390935260409182016000908120918816815292529020549050828110156108ed5760405162461bcd60e51b815260040161043e906117d6565b6109016108f8610b8d565b85858403610b91565b5060019392505050565b60035460ff1690565b60006103fb610921610b8d565b8484610c95565b6000546001600160a01b031661093c610b8d565b6001600160a01b0316146109625760405162461bcd60e51b815260040161043e90611469565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f18e3f5e6e436b491427e1abe846e624b5846cd3bad2f3b48ad174ec2eb1431d991610641916111c9565b6000546001600160a01b03166109c3610b8d565b6001600160a01b0316146109e95760405162461bcd60e51b815260040161043e90611469565b6003805460ff191660019081179091556040517f74e75687cb4b4a63d93a397950b5ded4054b5b45e48b215162a5efb3162465cd916104f4916111c9565b6000546001600160a01b0316610a3b610b8d565b6001600160a01b031614610a615760405162461bcd60e51b815260040161043e90611469565b6001600160a01b038116610a875760405162461bcd60e51b815260040161043e906115cd565b600c80546001600160a01b038381166001600160a01b03198316179283905560405191811692169082907f0822d2eff5e397b947a8e3922f27065290b50e08d40f83fa8f3b72c41aa7e6f590600090a35050565b6000546001600160a01b0316610aef610b8d565b6001600160a01b031614610b155760405162461bcd60e51b815260040161043e90611469565b6001600160a01b038116610b3b5760405162461bcd60e51b815260040161043e906112f3565b6104768161107d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6001600160a01b031660009081526002602052604090205460ff1690565b3390565b6001600160a01b038316610bb75760405162461bcd60e51b815260040161043e9061169e565b6001600160a01b038216610bdd5760405162461bcd60e51b815260040161043e906112b1565b6001600160a01b0380841660008181526005602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610c3890859061181b565b60405180910390a3505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee679190a35050565b60035460ff1615610cb85760405162461bcd60e51b815260040161043e90611269565b6001600160a01b038216610cde5760405162461bcd60e51b815260040161043e9061133d565b6001600160a01b038316610d045760405162461bcd60e51b815260040161043e90611659565b610d0d83610b6f565b15610d2a5760405162461bcd60e51b815260040161043e90611570565b610d3382610b6f565b15610d505760405162461bcd60e51b815260040161043e906113c4565b6001600160a01b038316600090815260046020526040902054811115610d885760405162461bcd60e51b815260040161043e90611374565b6001600160a01b03831660009081526004602052604081208054839290610db0908490611897565b90915550506001600160a01b03821660009081526004602052604081208054839290610ddd908490611840565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c38919061181b565b60035460ff1615610e4a5760405162461bcd60e51b815260040161043e90611269565b6001600160a01b038216610e705760405162461bcd60e51b815260040161043e90611618565b610e7982610b6f565b15610e965760405162461bcd60e51b815260040161043e90611779565b6001600160a01b038216600090815260046020526040902054811115610ece5760405162461bcd60e51b815260040161043e906116e2565b6001600160a01b03821660009081526004602052604081208054839290610ef6908490611897565b925050819055508060066000828254610f0f9190611897565b90915550506040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f5290859061181b565b60405180910390a3816001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610859919061181b565b6000600a54421080610fab5750610fa9306106c0565b155b15610fb8575060006103e4565b6000610fc3306106c0565b60095411610fd357600954610fdc565b610fdc306106c0565b9050600d54600a6000828254610ff29190611840565b9091555050600b54600a541061086f57600e54600b60008282546110169190611840565b9091555050600954620f424061102f826207a120611878565b6110399190611858565b60098190556040517f394823b0bcaf78cd8f5876a52c05dbab91512a05f5da2a31e239a11ab66d605f9161106f91849190611824565b60405180910390a150905090565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f80f15e9dbc60884fdb59fb8ed4fc48a9a689e028f055e893ed45ca5be67c5c8590600090a35050565b80356001600160a01b03811681146106da57600080fd5b6000602082840312156110f7578081fd5b611100826110cf565b9392505050565b60008060408385031215611119578081fd5b611122836110cf565b9150611130602084016110cf565b90509250929050565b60008060006060848603121561114d578081fd5b611156846110cf565b9250611164602085016110cf565b9150604084013590509250925092565b60008060408385031215611186578182fd5b61118f836110cf565b946020939093013593505050565b6000602082840312156111ae578081fd5b5035919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015611200578581018301518582016040015282016111e4565b818111156112115783604083870101525b50601f01601f1916929092016040019392505050565b60208082526022908201527f546865726520617265206e6f206d6f726520636f696e7320746f2072656c6561604082015261736560f01b606082015260800190565b60208082526028908201527f416c6c20746f6b656e207472616e7366657273206172652063757272656e746c6040820152671e481b1bd8dad95960c21b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252602a908201527f4d616e616765643a206e6577206d616e616765722063616e2774206265207a65604082015269726f206164647265737360b01b606082015260800190565b6020808252601f908201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604082015260600190565b60208082526030908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160408201526f7661696c61626c652062616c616e636560801b606082015260800190565b6020808252603d908201527f526563697069656e7420616464726573732069732063757272656e746c79206c60408201527f6f636b656420616e642063616e277420726563656976652066756e6473000000606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4d616e616765643a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526026908201527f4e65787420636f696e2072656c65617365206973206e6f74207965742073636860408201526519591d5b195960d21b606082015260800190565b60208082526024908201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604082015263616e636560e01b606082015260800190565b60208082526028908201527f4d616e616765643a206e6577206f776e65722063616e2774206265207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526037908201527f53656e64657220616464726573732069732063757272656e746c79206c6f636b60408201527f656420616e642063616e27742073656e642066756e6473000000000000000000606082015260800190565b6020808252602b908201527f4e65772072656c6561736520616464726573732063616e27742062652061207a60408201526a65726f206164647265737360a81b606082015260800190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f45524332303a206275726e20616d6f756e74206578636565647320617661696c60408201526b61626c652062616c616e636560a01b606082015260800190565b6020808252602b908201527f4d616e616765643a2063616c6c6572206973206e6f7420746865206f776e657260408201526a1037b91036b0b730b3b2b960a91b606082015260800190565b60208082526037908201527f53656e64657220616464726573732069732063757272656e746c79206c6f636b60408201527f656420616e642063616e2774206275726e2066756e6473000000000000000000606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b918252602082015260400190565b60ff91909116815260200190565b60008219821115611853576118536118e9565b500190565b60008261187357634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611892576118926118e9565b500290565b6000828210156118a9576118a96118e9565b500390565b6002810460018216806118c257607f821691505b602082108114156118e357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220f9a291144a28b74c864733111fc7837806dea8f0f460d716c0226600cb111f8a64736f6c63430008000033

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

00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000ddb5b5fff59c95cb7d60fabf44b340ce9aea37400000000000000000000000000ce1190eac11747eddf500480464ed2ac8eb184000000000000000000000000016acecfed1dd8461de48aa09522a0e9528b07d35000000000000000000000000000000000000000000000000000000000000000750726f7065725400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000550524f5054000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): ProperT
Arg [1] : symbol_ (string): PROPT
Arg [2] : decimals_ (uint8): 18
Arg [3] : owner_ (address): 0xDdb5B5fFF59C95cb7D60FabF44b340ce9aea3740
Arg [4] : manager_ (address): 0x0ce1190EAC11747edDF500480464eD2aC8eB1840
Arg [5] : initialDepositAddress (address): 0x16ACEcFEd1dD8461dE48aA09522A0e9528B07d35

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000ddb5b5fff59c95cb7d60fabf44b340ce9aea3740
Arg [4] : 0000000000000000000000000ce1190eac11747eddf500480464ed2ac8eb1840
Arg [5] : 00000000000000000000000016acecfed1dd8461de48aa09522a0e9528b07d35
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [7] : 50726f7065725400000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [9] : 50524f5054000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

10574:13781:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13128:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15383:171;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5539:184::-;;;;;;:::i;:::-;;:::i;:::-;;14389:108;;;:::i;:::-;;;;;;;:::i;8092:120::-;;;:::i;16024:460::-;;;;;;:::i;:::-;;:::i;14075:100::-;;;:::i;:::-;;;;;;;:::i;8735:150::-;;;;;;:::i;:::-;;:::i;17760:217::-;;;;;;:::i;:::-;;:::i;16596:84::-;;;;;;:::i;:::-;;:::i;5333:74::-;;;:::i;:::-;;;;;;;:::i;14558:127::-;;;;;;:::i;:::-;;:::i;16987:375::-;;;;;;:::i;:::-;;:::i;19783:534::-;;;:::i;14235:91::-;;;:::i;5182:70::-;;;:::i;13344:104::-;;;:::i;18467:415::-;;;;;;:::i;:::-;;:::i;8295:71::-;;;:::i;14853:177::-;;;;;;:::i;:::-;;:::i;9042:154::-;;;;;;:::i;:::-;;:::i;7856:116::-;;;:::i;19062:347::-;;;;;;:::i;:::-;;:::i;5859:196::-;;;;;;:::i;:::-;;:::i;15091:151::-;;;;;;:::i;:::-;;:::i;9291:102::-;;;;;;:::i;:::-;;:::i;13128:100::-;13182:13;13215:5;13208:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13128:100;;:::o;15383:171::-;15468:4;15485:39;15494:12;:10;:12::i;:::-;15508:7;15517:6;15485:8;:39::i;:::-;-1:-1:-1;15542:4:0;15383:171;;;;:::o;5539:184::-;6207:6;;-1:-1:-1;;;;;6207:6:0;6191:12;:10;:12::i;:::-;-1:-1:-1;;;;;6191:22:0;;6183:67;;;;-1:-1:-1;;;6183:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;5618:22:0;::::1;5610:75;;;;-1:-1:-1::0;;;5610:75:0::1;;;;;;;:::i;:::-;5696:19;5706:8;5696:9;:19::i;:::-;5539:184:::0;:::o;14389:108::-;14477:12;;14389:108;:::o;8092:120::-;6207:6;;-1:-1:-1;;;;;6207:6:0;6191:12;:10;:12::i;:::-;-1:-1:-1;;;;;6191:22:0;;6183:67;;;;-1:-1:-1;;;6183:67:0;;;;;;;:::i;:::-;8150:7:::1;:15:::0;;-1:-1:-1;;8150:15:0::1;::::0;;8181:23:::1;::::0;::::1;::::0;::::1;::::0;8160:5:::1;::::0;8181:23:::1;:::i;:::-;;;;;;;;8092:120::o:0;16024:460::-;16132:4;16149:36;16159:6;16167:9;16178:6;16149:9;:36::i;:::-;-1:-1:-1;;;;;16225:19:0;;16198:24;16225:19;;;:11;:19;;;;;16198:24;16245:12;:10;:12::i;:::-;-1:-1:-1;;;;;16225:33:0;-1:-1:-1;;;;;16225:33:0;;;;;;;;;;;;;16198:60;;16297:6;16277:16;:26;;16269:79;;;;-1:-1:-1;;;16269:79:0;;;;;;;:::i;:::-;16384:57;16393:6;16401:12;:10;:12::i;:::-;16434:6;16415:16;:25;16384:8;:57::i;:::-;-1:-1:-1;16472:4:0;;16024:460;-1:-1:-1;;;;16024:460:0:o;14075:100::-;14158:9;14075:100;:::o;8735:150::-;6207:6;;-1:-1:-1;;;;;6207:6:0;6191:12;:10;:12::i;:::-;-1:-1:-1;;;;;6191:22:0;;6183:67;;;;-1:-1:-1;;;6183:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8805:19:0;::::1;;::::0;;;:13:::1;:19;::::0;;;;;;:26;;-1:-1:-1;;8805:26:0::1;8827:4;8805:26:::0;;::::1;::::0;;;8847:30;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;8735:150:::0;:::o;17760:217::-;17850:4;17867:80;17876:12;:10;:12::i;:::-;17890:7;17936:10;17899:11;:25;17911:12;:10;:12::i;:::-;-1:-1:-1;;;;;17899:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;17899:25:0;;;:34;;;;;;;;;;:47;;;;:::i;:::-;17867:8;:80::i;16596:84::-;16650:27;16656:12;:10;:12::i;:::-;16670:6;16650:5;:27::i;5333:74::-;5396:8;;-1:-1:-1;;;;;5396:8:0;5333:74;:::o;14558:127::-;-1:-1:-1;;;;;14659:18:0;;14632:7;14659:18;;;:9;:18;;;;;;14558:127;;;;:::o;16987:375::-;17071:24;17098:32;17108:7;17117:12;:10;:12::i;17098:32::-;17071:59;;17169:6;17149:16;:26;;17141:75;;;;-1:-1:-1;;;17141:75:0;;;;;;;:::i;:::-;17252:58;17261:7;17270:12;:10;:12::i;:::-;17303:6;17284:16;:25;17252:8;:58::i;:::-;17332:22;17338:7;17347:6;17332:5;:22::i;:::-;16987:375;;;:::o;19783:534::-;6434:6;;-1:-1:-1;;;;;6434:6:0;6418:12;:10;:12::i;:::-;-1:-1:-1;;;;;6418:22:0;;:50;;;-1:-1:-1;6460:8:0;;-1:-1:-1;;;;;6460:8:0;6444:12;:10;:12::i;:::-;-1:-1:-1;;;;;6444:24:0;;6418:50;6410:106;;;;-1:-1:-1;;;6410:106:0;;;;;;;:::i;:::-;19868:16:::1;;19850:15;:34;19842:85;;;;-1:-1:-1::0;;;19842:85:0::1;;;;;;;:::i;:::-;19973:1;19946:24;19964:4;19946:9;:24::i;:::-;:28;19938:75;;;;-1:-1:-1::0;;;19938:75:0::1;;;;;;;:::i;:::-;20026:17;20058:22:::0;20097:97:::1;20150:1;20121:25;:23;:25::i;:::-;20104:42;;;20103:48;20097:97;;;20164:27;20177:14:::0;20164:27;::::1;:::i;:::-;;;20097:97;;;20231:15;::::0;20206:52:::1;::::0;20224:4:::1;::::0;-1:-1:-1;;;;;20231:15:0::1;20248:9:::0;20206::::1;:52::i;:::-;20282:15;::::0;20274:35:::1;::::0;-1:-1:-1;;;;;20282:15:0;;::::1;::::0;20274:35:::1;::::0;::::1;::::0;20299:9;;20274:35:::1;:::i;:::-;;;;;;;;6527:1;;19783:534::o:0;14235:91::-;14293:7;14316;:5;:7::i;:::-;14309:14;;14235:91;:::o;5182:70::-;5220:7;5243:6;-1:-1:-1;;;;;5243:6:0;5182:70;:::o;13344:104::-;13400:13;13433:7;13426:14;;;;;:::i;18467:415::-;18562:4;18579:24;18606:11;:25;18618:12;:10;:12::i;:::-;-1:-1:-1;;;;;18606:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;18606:25:0;;;:34;;;;;;;;;;;-1:-1:-1;18659:35:0;;;;18651:85;;;;-1:-1:-1;;;18651:85:0;;;;;;;:::i;:::-;18772:67;18781:12;:10;:12::i;:::-;18795:7;18823:15;18804:16;:34;18772:8;:67::i;:::-;-1:-1:-1;18870:4:0;;18467:415;-1:-1:-1;;;18467:415:0:o;8295:71::-;8356:7;;;;8295:71;:::o;14853:177::-;14941:4;14958:42;14968:12;:10;:12::i;:::-;14982:9;14993:6;14958:9;:42::i;9042:154::-;6207:6;;-1:-1:-1;;;;;6207:6:0;6191:12;:10;:12::i;:::-;-1:-1:-1;;;;;6191:22:0;;6183:67;;;;-1:-1:-1;;;6183:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9114:19:0;::::1;9136:5;9114:19:::0;;;:13:::1;:19;::::0;;;;;:27;;-1:-1:-1;;9114:27:0::1;::::0;;9157:31;::::1;::::0;::::1;::::0;::::1;:::i;7856:116::-:0;6207:6;;-1:-1:-1;;;;;6207:6:0;6191:12;:10;:12::i;:::-;-1:-1:-1;;;;;6191:22:0;;6183:67;;;;-1:-1:-1;;;6183:67:0;;;;;;;:::i;:::-;7912:7:::1;:14:::0;;-1:-1:-1;;7912:14:0::1;7922:4;7912:14:::0;;::::1;::::0;;;7942:22:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;19062:347::-:0;6207:6;;-1:-1:-1;;;;;6207:6:0;6191:12;:10;:12::i;:::-;-1:-1:-1;;;;;6191:22:0;;6183:67;;;;-1:-1:-1;;;6183:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19159:31:0;::::1;19151:87;;;;-1:-1:-1::0;;;19151:87:0::1;;;;;;;:::i;:::-;19272:15;::::0;;-1:-1:-1;;;;;19298:35:0;;::::1;-1:-1:-1::0;;;;;;19298:35:0;::::1;;::::0;;;;19351:50:::1;::::0;19272:15;;::::1;::::0;19385::::1;::::0;19272;;19351:50:::1;::::0;19251:18:::1;::::0;19351:50:::1;6261:1;19062:347:::0;:::o;5859:196::-;6207:6;;-1:-1:-1;;;;;6207:6:0;6191:12;:10;:12::i;:::-;-1:-1:-1;;;;;6191:22:0;;6183:67;;;;-1:-1:-1;;;6183:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5942:24:0;::::1;5934:79;;;;-1:-1:-1::0;;;5934:79:0::1;;;;;;;:::i;:::-;6024:23;6036:10;6024:11;:23::i;15091:151::-:0;-1:-1:-1;;;;;15207:18:0;;;15180:7;15207:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15091:151::o;9291:102::-;-1:-1:-1;;;;;9371:19:0;9351:4;9371:19;;;:13;:19;;;;;;;;;9291:102::o;3718:98::-;3798:10;3718:98;:::o;23060:346::-;-1:-1:-1;;;;;23162:19:0;;23154:68;;;;-1:-1:-1;;;23154:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23241:21:0;;23233:68;;;;-1:-1:-1;;;23233:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23314:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;23366:32;;;;;23344:6;;23366:32;:::i;:::-;;;;;;;;23060:346;;;:::o;6685:178::-;6747:16;6766:6;;-1:-1:-1;;;;;6783:17:0;;;-1:-1:-1;;;;;;6783:17:0;;;;;;6816:39;;6766:6;;;;;;;6816:39;;6747:16;6816:39;6685:178;;:::o;21912:722::-;8508:7;;;;8507:8;8499:61;;;;-1:-1:-1;;;8499:61:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22034:23:0;::::1;22026:67;;;;-1:-1:-1::0;;;22026:67:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22112:20:0;::::1;22104:70;;;;-1:-1:-1::0;;;22104:70:0::1;;;;;;;:::i;:::-;22196:23;22212:6;22196:15;:23::i;:::-;22195:24;22187:92;;;;-1:-1:-1::0;;;22187:92:0::1;;;;;;;:::i;:::-;22299:26;22315:9;22299:15;:26::i;:::-;22298:27;22290:101;;;;-1:-1:-1::0;;;22290:101:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22412:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;:27;-1:-1:-1;22412:27:0::1;22404:88;;;;-1:-1:-1::0;;;22404:88:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22505:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;:27;;22526:6;;22505:17;:27:::1;::::0;22526:6;;22505:27:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;22543:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;:30;;22567:6;;22543:20;:30:::1;::::0;22567:6;;22543:30:::1;:::i;:::-;;;;;;;;22608:9;-1:-1:-1::0;;;;;22591:35:0::1;22600:6;-1:-1:-1::0;;;;;22591:35:0::1;;22619:6;22591:35;;;;;;:::i;23815:537::-:0;8508:7;;;;8507:8;8499:61;;;;-1:-1:-1;;;8499:61:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23915:21:0;::::1;23907:67;;;;-1:-1:-1::0;;;23907:67:0::1;;;;;;;:::i;:::-;23996:24;24012:7;23996:15;:24::i;:::-;23995:25;23987:93;;;;-1:-1:-1::0;;;23987:93:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24101:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;:28;-1:-1:-1;24101:28:0::1;24093:85;;;;-1:-1:-1::0;;;24093:85:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;24191:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;:28;;24213:6;;24191:18;:28:::1;::::0;24213:6;;24191:28:::1;:::i;:::-;;;;;;;;24246:6;24230:12;;:22;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;24270:37:0::1;::::0;24296:1:::1;::::0;-1:-1:-1;;;;;24270:37:0;::::1;::::0;::::1;::::0;::::1;::::0;24300:6;;24270:37:::1;:::i;:::-;;;;;;;;24328:7;-1:-1:-1::0;;;;;24323:21:0::1;;24337:6;24323:21;;;;;;:::i;20726:666::-:0;20779:7;20825:16;;20807:15;:34;:67;;;;20845:24;20863:4;20845:9;:24::i;:::-;:29;20807:67;20804:93;;;-1:-1:-1;20896:1:0;20889:8;;20804:93;20910:14;20944:24;20962:4;20944:9;:24::i;:::-;20927:14;;:41;:85;;20998:14;;20927:85;;;20971:24;20989:4;20971:9;:24::i;:::-;20910:102;;21045:5;;21025:16;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;21084:19:0;;21064:16;;:39;21061:298;;21152:7;;21129:19;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;21203:14:0;;21277:7;21250:23;21203:14;21267:6;21250:23;:::i;:::-;21249:35;;;;:::i;:::-;21232:14;:52;;;21306:41;;;;;;21314:16;;21232:52;21306:41;:::i;:::-;;;;;;;;21061:298;21378:6;-1:-1:-1;20726:666:0;:::o;7016:196::-;7103:8;;;-1:-1:-1;;;;;7122:21:0;;;-1:-1:-1;;;;;;7122:21:0;;;;;;;7159:45;;7103:8;;;7122:21;7103:8;;7159:45;;7082:18;;7159:45;7016:196;;:::o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:190::-;;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1427:6;1419;1412:22;1374:2;-1:-1:-1;1455:23:1;;1364:120;-1:-1:-1;1364:120:1:o;1489:203::-;-1:-1:-1;;;;;1653:32:1;;;;1635:51;;1623:2;1608:18;;1590:102::o;1697:187::-;1862:14;;1855:22;1837:41;;1825:2;1810:18;;1792:92::o;1889:603::-;;2030:2;2059;2048:9;2041:21;2091:6;2085:13;2134:6;2129:2;2118:9;2114:18;2107:34;2159:4;2172:140;2186:6;2183:1;2180:13;2172:140;;;2281:14;;;2277:23;;2271:30;2247:17;;;2266:2;2243:26;2236:66;2201:10;;2172:140;;;2330:6;2327:1;2324:13;2321:2;;;2400:4;2395:2;2386:6;2375:9;2371:22;2367:31;2360:45;2321:2;-1:-1:-1;2476:2:1;2455:15;-1:-1:-1;;2451:29:1;2436:45;;;;2483:2;2432:54;;2010:482;-1:-1:-1;;;2010:482:1:o;2497:398::-;2699:2;2681:21;;;2738:2;2718:18;;;2711:30;2777:34;2772:2;2757:18;;2750:62;-1:-1:-1;;;2843:2:1;2828:18;;2821:32;2885:3;2870:19;;2671:224::o;2900:404::-;3102:2;3084:21;;;3141:2;3121:18;;;3114:30;3180:34;3175:2;3160:18;;3153:62;-1:-1:-1;;;3246:2:1;3231:18;;3224:38;3294:3;3279:19;;3074:230::o;3309:398::-;3511:2;3493:21;;;3550:2;3530:18;;;3523:30;3589:34;3584:2;3569:18;;3562:62;-1:-1:-1;;;3655:2:1;3640:18;;3633:32;3697:3;3682:19;;3483:224::o;3712:406::-;3914:2;3896:21;;;3953:2;3933:18;;;3926:30;3992:34;3987:2;3972:18;;3965:62;-1:-1:-1;;;4058:2:1;4043:18;;4036:40;4108:3;4093:19;;3886:232::o;4123:355::-;4325:2;4307:21;;;4364:2;4344:18;;;4337:30;4403:33;4398:2;4383:18;;4376:61;4469:2;4454:18;;4297:181::o;4483:412::-;4685:2;4667:21;;;4724:2;4704:18;;;4697:30;4763:34;4758:2;4743:18;;4736:62;-1:-1:-1;;;4829:2:1;4814:18;;4807:46;4885:3;4870:19;;4657:238::o;4900:425::-;5102:2;5084:21;;;5141:2;5121:18;;;5114:30;5180:34;5175:2;5160:18;;5153:62;5251:31;5246:2;5231:18;;5224:59;5315:3;5300:19;;5074:251::o;5330:404::-;5532:2;5514:21;;;5571:2;5551:18;;;5544:30;5610:34;5605:2;5590:18;;5583:62;-1:-1:-1;;;5676:2:1;5661:18;;5654:38;5724:3;5709:19;;5504:230::o;5739:356::-;5941:2;5923:21;;;5960:18;;;5953:30;6019:34;6014:2;5999:18;;5992:62;6086:2;6071:18;;5913:182::o;6100:402::-;6302:2;6284:21;;;6341:2;6321:18;;;6314:30;6380:34;6375:2;6360:18;;6353:62;-1:-1:-1;;;6446:2:1;6431:18;;6424:36;6492:3;6477:19;;6274:228::o;6507:400::-;6709:2;6691:21;;;6748:2;6728:18;;;6721:30;6787:34;6782:2;6767:18;;6760:62;-1:-1:-1;;;6853:2:1;6838:18;;6831:34;6897:3;6882:19;;6681:226::o;6912:404::-;7114:2;7096:21;;;7153:2;7133:18;;;7126:30;7192:34;7187:2;7172:18;;7165:62;-1:-1:-1;;;7258:2:1;7243:18;;7236:38;7306:3;7291:19;;7086:230::o;7321:419::-;7523:2;7505:21;;;7562:2;7542:18;;;7535:30;7601:34;7596:2;7581:18;;7574:62;7672:25;7667:2;7652:18;;7645:53;7730:3;7715:19;;7495:245::o;7745:407::-;7947:2;7929:21;;;7986:2;7966:18;;;7959:30;8025:34;8020:2;8005:18;;7998:62;-1:-1:-1;;;8091:2:1;8076:18;;8069:41;8142:3;8127:19;;7919:233::o;8157:397::-;8359:2;8341:21;;;8398:2;8378:18;;;8371:30;8437:34;8432:2;8417:18;;8410:62;-1:-1:-1;;;8503:2:1;8488:18;;8481:31;8544:3;8529:19;;8331:223::o;8559:401::-;8761:2;8743:21;;;8800:2;8780:18;;;8773:30;8839:34;8834:2;8819:18;;8812:62;-1:-1:-1;;;8905:2:1;8890:18;;8883:35;8950:3;8935:19;;8733:227::o;8965:400::-;9167:2;9149:21;;;9206:2;9186:18;;;9179:30;9245:34;9240:2;9225:18;;9218:62;-1:-1:-1;;;9311:2:1;9296:18;;9289:34;9355:3;9340:19;;9139:226::o;9370:408::-;9572:2;9554:21;;;9611:2;9591:18;;;9584:30;9650:34;9645:2;9630:18;;9623:62;-1:-1:-1;;;9716:2:1;9701:18;;9694:42;9768:3;9753:19;;9544:234::o;9783:407::-;9985:2;9967:21;;;10024:2;10004:18;;;9997:30;10063:34;10058:2;10043:18;;10036:62;-1:-1:-1;;;10129:2:1;10114:18;;10107:41;10180:3;10165:19;;9957:233::o;10195:419::-;10397:2;10379:21;;;10436:2;10416:18;;;10409:30;10475:34;10470:2;10455:18;;10448:62;10546:25;10541:2;10526:18;;10519:53;10604:3;10589:19;;10369:245::o;10619:401::-;10821:2;10803:21;;;10860:2;10840:18;;;10833:30;10899:34;10894:2;10879:18;;10872:62;-1:-1:-1;;;10965:2:1;10950:18;;10943:35;11010:3;10995:19;;10793:227::o;11025:177::-;11171:25;;;11159:2;11144:18;;11126:76::o;11207:248::-;11381:25;;;11437:2;11422:18;;11415:34;11369:2;11354:18;;11336:119::o;11460:184::-;11632:4;11620:17;;;;11602:36;;11590:2;11575:18;;11557:87::o;11649:128::-;;11720:1;11716:6;11713:1;11710:13;11707:2;;;11726:18;;:::i;:::-;-1:-1:-1;11762:9:1;;11697:80::o;11782:217::-;;11848:1;11838:2;;-1:-1:-1;;;11873:31:1;;11927:4;11924:1;11917:15;11955:4;11880:1;11945:15;11838:2;-1:-1:-1;11984:9:1;;11828:171::o;12004:168::-;;12110:1;12106;12102:6;12098:14;12095:1;12092:21;12087:1;12080:9;12073:17;12069:45;12066:2;;;12117:18;;:::i;:::-;-1:-1:-1;12157:9:1;;12056:116::o;12177:125::-;;12245:1;12242;12239:8;12236:2;;;12250:18;;:::i;:::-;-1:-1:-1;12287:9:1;;12226:76::o;12307:380::-;12392:1;12382:12;;12439:1;12429:12;;;12450:2;;12504:4;12496:6;12492:17;12482:27;;12450:2;12557;12549:6;12546:14;12526:18;12523:38;12520:2;;;12603:10;12598:3;12594:20;12591:1;12584:31;12638:4;12635:1;12628:15;12666:4;12663:1;12656:15;12520:2;;12362:325;;;:::o;12692:127::-;12753:10;12748:3;12744:20;12741:1;12734:31;12784:4;12781:1;12774:15;12808:4;12805:1;12798:15

Swarm Source

ipfs://f9a291144a28b74c864733111fc7837806dea8f0f460d716c0226600cb111f8a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

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.