ETH Price: $2,374.35 (-1.40%)

Contract

0xd83AE04c9eD29d6D3E6Bf720C71bc7BeB424393E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve206189162024-08-27 9:06:4719 days ago1724749607IN
0xd83AE04c...eB424393E
0 ETH0.000056961.22899182
Approve205248302024-08-14 5:38:3532 days ago1723613915IN
0xd83AE04c...eB424393E
0 ETH0.000165473.55360323
Approve204394762024-08-02 7:48:5944 days ago1722584939IN
0xd83AE04c...eB424393E
0 ETH0.000093462.00721475
Approve204211272024-07-30 18:22:2347 days ago1722363743IN
0xd83AE04c...eB424393E
0 ETH0.000392898.43732689
Transfer204093892024-07-29 2:58:5948 days ago1722221939IN
0xd83AE04c...eB424393E
0 ETH0.00003971.34229633
Transfer204093872024-07-29 2:58:3548 days ago1722221915IN
0xd83AE04c...eB424393E
0 ETH0.00004161.40647396
Transfer204093822024-07-29 2:57:3548 days ago1722221855IN
0xd83AE04c...eB424393E
0 ETH0.000060671.30015728
Approve203862982024-07-25 21:38:3551 days ago1721943515IN
0xd83AE04c...eB424393E
0 ETH0.000234365.059086
Transfer203758532024-07-24 10:37:5953 days ago1721817479IN
0xd83AE04c...eB424393E
0 ETH0.000157893.38225426
Approve203198402024-07-16 15:02:4761 days ago1721142167IN
0xd83AE04c...eB424393E
0 ETH0.0002580110.59955519
Approve202828132024-07-11 10:57:4766 days ago1720695467IN
0xd83AE04c...eB424393E
0 ETH0.000160023.4365789
Approve202817942024-07-11 7:33:3566 days ago1720683215IN
0xd83AE04c...eB424393E
0 ETH0.000231114.9631633
Approve202332972024-07-04 12:57:4773 days ago1720097867IN
0xd83AE04c...eB424393E
0 ETH0.0006637814.33969268
Approve201905852024-06-28 13:48:3579 days ago1719582515IN
0xd83AE04c...eB424393E
0 ETH0.000182327.49022605
Approve201905282024-06-28 13:37:1179 days ago1719581831IN
0xd83AE04c...eB424393E
0 ETH0.000118384.86324924
Approve201905282024-06-28 13:37:1179 days ago1719581831IN
0xd83AE04c...eB424393E
0 ETH0.000118384.86324924
Approve201905282024-06-28 13:37:1179 days ago1719581831IN
0xd83AE04c...eB424393E
0 ETH0.000118084.86324924
Approve201905272024-06-28 13:36:5979 days ago1719581819IN
0xd83AE04c...eB424393E
0 ETH0.000117714.83595814
Approve201888002024-06-28 7:50:1179 days ago1719561011IN
0xd83AE04c...eB424393E
0 ETH0.000280566.0251359
Approve201465782024-06-22 10:13:5985 days ago1719051239IN
0xd83AE04c...eB424393E
0 ETH0.000088861.91667136
Approve201077132024-06-16 23:44:4790 days ago1718581487IN
0xd83AE04c...eB424393E
0 ETH0.000063592.61909531
Approve201077122024-06-16 23:44:3590 days ago1718581475IN
0xd83AE04c...eB424393E
0 ETH0.000066972.75162229
Approve201077062024-06-16 23:43:2390 days ago1718581403IN
0xd83AE04c...eB424393E
0 ETH0.000115242.47489712
Approve200006432024-06-02 0:45:47105 days ago1717289147IN
0xd83AE04c...eB424393E
0 ETH0.000118244.85765385
Approve199960632024-06-01 9:26:11106 days ago1717233971IN
0xd83AE04c...eB424393E
0 ETH0.000119434.90653004
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:
InsureToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : InsureToken.sol
pragma solidity 0.8.10;

/***
 *@title InsureToken
 *@author InsureDAO
 * SPDX-License-Identifier: MIT
 *@notice InsureDAO's governance token
 */

//libraries
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./interfaces/pool/IOwnership.sol";

contract InsureToken is IERC20 {
    event UpdateMiningParameters(
        uint256 time,
        uint256 rate,
        uint256 supply,
        int256 miningepoch
    );
    event SetMinter(address minter);
    event SetAdmin(address admin);
    event SetRate(uint256 rate);

    string public name;
    string public symbol;
    uint256 public constant decimals = 18;

    mapping(address => uint256) public override balanceOf;
    mapping(address => mapping(address => uint256)) allowances;
    uint256 public total_supply;

    address public minter;
    IOwnership public immutable ownership;

    //General constants
    uint256 constant YEAR = 86400 * 365;

    // Allocation within 5years:
    // ==========
    // * Team & Development: 24%
    // * Liquidity Mining: 40%
    // * Investors: 10%
    // * Foundation Treasury: 14%
    // * Community Treasury: 10%
    // ==========
    //
    // After 5years:
    // ==========
    // * Liquidity Mining: 40%~ (Mint fixed amount every year)
    //
    // Mint 2_800_000 INSURE every year.
    // 6th year: 1.32% inflation rate
    // 7th year: 1.30% inflation rate
    // 8th year: 1.28% infration rate
    // so on
    // ==========

    // Supply parameters
    uint256 constant INITIAL_SUPPLY = 126_000_000; //will be vested
    uint256 constant RATE_REDUCTION_TIME = YEAR;
    uint256[6] public RATES = [
        (28_000_000 * 10 ** 18) / YEAR, //epoch 0
        (22_400_000 * 10 ** 18) / YEAR, //epoch 1
        (16_800_000 * 10 ** 18) / YEAR, //epoch 2
        (11_200_000 * 10 ** 18) / YEAR, //epoch 3
        (5_600_000 * 10 ** 18) / YEAR, //epoch 4
        (2_800_000 * 10 ** 18) / YEAR //epoch 5~
    ];

    uint256 constant RATE_DENOMINATOR = 10 ** 18;
    uint256 constant INFLATION_DELAY = 86400;

    // Supply variables
    int256 public mining_epoch;
    uint256 public start_epoch_time;
    uint256 public rate;

    uint256 public start_epoch_supply;

    uint256 public emergency_minted;

    modifier onlyOwner() {
        require(
            ownership.owner() == msg.sender,
            "Caller is not allowed to operate"
        );
        _;
    }


    /***
     * @notice Contract constructor
     * @param _name Token full name
     * @param _symbol Token symbol
     */
    constructor(string memory _name, string memory _symbol, address _ownership) {
        uint256 _init_supply = INITIAL_SUPPLY * RATE_DENOMINATOR;
        name = _name;
        symbol = _symbol;
        balanceOf[msg.sender] = _init_supply;
        total_supply = _init_supply;
        ownership = IOwnership(_ownership);
        emit Transfer(address(0), msg.sender, _init_supply);

        unchecked {
            start_epoch_time =
                block.timestamp +
                INFLATION_DELAY -
                RATE_REDUCTION_TIME;
            mining_epoch = -1;
        }
        rate = 0;
        start_epoch_supply = _init_supply;
    }

    /***
     *@dev Update mining rate and supply at the start of the epoch
     *     Any modifying mining call must also call this
     */
    function _update_mining_parameters() internal {
        uint256 _rate = rate;
        uint256 _start_epoch_supply = start_epoch_supply;

        start_epoch_time += RATE_REDUCTION_TIME;
        unchecked {
            mining_epoch += 1;
        }

        if (mining_epoch == 0) {
            _rate = RATES[uint256(mining_epoch)];
        } else if (mining_epoch < int256(6)) {
            _start_epoch_supply += RATES[uint256(mining_epoch) - 1] * YEAR;
            start_epoch_supply = _start_epoch_supply;
            _rate = RATES[uint256(mining_epoch)];
        } else {
            _start_epoch_supply += RATES[5] * YEAR;
            start_epoch_supply = _start_epoch_supply;
            _rate = RATES[5];
        }
        rate = _rate;
        emit UpdateMiningParameters(
            block.timestamp,
            _rate,
            _start_epoch_supply,
            mining_epoch
        );
    }

    /***
     * @notice Update mining rate and supply at the start of the epoch
     * @dev Callable by any address, but only once per epoch
     *     Total supply becomes slightly larger if this function is called late
     */
    function update_mining_parameters() external {
        require(
            block.timestamp >= start_epoch_time + RATE_REDUCTION_TIME,
            "dev: too soon!"
        );
        _update_mining_parameters();
    }

    /***
     *@notice Get timestamp of the current mining epoch start
     *        while simultaneously updating mining parameters
     *@return Timestamp of the epoch
     */
    function start_epoch_time_write() external returns(uint256) {

        uint256 _start_epoch_time = start_epoch_time;
        if (block.timestamp >= _start_epoch_time + RATE_REDUCTION_TIME) {
            _update_mining_parameters();
            return start_epoch_time;
        } else {
            return _start_epoch_time;
        }
    }

    /***
     *@notice Get timestamp of the next mining epoch start
     *        while simultaneously updating mining parameters
     *@return Timestamp of the next epoch
     */
    function future_epoch_time_write() external returns(uint256) {
        uint256 _start_epoch_time = start_epoch_time;
        if (block.timestamp >= _start_epoch_time + RATE_REDUCTION_TIME) {
            _update_mining_parameters();
            return start_epoch_time + RATE_REDUCTION_TIME;
        } else {
            return _start_epoch_time + RATE_REDUCTION_TIME;
        }
    }

    function _available_supply() internal view returns(uint256) {
        return
        start_epoch_supply +
            ((block.timestamp - start_epoch_time) * rate) +
            emergency_minted;
    }

    /***
     *@notice Current number of tokens in existence (claimed or unclaimed)
     */
    function available_supply() external view returns(uint256) {
        return _available_supply();
    }

    /***
     *@notice How much supply is mintable from start timestamp till end timestamp
     *@param start Start of the time interval (timestamp)
     *@param end End of the time interval (timestamp)
     *@return Tokens mintable from `start` till `end`
     */
    function mintable_in_timeframe(uint256 start, uint256 end)
    external
    view
    returns(uint256) {
        require(start <= end, "dev: start > end");
        uint256 _to_mint = 0;

        uint256 _current_epoch_time = start_epoch_time;
        uint256 _current_rate = rate;
        int256 _current_epoch = mining_epoch;

        // Special case if end is in future (not yet minted) epoch
        if (end > _current_epoch_time + RATE_REDUCTION_TIME) {

            _current_epoch_time += RATE_REDUCTION_TIME;
            if (_current_epoch < 5) {
                _current_epoch += 1;
                _current_rate = RATES[uint256(_current_epoch)];
            } else {
                _current_epoch += 1;
                _current_rate = RATES[5];
            }
        }

        require(
            end <= _current_epoch_time + RATE_REDUCTION_TIME,
            "dev: too far in future"
        );

        for (uint256 i; i < 999;) {
            // InsureDAO will not work in 1000 years.
            if (end >= _current_epoch_time) {
                uint256 current_end = end;
                if (current_end > _current_epoch_time + RATE_REDUCTION_TIME) {
                    current_end = _current_epoch_time + RATE_REDUCTION_TIME;
                }
                uint256 current_start = start;
                if (
                    current_start >= _current_epoch_time + RATE_REDUCTION_TIME
                ) {
                    break; // We should never get here but what if...
                } else if (current_start < _current_epoch_time) {
                    current_start = _current_epoch_time;
                }
                _to_mint += (_current_rate * (current_end - current_start));

                if (start >= _current_epoch_time) {
                    break;
                }
            }

            _current_epoch_time -= RATE_REDUCTION_TIME;

            if (_current_epoch == 0) {
                _current_rate = 0;
            } else {
                _current_rate = _current_epoch < 5 ? RATES[uint256(_current_epoch) - 1] : RATES[5];
            }

            _current_epoch -= 1;

            assert(_current_rate <= RATES[0]); // This should never happen
            unchecked {
                ++i;
            }
        }
        return _to_mint;
    }

    /***
     *@notice Total number of tokens in existence.
     */
    function totalSupply() external view override returns(uint256) {
        return total_supply;
    }

    /***
     *@notice Check the amount of tokens that an owner allowed to a spender
     *@param _owner The address which owns the funds
     *@param _spender The address which will spend the funds
     *@return uint256 specifying the amount of tokens still available for the spender
     */
    function allowance(address _owner, address _spender)
    external
    view
    override
    returns(uint256) {
        return allowances[_owner][_spender];
    }

    /***
     *@notice Transfer `_value` tokens from `msg.sender` to `_to`
     *@dev Vyper does not allow underflows, so the subtraction in
     *     this function will revert on an insufficient balance
     *@param _to The address to transfer to
     *@param _value The amount to be transferred
     *@return bool success
     */
    function transfer(address _to, uint256 _value)
    external
    override
    returns(bool) {
        require(_to != address(0), "transfers to 0x0 are not allowed");
        uint256 _fromBalance = balanceOf[msg.sender];
        require(_fromBalance >= _value, "transfer amount exceeds balance");
        unchecked {
            balanceOf[msg.sender] = _fromBalance - _value;
        }
        balanceOf[_to] += _value;
        emit Transfer(msg.sender, _to, _value);
        return true;
    }

    /***
     * @notice Transfer `_value` tokens from `_from` to `_to`
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     * @return bool success
     */
    function transferFrom(
        address _from,
        address _to,
        uint256 _value
    ) external override returns(bool) {
        require(_from != address(0), "transfer from the zero address");
        require(_to != address(0), "transfer to the zero address");

        uint256 currentAllowance = allowances[_from][msg.sender];
        require(currentAllowance >= _value, "transfer amount exceeds allow");
        unchecked {
            allowances[_from][msg.sender] -= _value;
        }

        uint256 _fromBalance = balanceOf[_from];
        require(_fromBalance >= _value, "transfer amount exceeds balance");
        unchecked {
            balanceOf[_from] -= _value;
        }
        balanceOf[_to] += _value;
        emit Transfer(_from, _to, _value);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal {
        require(owner != address(0), "approve from the zero address");
        require(spender != address(0), "approve to the zero address");

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

    /**
     *@notice Approve `_spender` to transfer `_value` tokens on behalf of `msg.sender`
     *@param _spender The address which will spend the funds
     *@param _value The amount of tokens to be spent
     *@return bool success
     */
    function approve(address _spender, uint256 _value)
    external
    override
    returns(bool) {
        _approve(msg.sender, _spender, _value);
        return true;
    }

    function increaseAllowance(address _spender, uint256 addedValue)
    external
    returns(bool) {
        _approve(
            msg.sender,
            _spender,
            allowances[msg.sender][_spender] + addedValue
        );

        return true;
    }

    function decreaseAllowance(address _spender, uint256 subtractedValue)
    external
    returns(bool) {
        uint256 currentAllowance = allowances[msg.sender][_spender];
        require(
            currentAllowance >= subtractedValue,
            "decreased allowance below zero"
        );
        unchecked {
            _approve(msg.sender, _spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /***
     *@notice Mint `_value` tokens and assign them to `_to`
     *@dev Emits a Transfer event originating from 0x00
     *@param _to The account that will receive the created tokens
     *@param _value The amount that will be created
     *@return bool success
     */
    function mint(address _to, uint256 _value) external returns(bool) {
        require(msg.sender == minter, "dev: minter only");
        require(_to != address(0), "dev: zero address");

        _mint(_to, _value);

        return true;
    }

    function _mint(address _to, uint256 _value) internal {
        uint256 _total_supply = total_supply + _value;

        require(
            _total_supply <= _available_supply(),
            "exceeds allowable mint amount"
        );
        if (block.timestamp >= start_epoch_time + RATE_REDUCTION_TIME) {
            _update_mining_parameters();
        }
        total_supply = _total_supply;

        balanceOf[_to] += _value;
        emit Transfer(address(0), _to, _value);
    }

    /**
     *@notice Burn `_value` tokens belonging to `msg.sender`
     *@dev Emits a Transfer event with a destination of 0x00
     *@param _value The amount that will be burned
     *@return bool success
     */
    function burn(uint256 _value) external returns(bool) {
        require(
            balanceOf[msg.sender] >= _value,
            "_value > balanceOf[msg.sender]"
        );

        unchecked {
            balanceOf[msg.sender] -= _value;
        }
        total_supply -= _value;

        emit Transfer(msg.sender, address(0), _value);
        return true;
    }

    /***
     *@notice Change the token name and symbol to `_name` and `_symbol`
     *@dev Only callable by the admin account
     *@param _name New token name
     *@param _symbol New token symbol
     */
    function set_name(string memory _name, string memory _symbol) external onlyOwner {
        name = _name;
        symbol = _symbol;
    }

    /***
     *@notice Set the minter address
     *@dev Only callable once, when minter has not yet been set
     *@param _minter Address of the minter
     */
    function set_minter(address _minter) external onlyOwner {
        require(
            minter == address(0),
            "can set the minter at creation"
        );
        minter = _minter;
        emit SetMinter(_minter);
    }

    /***
     *@notice Set the new rate for the infration after 5 years.
     *@dev input must be the number of INSURE to be minted per second.
     *@param _rate mint amount per second
     */
    function set_rate(uint256 _rate) external onlyOwner {
        require(_rate < RATES[5], "Decrease Only");

        RATES[5] = _rate;

        emit SetRate(_rate);
    }

    /***
     * @notice Emergency minting only when CDS couldn't afford the insolvency.
     * @dev
     * @param _amountOut token amount needed. token is defiend whithin converter.
     * @param _to CDS address
     */
    function emergency_mint(uint256 _amount, address _to)
    external
    returns(bool) {
        require(msg.sender == minter, "dev: minter only");
        //mint
        emergency_minted += _amount;
        _mint(_to, _amount);

        return true;
    }
}

File 2 of 3 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol)

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 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);
}

File 3 of 3 : IOwnership.sol
pragma solidity 0.8.10;

//SPDX-License-Identifier: MIT

interface IOwnership {
    function owner() external view returns (address);

    function futureOwner() external view returns (address);

    function commitTransferOwnership(address newOwner) external;

    function acceptTransferOwnership() external;
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_ownership","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"address","name":"admin","type":"address"}],"name":"SetAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"minter","type":"address"}],"name":"SetMinter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"}],"name":"SetRate","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"supply","type":"uint256"},{"indexed":false,"internalType":"int256","name":"miningepoch","type":"int256"}],"name":"UpdateMiningParameters","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"RATES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"available_supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"emergency_mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emergency_minted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"future_epoch_time_write","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","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":[],"name":"mining_epoch","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"mintable_in_timeframe","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minter","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":"ownership","outputs":[{"internalType":"contract IOwnership","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"set_minter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"set_name","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"set_rate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start_epoch_supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"start_epoch_time","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"start_epoch_time_write","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"total_supply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"update_mining_parameters","outputs":[],"stateMutability":"nonpayable","type":"function"}]

61016060405260a080620000236301e133806a17293b0a9e69fd9c0000006200029d565b8152602001620000436301e133806a1287626ee52197b00000006200029d565b8152602001620000636301e133806a0de589d32bd931c40000006200029d565b8152602001620000836301e133806a0943b1377290cbd80000006200029d565b8152602001620000a36301e133806a04a1d89bb94865ec0000006200029d565b8152602001620000c36301e133806a0250ec4ddca432f60000006200029d565b9052620000d49060069081620001c7565b50348015620000e257600080fd5b5060405162001e9c38038062001e9c83398101604081905262000105916200038d565b60006200011f670de0b6b3a76400006307829b806200041a565b8451909150620001379060009060208701906200020a565b5082516200014d9060019060208601906200020a565b5033600081815260026020908152604080832085905560048590556001600160a01b038616608052518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36301dfe1ff194201600d55600019600c556000600e55600f555062000485915050565b8260068101928215620001f8579160200282015b82811115620001f8578251825591602001919060010190620001db565b506200020692915062000286565b5090565b828054620002189062000448565b90600052602060002090601f0160209004810192826200023c5760008555620001f8565b82601f106200025757805160ff1916838001178555620001f8565b82800160010185558215620001f85791820182811115620001f8578251825591602001919060010190620001db565b5b8082111562000206576000815560010162000287565b600082620002bb57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620002e857600080fd5b81516001600160401b0380821115620003055762000305620002c0565b604051601f8301601f19908116603f01168101908282118183101715620003305762000330620002c0565b816040528381526020925086838588010111156200034d57600080fd5b600091505b8382101562000371578582018301518183018401529082019062000352565b83821115620003835760008385830101525b9695505050505050565b600080600060608486031215620003a357600080fd5b83516001600160401b0380821115620003bb57600080fd5b620003c987838801620002d6565b94506020860151915080821115620003e057600080fd5b50620003ef86828701620002d6565b604086015190935090506001600160a01b03811681146200040f57600080fd5b809150509250925092565b60008160001904831182151516156200044357634e487b7160e01b600052601160045260246000fd5b500290565b600181811c908216806200045d57607f821691505b602082108114156200047f57634e487b7160e01b600052602260045260246000fd5b50919050565b6080516119e6620004b6600039600081816102f0015281816104e401528181610c74015261109501526119e66000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80636e1d35b21161010f578063d4387a99116100a2578063dd62ed3e11610071578063dd62ed3e146103d6578063e1430e061461040f578063f9a40bf614610422578063f9e988eb1461042b57600080fd5b8063d4387a9914610395578063d43b40fa146103a8578063d54d1c98146103b0578063d725a9ca146103c357600080fd5b8063a457c2d7116100de578063a457c2d71461035f578063a9059cbb14610372578063adc4cf4314610385578063b26b238e1461038d57600080fd5b80636e1d35b21461032557806370a082311461032e5780637375be261461034e57806395d89b411461035757600080fd5b80632c4e722e1161018757806340c10f191161015657806340c10f19146102c557806342966c68146102d85780635d03147a146102eb57806362203d741461031257600080fd5b80632c4e722e14610298578063313ce567146102a15780633940e9ee146102a957806339509351146102b257600080fd5b80631652e9fc116101c35780631652e9fc1461025657806318160ddd1461026b57806323b872dd1461027d57806324f92a251461029057600080fd5b806306fdde03146101ea5780630754617214610208578063095ea7b314610233575b600080fd5b6101f2610434565b6040516101ff9190611555565b60405180910390f35b60055461021b906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b6102466102413660046115c2565b6104c2565b60405190151581526020016101ff565b6102696102643660046115ee565b6104d8565b005b6004545b6040519081526020016101ff565b61024661028b366004611612565b610641565b61026f61086d565b61026f600e5481565b61026f601281565b61026f60045481565b6102466102c03660046115c2565b61087c565b6102466102d33660046115c2565b6108b8565b6102466102e6366004611653565b61095c565b61021b7f000000000000000000000000000000000000000000000000000000000000000081565b61026f610320366004611653565b610a16565b61026f60105481565b61026f61033c3660046115ee565b60026020526000908152604090205481565b61026f600d5481565b6101f2610a2d565b61024661036d3660046115c2565b610a3a565b6102466103803660046115c2565b610ac5565b61026f610bed565b61026f610c20565b6102696103a3366004611653565b610c68565b610269610d90565b6102466103be36600461166c565b610dec565b61026f6103d136600461169c565b610e5e565b61026f6103e43660046116be565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61026961041d36600461178f565b611089565b61026f600c5481565b61026f600f5481565b60008054610441906117f3565b80601f016020809104026020016040519081016040528092919081815260200182805461046d906117f3565b80156104ba5780601f1061048f576101008083540402835291602001916104ba565b820191906000526020600020905b81548152906001019060200180831161049d57829003601f168201915b505050505081565b60006104cf338484611167565b50600192915050565b336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610540573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610564919061182e565b6001600160a01b0316146105935760405162461bcd60e51b815260040161058a9061184b565b60405180910390fd5b6005546001600160a01b0316156105ec5760405162461bcd60e51b815260206004820152601e60248201527f63616e2073657420746865206d696e746572206174206372656174696f6e0000604482015260640161058a565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c906020015b60405180910390a150565b60006001600160a01b0384166106995760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f20616464726573730000604482015260640161058a565b6001600160a01b0383166106ef5760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f206164647265737300000000604482015260640161058a565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156107635760405162461bcd60e51b815260206004820152601d60248201527f7472616e7366657220616d6f756e74206578636565647320616c6c6f77000000604482015260640161058a565b6001600160a01b0385166000818152600360209081526040808320338452825280832080548890039055928252600290522054838110156107e65760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161058a565b6001600160a01b03808716600090815260026020526040808220805488900390559187168152908120805486929061081f908490611896565b92505081905550846001600160a01b0316866001600160a01b03166000805160206119918339815191528660405161085991815260200190565b60405180910390a350600195945050505050565b6000610877611275565b905090565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104cf9185906108b3908690611896565b611167565b6005546000906001600160a01b031633146109085760405162461bcd60e51b815260206004820152601060248201526f6465763a206d696e746572206f6e6c7960801b604482015260640161058a565b6001600160a01b0383166109525760405162461bcd60e51b81526020600482015260116024820152706465763a207a65726f206164647265737360781b604482015260640161058a565b6104cf83836112ac565b336000908152600260205260408120548211156109bb5760405162461bcd60e51b815260206004820152601e60248201527f5f76616c7565203e2062616c616e63654f665b6d73672e73656e6465725d0000604482015260640161058a565b33600090815260026020526040812080548490039055600480548492906109e39084906118ae565b909155505060405182815260009033906000805160206119918339815191529060200160405180910390a3506001919050565b60068160068110610a2657600080fd5b0154905081565b60018054610441906117f3565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610aae5760405162461bcd60e51b815260206004820152601e60248201527f64656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000604482015260640161058a565b610abb3385858403611167565b5060019392505050565b60006001600160a01b038316610b1d5760405162461bcd60e51b815260206004820181905260248201527f7472616e736665727320746f2030783020617265206e6f7420616c6c6f776564604482015260640161058a565b3360009081526002602052604090205482811015610b7d5760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161058a565b3360009081526002602052604080822085840390556001600160a01b038616825281208054859290610bb0908490611896565b90915550506040518381526001600160a01b0385169033906000805160206119918339815191529060200160405180910390a35060019392505050565b600d54600090610c016301e1338082611896565b4210610c1757610c0f611393565b5050600d5490565b919050565b5090565b600d54600090610c346301e1338082611896565b4210610c5a57610c42611393565b6301e13380600d54610c549190611896565b91505090565b610c546301e1338082611896565b336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf4919061182e565b6001600160a01b031614610d1a5760405162461bcd60e51b815260040161058a9061184b565b600b548110610d5b5760405162461bcd60e51b815260206004820152600d60248201526c4465637265617365204f6e6c7960981b604482015260640161058a565b600b8190556040518181527f2640b4015d3473fd09bf2b30939e17deb4068cdacf3892136e737e166ceb321090602001610636565b6301e13380600d54610da29190611896565b421015610de25760405162461bcd60e51b815260206004820152600e60248201526d6465763a20746f6f20736f6f6e2160901b604482015260640161058a565b610dea611393565b565b6005546000906001600160a01b03163314610e3c5760405162461bcd60e51b815260206004820152601060248201526f6465763a206d696e746572206f6e6c7960801b604482015260640161058a565b8260106000828254610e4e9190611896565b909155506104cf905082846112ac565b600081831115610ea35760405162461bcd60e51b815260206004820152601060248201526f19195d8e881cdd185c9d080f88195b9960821b604482015260640161058a565b600d54600e54600c546000929190610ebf6301e1338084611896565b861115610f1b57610ed46301e1338084611896565b92506005811215610f0857610eea6001826118db565b905060068160068110610eff57610eff6118c5565b01549150610f1b565b610f136001826118db565b600b54925090505b610f296301e1338084611896565b861115610f715760405162461bcd60e51b81526020600482015260166024820152756465763a20746f6f2066617220696e2066757475726560501b604482015260640161058a565b60005b6103e781101561107d578387106110045786610f946301e1338086611896565b811115610fac57610fa96301e1338086611896565b90505b88610fbb6301e1338087611896565b8110610fc857505061107d565b85811015610fd35750845b610fdd81836118ae565b610fe7908661191c565b610ff19088611896565b9650858a1061100157505061107d565b50505b6110126301e13380856118ae565b9350816110225760009250611055565b6005821261103257600b54611052565b600661103f6001846118ae565b6006811061104f5761104f6118c5565b01545b92505b61106060018361193b565b6006549092508311156110755761107561197a565b600101610f74565b50929695505050505050565b336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611115919061182e565b6001600160a01b03161461113b5760405162461bcd60e51b815260040161058a9061184b565b815161114e9060009060208501906114c5565b5080516111629060019060208401906114c5565b505050565b6001600160a01b0383166111bd5760405162461bcd60e51b815260206004820152601d60248201527f617070726f76652066726f6d20746865207a65726f2061646472657373000000604482015260640161058a565b6001600160a01b0382166112135760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f20616464726573730000000000604482015260640161058a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000601054600e54600d544261128b91906118ae565b611295919061191c565b600f546112a29190611896565b6108779190611896565b6000816004546112bc9190611896565b90506112c6611275565b8111156113155760405162461bcd60e51b815260206004820152601d60248201527f6578636565647320616c6c6f7761626c65206d696e7420616d6f756e74000000604482015260640161058a565b6301e13380600d546113279190611896565b421061133557611335611393565b60048190556001600160a01b03831660009081526002602052604081208054849290611362908490611896565b90915550506040518281526001600160a01b0384169060009060008051602061199183398151915290602001611268565b600e54600f54600d80546301e1338091906000906113b2908490611896565b9091555050600c8054600101908190556113e4576006600c54600681106113db576113db6118c5565b01549150611472565b6006600c541215611449576301e1338060066001600c5461140591906118ae565b60068110611415576114156118c5565b0154611421919061191c565b61142b9082611896565b905080600f819055506006600c54600681106113db576113db6118c5565b600b5461145b906301e133809061191c565b6114659082611896565b600f819055600b54925090505b600e829055600c5460408051428152602081018590528082018490526060810192909252517f77c99c82d406169745430d971da8381be7390d804af3ad20e40a95e070e08bd19181900360800190a15050565b8280546114d1906117f3565b90600052602060002090601f0160209004810192826114f35760008555611539565b82601f1061150c57805160ff1916838001178555611539565b82800160010185558215611539579182015b8281111561153957825182559160200191906001019061151e565b50610c1c9291505b80821115610c1c5760008155600101611541565b600060208083528351808285015260005b8181101561158257858101830151858201604001528201611566565b81811115611594576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146115bf57600080fd5b50565b600080604083850312156115d557600080fd5b82356115e0816115aa565b946020939093013593505050565b60006020828403121561160057600080fd5b813561160b816115aa565b9392505050565b60008060006060848603121561162757600080fd5b8335611632816115aa565b92506020840135611642816115aa565b929592945050506040919091013590565b60006020828403121561166557600080fd5b5035919050565b6000806040838503121561167f57600080fd5b823591506020830135611691816115aa565b809150509250929050565b600080604083850312156116af57600080fd5b50508035926020909101359150565b600080604083850312156116d157600080fd5b82356116dc816115aa565b91506020830135611691816115aa565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261171357600080fd5b813567ffffffffffffffff8082111561172e5761172e6116ec565b604051601f8301601f19908116603f01168101908282118183101715611756576117566116ec565b8160405283815286602085880101111561176f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156117a257600080fd5b823567ffffffffffffffff808211156117ba57600080fd5b6117c686838701611702565b935060208501359150808211156117dc57600080fd5b506117e985828601611702565b9150509250929050565b600181811c9082168061180757607f821691505b6020821081141561182857634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561184057600080fd5b815161160b816115aa565b6020808252818101527f43616c6c6572206973206e6f7420616c6c6f77656420746f206f706572617465604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156118a9576118a9611880565b500190565b6000828210156118c0576118c0611880565b500390565b634e487b7160e01b600052603260045260246000fd5b600080821280156001600160ff1b03849003851316156118fd576118fd611880565b600160ff1b839003841281161561191657611916611880565b50500190565b600081600019048311821515161561193657611936611880565b500290565b60008083128015600160ff1b85018412161561195957611959611880565b6001600160ff1b038401831381161561197457611974611880565b50500390565b634e487b7160e01b600052600160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f8f9f00d15f0f96ffe36e7b64842769c6dc3eeba883f7d3829b035f1a70887d864736f6c634300080a0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb000000000000000000000000000000000000000000000000000000000000000b496e73757265546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006494e535552450000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80636e1d35b21161010f578063d4387a99116100a2578063dd62ed3e11610071578063dd62ed3e146103d6578063e1430e061461040f578063f9a40bf614610422578063f9e988eb1461042b57600080fd5b8063d4387a9914610395578063d43b40fa146103a8578063d54d1c98146103b0578063d725a9ca146103c357600080fd5b8063a457c2d7116100de578063a457c2d71461035f578063a9059cbb14610372578063adc4cf4314610385578063b26b238e1461038d57600080fd5b80636e1d35b21461032557806370a082311461032e5780637375be261461034e57806395d89b411461035757600080fd5b80632c4e722e1161018757806340c10f191161015657806340c10f19146102c557806342966c68146102d85780635d03147a146102eb57806362203d741461031257600080fd5b80632c4e722e14610298578063313ce567146102a15780633940e9ee146102a957806339509351146102b257600080fd5b80631652e9fc116101c35780631652e9fc1461025657806318160ddd1461026b57806323b872dd1461027d57806324f92a251461029057600080fd5b806306fdde03146101ea5780630754617214610208578063095ea7b314610233575b600080fd5b6101f2610434565b6040516101ff9190611555565b60405180910390f35b60055461021b906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b6102466102413660046115c2565b6104c2565b60405190151581526020016101ff565b6102696102643660046115ee565b6104d8565b005b6004545b6040519081526020016101ff565b61024661028b366004611612565b610641565b61026f61086d565b61026f600e5481565b61026f601281565b61026f60045481565b6102466102c03660046115c2565b61087c565b6102466102d33660046115c2565b6108b8565b6102466102e6366004611653565b61095c565b61021b7f00000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb81565b61026f610320366004611653565b610a16565b61026f60105481565b61026f61033c3660046115ee565b60026020526000908152604090205481565b61026f600d5481565b6101f2610a2d565b61024661036d3660046115c2565b610a3a565b6102466103803660046115c2565b610ac5565b61026f610bed565b61026f610c20565b6102696103a3366004611653565b610c68565b610269610d90565b6102466103be36600461166c565b610dec565b61026f6103d136600461169c565b610e5e565b61026f6103e43660046116be565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61026961041d36600461178f565b611089565b61026f600c5481565b61026f600f5481565b60008054610441906117f3565b80601f016020809104026020016040519081016040528092919081815260200182805461046d906117f3565b80156104ba5780601f1061048f576101008083540402835291602001916104ba565b820191906000526020600020905b81548152906001019060200180831161049d57829003601f168201915b505050505081565b60006104cf338484611167565b50600192915050565b336001600160a01b03167f00000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610540573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610564919061182e565b6001600160a01b0316146105935760405162461bcd60e51b815260040161058a9061184b565b60405180910390fd5b6005546001600160a01b0316156105ec5760405162461bcd60e51b815260206004820152601e60248201527f63616e2073657420746865206d696e746572206174206372656174696f6e0000604482015260640161058a565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527fcec52196e972044edde8689a1b608e459c5946b7f3e5c8cd3d6d8e126d422e1c906020015b60405180910390a150565b60006001600160a01b0384166106995760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f20616464726573730000604482015260640161058a565b6001600160a01b0383166106ef5760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f206164647265737300000000604482015260640161058a565b6001600160a01b0384166000908152600360209081526040808320338452909152902054828110156107635760405162461bcd60e51b815260206004820152601d60248201527f7472616e7366657220616d6f756e74206578636565647320616c6c6f77000000604482015260640161058a565b6001600160a01b0385166000818152600360209081526040808320338452825280832080548890039055928252600290522054838110156107e65760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161058a565b6001600160a01b03808716600090815260026020526040808220805488900390559187168152908120805486929061081f908490611896565b92505081905550846001600160a01b0316866001600160a01b03166000805160206119918339815191528660405161085991815260200190565b60405180910390a350600195945050505050565b6000610877611275565b905090565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916104cf9185906108b3908690611896565b611167565b6005546000906001600160a01b031633146109085760405162461bcd60e51b815260206004820152601060248201526f6465763a206d696e746572206f6e6c7960801b604482015260640161058a565b6001600160a01b0383166109525760405162461bcd60e51b81526020600482015260116024820152706465763a207a65726f206164647265737360781b604482015260640161058a565b6104cf83836112ac565b336000908152600260205260408120548211156109bb5760405162461bcd60e51b815260206004820152601e60248201527f5f76616c7565203e2062616c616e63654f665b6d73672e73656e6465725d0000604482015260640161058a565b33600090815260026020526040812080548490039055600480548492906109e39084906118ae565b909155505060405182815260009033906000805160206119918339815191529060200160405180910390a3506001919050565b60068160068110610a2657600080fd5b0154905081565b60018054610441906117f3565b3360009081526003602090815260408083206001600160a01b038616845290915281205482811015610aae5760405162461bcd60e51b815260206004820152601e60248201527f64656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000604482015260640161058a565b610abb3385858403611167565b5060019392505050565b60006001600160a01b038316610b1d5760405162461bcd60e51b815260206004820181905260248201527f7472616e736665727320746f2030783020617265206e6f7420616c6c6f776564604482015260640161058a565b3360009081526002602052604090205482811015610b7d5760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161058a565b3360009081526002602052604080822085840390556001600160a01b038616825281208054859290610bb0908490611896565b90915550506040518381526001600160a01b0385169033906000805160206119918339815191529060200160405180910390a35060019392505050565b600d54600090610c016301e1338082611896565b4210610c1757610c0f611393565b5050600d5490565b919050565b5090565b600d54600090610c346301e1338082611896565b4210610c5a57610c42611393565b6301e13380600d54610c549190611896565b91505090565b610c546301e1338082611896565b336001600160a01b03167f00000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf4919061182e565b6001600160a01b031614610d1a5760405162461bcd60e51b815260040161058a9061184b565b600b548110610d5b5760405162461bcd60e51b815260206004820152600d60248201526c4465637265617365204f6e6c7960981b604482015260640161058a565b600b8190556040518181527f2640b4015d3473fd09bf2b30939e17deb4068cdacf3892136e737e166ceb321090602001610636565b6301e13380600d54610da29190611896565b421015610de25760405162461bcd60e51b815260206004820152600e60248201526d6465763a20746f6f20736f6f6e2160901b604482015260640161058a565b610dea611393565b565b6005546000906001600160a01b03163314610e3c5760405162461bcd60e51b815260206004820152601060248201526f6465763a206d696e746572206f6e6c7960801b604482015260640161058a565b8260106000828254610e4e9190611896565b909155506104cf905082846112ac565b600081831115610ea35760405162461bcd60e51b815260206004820152601060248201526f19195d8e881cdd185c9d080f88195b9960821b604482015260640161058a565b600d54600e54600c546000929190610ebf6301e1338084611896565b861115610f1b57610ed46301e1338084611896565b92506005811215610f0857610eea6001826118db565b905060068160068110610eff57610eff6118c5565b01549150610f1b565b610f136001826118db565b600b54925090505b610f296301e1338084611896565b861115610f715760405162461bcd60e51b81526020600482015260166024820152756465763a20746f6f2066617220696e2066757475726560501b604482015260640161058a565b60005b6103e781101561107d578387106110045786610f946301e1338086611896565b811115610fac57610fa96301e1338086611896565b90505b88610fbb6301e1338087611896565b8110610fc857505061107d565b85811015610fd35750845b610fdd81836118ae565b610fe7908661191c565b610ff19088611896565b9650858a1061100157505061107d565b50505b6110126301e13380856118ae565b9350816110225760009250611055565b6005821261103257600b54611052565b600661103f6001846118ae565b6006811061104f5761104f6118c5565b01545b92505b61106060018361193b565b6006549092508311156110755761107561197a565b600101610f74565b50929695505050505050565b336001600160a01b03167f00000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611115919061182e565b6001600160a01b03161461113b5760405162461bcd60e51b815260040161058a9061184b565b815161114e9060009060208501906114c5565b5080516111629060019060208401906114c5565b505050565b6001600160a01b0383166111bd5760405162461bcd60e51b815260206004820152601d60248201527f617070726f76652066726f6d20746865207a65726f2061646472657373000000604482015260640161058a565b6001600160a01b0382166112135760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f20616464726573730000000000604482015260640161058a565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000601054600e54600d544261128b91906118ae565b611295919061191c565b600f546112a29190611896565b6108779190611896565b6000816004546112bc9190611896565b90506112c6611275565b8111156113155760405162461bcd60e51b815260206004820152601d60248201527f6578636565647320616c6c6f7761626c65206d696e7420616d6f756e74000000604482015260640161058a565b6301e13380600d546113279190611896565b421061133557611335611393565b60048190556001600160a01b03831660009081526002602052604081208054849290611362908490611896565b90915550506040518281526001600160a01b0384169060009060008051602061199183398151915290602001611268565b600e54600f54600d80546301e1338091906000906113b2908490611896565b9091555050600c8054600101908190556113e4576006600c54600681106113db576113db6118c5565b01549150611472565b6006600c541215611449576301e1338060066001600c5461140591906118ae565b60068110611415576114156118c5565b0154611421919061191c565b61142b9082611896565b905080600f819055506006600c54600681106113db576113db6118c5565b600b5461145b906301e133809061191c565b6114659082611896565b600f819055600b54925090505b600e829055600c5460408051428152602081018590528082018490526060810192909252517f77c99c82d406169745430d971da8381be7390d804af3ad20e40a95e070e08bd19181900360800190a15050565b8280546114d1906117f3565b90600052602060002090601f0160209004810192826114f35760008555611539565b82601f1061150c57805160ff1916838001178555611539565b82800160010185558215611539579182015b8281111561153957825182559160200191906001019061151e565b50610c1c9291505b80821115610c1c5760008155600101611541565b600060208083528351808285015260005b8181101561158257858101830151858201604001528201611566565b81811115611594576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146115bf57600080fd5b50565b600080604083850312156115d557600080fd5b82356115e0816115aa565b946020939093013593505050565b60006020828403121561160057600080fd5b813561160b816115aa565b9392505050565b60008060006060848603121561162757600080fd5b8335611632816115aa565b92506020840135611642816115aa565b929592945050506040919091013590565b60006020828403121561166557600080fd5b5035919050565b6000806040838503121561167f57600080fd5b823591506020830135611691816115aa565b809150509250929050565b600080604083850312156116af57600080fd5b50508035926020909101359150565b600080604083850312156116d157600080fd5b82356116dc816115aa565b91506020830135611691816115aa565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261171357600080fd5b813567ffffffffffffffff8082111561172e5761172e6116ec565b604051601f8301601f19908116603f01168101908282118183101715611756576117566116ec565b8160405283815286602085880101111561176f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156117a257600080fd5b823567ffffffffffffffff808211156117ba57600080fd5b6117c686838701611702565b935060208501359150808211156117dc57600080fd5b506117e985828601611702565b9150509250929050565b600181811c9082168061180757607f821691505b6020821081141561182857634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561184057600080fd5b815161160b816115aa565b6020808252818101527f43616c6c6572206973206e6f7420616c6c6f77656420746f206f706572617465604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156118a9576118a9611880565b500190565b6000828210156118c0576118c0611880565b500390565b634e487b7160e01b600052603260045260246000fd5b600080821280156001600160ff1b03849003851316156118fd576118fd611880565b600160ff1b839003841281161561191657611916611880565b50500190565b600081600019048311821515161561193657611936611880565b500290565b60008083128015600160ff1b85018412161561195957611959611880565b6001600160ff1b038401831381161561197457611974611880565b50500390565b634e487b7160e01b600052600160045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f8f9f00d15f0f96ffe36e7b64842769c6dc3eeba883f7d3829b035f1a70887d864736f6c634300080a0033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb000000000000000000000000000000000000000000000000000000000000000b496e73757265546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006494e535552450000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): InsureToken
Arg [1] : _symbol (string): INSURE
Arg [2] : _ownership (address): 0x56246e83F3148B05Ce2D90B44fbb4e9fa9EAF5bb

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000056246e83f3148b05ce2d90b44fbb4e9fa9eaf5bb
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [4] : 496e73757265546f6b656e000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [6] : 494e535552450000000000000000000000000000000000000000000000000000


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.