Contract 0xE2198fcEC23041fe60CF6C891719FCCc21Ab2150

 
 
Txn Hash
Block
From
To
Value [Txn Fee]
0xa94d3873d1246bfa11273125f4f7030f50ad262358e9c441c4e4f9a78ea22bc377710962021-05-27 10:25:3357 days 18 hrs agoCentric: Deployer IN  0xe2198fcec23041fe60cf6c891719fccc21ab21500 BNB0.00088666
0xfec19752af4969a4402878edd17c1cce5dd2641dee6248cd62df84359e5ee9ed77710912021-05-27 10:25:1857 days 18 hrs agoCentric: Deployer IN  Contract Creation0 BNB0.02412424
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CentricSwap

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 7: CentricSwap.sol
//SPDX-License-Identifier: Unlicense
pragma solidity 0.7.6;

import './SafeMath.sol';
import './BEP20.sol';

contract CentricSwap is BEP20 {
    using SafeMath for uint256;

    address public riseContract;

    constructor(address _mintSaver) BEP20('Centric SWAP', 'CNS', 8) {
        _mint(_mintSaver, 0);
    }

    modifier onlyRise() {
        require(msg.sender == riseContract, 'CALLER_MUST_BE_RISE_CONTRACT_ONLY');
        _;
    }

    function setRiseContract(address _riseContractAddress) external onlyContractOwner() {
        require(_riseContractAddress != address(0), 'RISE_CONTRACT_CANNOTBE_NULL_ADDRESS');
        require(riseContract == address(0), 'RISE_CONTRACT_ADDRESS_IS_ALREADY_SET');
        riseContract = _riseContractAddress;
    }

    function mintFromRise(address to, uint256 value) external onlyRise returns (bool _success) {
        _mint(to, value);
        return true;
    }

    function burnFromRise(address tokensOwner, uint256 value)
        external
        virtual
        onlyRise
        returns (bool _success)
    {
        _burn(tokensOwner, value);
        return true;
    }
}

File 2 of 7: Administrable.sol
//SPDX-License-Identifier: Unlicense
pragma solidity 0.7.6;

import './Claimable.sol';

contract Administrable is Claimable {
    mapping(address => bool) public isAdmin;

    event AdminAppointed(address admin);
    event AdminDismissed(address admin);

    constructor() {
        isAdmin[owner] = true;

        emit AdminAppointed(owner);
    }

    modifier onlyAdmin() {
        require(isAdmin[msg.sender], 'NOT_AN_ADMIN');
        _;
    }

    function appointAdmin(address _newAdmin) public onlyContractOwner() returns (bool success) {
        if (isAdmin[_newAdmin] == false) {
            isAdmin[_newAdmin] = true;
        }

        emit AdminAppointed(_newAdmin);
        return true;
    }

    function dismissAdmin(address _admin) public onlyContractOwner() returns (bool success) {
        isAdmin[_admin] = false;

        emit AdminDismissed(_admin);
        return true;
    }
}

File 3 of 7: BEP20.sol
//SPDX-License-Identifier: Unlicense
pragma solidity 0.7.6;

import './SafeMath.sol';
import './Administrable.sol';

interface IBEP20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

    /**
     * @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);
}

contract BEP20 is IBEP20, Administrable {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    uint256 private _totalBurnt;

    constructor(
        string memory name_,
        string memory symbol_,
        uint8 decimals_
    ) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
    }

    function name() public view override returns (string memory) {
        return _name;
    }

    function symbol() public view override returns (string memory) {
        return _symbol;
    }

    function decimals() public view override returns (uint8) {
        return _decimals;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function getOwner() public view override returns (address) {
        return owner;
    }

    function totalBurnt() public view returns (uint256) {
        return _totalBurnt;
    }

    function balanceOf(address owner) public view override returns (uint256) {
        return _balances[owner];
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowed[owner][spender];
    }

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

    function approve(address spender, uint256 value) public override returns (bool) {
        require(spender != address(0), 'spender cannot be address(0)');

        _allowed[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) public override returns (bool) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        emit Approval(from, msg.sender, _allowed[from][msg.sender]);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        require(spender != address(0), 'spender cannot be address(0)');

        _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].add(addedValue));
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        require(spender != address(0), 'spender cannot be address(0)');

        _allowed[msg.sender][spender] = (_allowed[msg.sender][spender].sub(subtractedValue));
        emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 value
    ) internal {
        require(from != address(0), 'from cannot be address(0)');
        require(to != address(0), 'to cannot be address(0)');

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        require(account != address(0), 'account cannot be address(0)');

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    function _burn(address account, uint256 value) internal {
        require(account != address(0), 'account cannot be address(0)');

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);

        _totalBurnt = _totalBurnt.add(value);

        emit Transfer(account, address(0), value);
    }

    function _burnFrom(address account, uint256 value) internal {
        _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(value);
        _burn(account, value);
    }
}

File 4 of 7: Claimable.sol
//SPDX-License-Identifier: Unlicense
pragma solidity 0.7.6;

abstract contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), owner);
    }

    function isOwner() public view returns (bool) {
        return (owner == msg.sender);
    }

    modifier onlyContractOwner() {
        require(isOwner(), 'Not a contract owner');
        _;
    }
}

contract Claimable is Ownable {
    address public pendingOwner;

    function transferOwnership(address _newOwner) public onlyContractOwner() {
        pendingOwner = _newOwner;
    }

    function claimOwnership() public {
        require(msg.sender == pendingOwner, 'Not a pending owner');

        address previousOwner = owner;
        owner = msg.sender;
        pendingOwner = address(0);

        emit OwnershipTransferred(previousOwner, msg.sender);
    }
}

File 5 of 7: DateLib.sol
//SPDX-License-Identifier: Unlicense
pragma solidity 0.7.6;

library DateLib {
    uint256 constant DAY_IN_SECONDS = 86400;
    uint256 constant YEAR_IN_SECONDS = 31536000;
    uint256 constant LEAP_YEAR_IN_SECONDS = 31622400;

    uint16 constant ORIGIN_YEAR = 1970;

    function getHoursInMonth(uint256 _timestamp) internal pure returns (uint256) {
        uint256 timestamp = _timestamp / 1000;

        uint256 secondsAccountedFor = 0;
        uint256 buf;
        uint8 i;

        uint16 year;
        uint8 month;

        // Year
        year = _getYear(timestamp);
        buf = leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR);

        secondsAccountedFor += LEAP_YEAR_IN_SECONDS * buf;
        secondsAccountedFor += YEAR_IN_SECONDS * (year - ORIGIN_YEAR - buf);

        // Month
        uint256 secondsInMonth;
        for (i = 1; i <= 12; i++) {
            secondsInMonth = DAY_IN_SECONDS * _getDaysInMonth(i, year);
            if (secondsInMonth + secondsAccountedFor > timestamp) {
                month = i;
                break;
            }
            secondsAccountedFor += secondsInMonth;
        }

        return (_getDaysInMonth(month, year) * 24);
    }

    function _getDaysInMonth(uint8 _month, uint16 _year) private pure returns (uint256) {
        if (
            _month == 1 ||
            _month == 3 ||
            _month == 5 ||
            _month == 7 ||
            _month == 8 ||
            _month == 10 ||
            _month == 12
        ) {
            return 31;
        } else if (_month == 4 || _month == 6 || _month == 9 || _month == 11) {
            return 30;
        } else if (isLeapYear(_year)) {
            return 29;
        } else {
            return 28;
        }
    }

    function _getYear(uint256 _timestamp) private pure returns (uint16) {
        uint256 secondsAccountedFor = 0;
        uint16 year;
        uint256 numLeapYears;

        // Year
        year = uint16(ORIGIN_YEAR + _timestamp / YEAR_IN_SECONDS);
        numLeapYears = leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR);

        secondsAccountedFor += LEAP_YEAR_IN_SECONDS * numLeapYears;
        secondsAccountedFor += YEAR_IN_SECONDS * (year - ORIGIN_YEAR - numLeapYears);

        while (secondsAccountedFor > _timestamp) {
            if (isLeapYear(uint16(year - 1))) {
                secondsAccountedFor -= LEAP_YEAR_IN_SECONDS;
            } else {
                secondsAccountedFor -= YEAR_IN_SECONDS;
            }
            year -= 1;
        }
        return year;
    }

    function isLeapYear(uint16 _year) private pure returns (bool) {
        if (_year % 4 != 0) {
            return false;
        }
        if (_year % 100 != 0) {
            return true;
        }
        if (_year % 400 != 0) {
            return false;
        }
        return true;
    }

    function leapYearsBefore(uint256 _year) private pure returns (uint256) {
        uint256 year = _year - 1;
        return year / 4 - year / 100 + year / 400;
    }
}

File 6 of 7: RoundMath.sol
//SPDX-License-Identifier: Unlicense
pragma solidity 0.7.6;

/// @dev Math operations with safety checks that revert on error
library RoundMath {
    /// @dev Integer division of two numbers rounding the quotient, reverts on division by zero.
    function roundDiv(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, 'DIVIDING_ERROR');
        uint256 c = (((a * 10) / b) + 5) / 10;
        return c;
    }

    /// @dev Integer division of two numbers ceiling the quotient, reverts on division by zero.
    function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, 'DIVIDING_ERROR');
        uint256 c = a / b;
        if (a % b > 0) {
            c = c + 1;
        }
        return c;
    }
}

File 7 of 7: SafeMath.sol
//SPDX-License-Identifier: Unlicense
pragma solidity 0.7.6;

/// @dev Math operations with safety checks that revert on error
library SafeMath {
    /// @dev Multiplies two numbers, reverts on overflow.
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, 'MUL_ERROR');

        return c;
    }

    /// @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, 'DIVIDING_ERROR');
        uint256 c = a / b;
        return c;
    }

    /// @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, 'SUB_ERROR');
        uint256 c = a - b;
        return c;
    }

    /// @dev Adds two numbers, reverts on overflow.
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, 'ADD_ERROR');
        return c;
    }

    /// @dev Divides two numbers and returns the remainder (unsigned integer modulo), reverts when dividing by zero.
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, 'MOD_ERROR');
        return a % b;
    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_mintSaver","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"AdminAppointed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"admin","type":"address"}],"name":"AdminDismissed","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"_newAdmin","type":"address"}],"name":"appointAdmin","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokensOwner","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFromRise","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimOwnership","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":[{"internalType":"address","name":"_admin","type":"address"}],"name":"dismissAdmin","outputs":[{"internalType":"bool","name":"success","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":"","type":"address"}],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mintFromRise","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","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":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"riseContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_riseContractAddress","type":"address"}],"name":"setRiseContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","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":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200160e3803806200160e833981810160405260208110156200003757600080fd5b5051604080518082018252600c81526b043656e7472696320535741560a41b602082810191909152825180840184526003815262434e5360e81b91810191909152600080546001600160a01b03191633178082559351929391926008926001600160a01b031691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600080546001600160a01b039081168252600260209081526040808420805460ff19166001179055925483519216825291517f14a1a2d641f8bd1a49a31f4fd8b2e951f722e0207f936a64b44411340a52a4e6929181900390910190a1825162000136906003906020860190620002cb565b5081516200014c906004906020850190620002cb565b506005805460ff191660ff929092169190911790555062000171905081600062000178565b5062000377565b6001600160a01b038216620001d4576040805162461bcd60e51b815260206004820152601c60248201527f6163636f756e742063616e6e6f74206265206164647265737328302900000000604482015290519081900360640190fd5b620001f0816008546200027d60201b62000e0d1790919060201c565b6008556001600160a01b0382166000908152600660209081526040909120546200022591839062000e0d6200027d821b17901c565b6001600160a01b03831660008181526006602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082820183811015620002c4576040805162461bcd60e51b815260206004820152600960248201526820a2222fa2a92927a960b91b604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200030357600085556200034e565b82601f106200031e57805160ff19168380011785556200034e565b828001600101855582156200034e579182015b828111156200034e57825182559160200191906001019062000331565b506200035c92915062000360565b5090565b5b808211156200035c576000815560010162000361565b61128780620003876000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80638f32d59b116100de578063a69adc2c11610097578063dd62ed3e11610071578063dd62ed3e1461046d578063e30c39781461049b578063f04d602b146104a3578063f2fde38b146104c957610173565b8063a69adc2c14610413578063a9059cbb14610439578063c0572bde1461046557610173565b80638f32d59b1461037d57806395d89b4114610385578063966ff6501461038d5780639823566314610395578063a176916b146103bb578063a457c2d7146103e757610173565b8063313ce56711610130578063313ce567146102d757806339509351146102f55780634e71e0c81461032157806370a082311461032b578063893d20e8146103515780638da5cb5b1461037557610173565b806306fdde0314610178578063095ea7b3146101f557806318160ddd14610235578063237239f41461024f57806323b872dd1461027b57806324d7806c146102b1575b600080fd5b6101806104ef565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610585565b604080519115158252519081900360200190f35b61023d610649565b60408051918252519081900360200190f35b6102216004803603604081101561026557600080fd5b506001600160a01b03813516906020013561064f565b6102216004803603606081101561029157600080fd5b506001600160a01b038135811691602081013590911690604001356106ae565b610221600480360360208110156102c757600080fd5b50356001600160a01b0316610771565b6102df610786565b6040805160ff9092168252519081900360200190f35b6102216004803603604081101561030b57600080fd5b506001600160a01b03813516906020013561078f565b61032961087f565b005b61023d6004803603602081101561034157600080fd5b50356001600160a01b031661092b565b610359610946565b604080516001600160a01b039092168252519081900360200190f35b610359610955565b610221610964565b610180610975565b61023d6109d6565b610221600480360360208110156103ab57600080fd5b50356001600160a01b03166109dc565b610221600480360360408110156103d157600080fd5b506001600160a01b038135169060200135610ab6565b610221600480360360408110156103fd57600080fd5b506001600160a01b038135169060200135610b0c565b6102216004803603602081101561042957600080fd5b50356001600160a01b0316610b97565b6102216004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610c46565b610359610c53565b61023d6004803603604081101561048357600080fd5b506001600160a01b0381358116916020013516610c62565b610359610c8d565b610329600480360360208110156104b957600080fd5b50356001600160a01b0316610c9c565b610329600480360360208110156104df57600080fd5b50356001600160a01b0316610d9b565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561057b5780601f106105505761010080835404028352916020019161057b565b820191906000526020600020905b81548152906001019060200180831161055e57829003601f168201915b5050505050905090565b60006001600160a01b0383166105e2576040805162461bcd60e51b815260206004820152601c60248201527f7370656e6465722063616e6e6f74206265206164647265737328302900000000604482015290519081900360640190fd5b3360008181526007602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60085490565b600a546000906001600160a01b0316331461069b5760405162461bcd60e51b815260040180806020018281038252602181526020018061120e6021913960400191505060405180910390fd5b6106a58383610e5a565b50600192915050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546106dc9083610f56565b6001600160a01b038516600090815260076020908152604080832033845290915290205561070b848484610f9f565b6001600160a01b0384166000818152600760209081526040808320338085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60026020526000908152604090205460ff1681565b60055460ff1690565b60006001600160a01b0383166107ec576040805162461bcd60e51b815260206004820152601c60248201527f7370656e6465722063616e6e6f74206265206164647265737328302900000000604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b038716845290915290205461081a9083610e0d565b3360008181526007602090815260408083206001600160a01b0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b6001546001600160a01b031633146108d4576040805162461bcd60e51b81526020600482015260136024820152722737ba1030903832b73234b7339037bbb732b960691b604482015290519081900360640190fd5b60008054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b6001600160a01b031660009081526006602052604090205490565b6000546001600160a01b031690565b6000546001600160a01b031681565b6000546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561057b5780601f106105505761010080835404028352916020019161057b565b60095490565b60006109e6610964565b610a2e576040805162461bcd60e51b81526020600482015260146024820152732737ba10309031b7b73a3930b1ba1037bbb732b960611b604482015290519081900360640190fd5b6001600160a01b03821660009081526002602052604090205460ff16610a72576001600160a01b0382166000908152600260205260409020805460ff191660011790555b604080516001600160a01b038416815290517f14a1a2d641f8bd1a49a31f4fd8b2e951f722e0207f936a64b44411340a52a4e69181900360200190a1506001919050565b600a546000906001600160a01b03163314610b025760405162461bcd60e51b815260040180806020018281038252602181526020018061120e6021913960400191505060405180910390fd5b6106a58383611103565b60006001600160a01b038316610b69576040805162461bcd60e51b815260206004820152601c60248201527f7370656e6465722063616e6e6f74206265206164647265737328302900000000604482015290519081900360640190fd5b3360009081526007602090815260408083206001600160a01b038716845290915290205461081a9083610f56565b6000610ba1610964565b610be9576040805162461bcd60e51b81526020600482015260146024820152732737ba10309031b7b73a3930b1ba1037bbb732b960611b604482015290519081900360640190fd5b6001600160a01b038216600081815260026020908152604091829020805460ff19169055815192835290517f8cb585df559166007784fccdddbb80e0efd7c7b40a2d015a911a595825f74b109281900390910190a1506001919050565b60006106a5338484610f9f565b600a546001600160a01b031681565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6001546001600160a01b031681565b610ca4610964565b610cec576040805162461bcd60e51b81526020600482015260146024820152732737ba10309031b7b73a3930b1ba1037bbb732b960611b604482015290519081900360640190fd5b6001600160a01b038116610d315760405162461bcd60e51b815260040180806020018281038252602381526020018061122f6023913960400191505060405180910390fd5b600a546001600160a01b031615610d795760405162461bcd60e51b81526004018080602001828103825260248152602001806111ea6024913960400191505060405180910390fd5b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b610da3610964565b610deb576040805162461bcd60e51b81526020600482015260146024820152732737ba10309031b7b73a3930b1ba1037bbb732b960611b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600082820183811015610e53576040805162461bcd60e51b815260206004820152600960248201526820a2222fa2a92927a960b91b604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610eb5576040805162461bcd60e51b815260206004820152601c60248201527f6163636f756e742063616e6e6f74206265206164647265737328302900000000604482015290519081900360640190fd5b600854610ec29082610f56565b6008556001600160a01b038216600090815260066020526040902054610ee89082610f56565b6001600160a01b038316600090815260066020526040902055600954610f0e9082610e0d565b6009556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600082821115610f99576040805162461bcd60e51b815260206004820152600960248201526829aaa12fa2a92927a960b91b604482015290519081900360640190fd5b50900390565b6001600160a01b038316610ffa576040805162461bcd60e51b815260206004820152601960248201527f66726f6d2063616e6e6f74206265206164647265737328302900000000000000604482015290519081900360640190fd5b6001600160a01b038216611055576040805162461bcd60e51b815260206004820152601760248201527f746f2063616e6e6f742062652061646472657373283029000000000000000000604482015290519081900360640190fd5b6001600160a01b0383166000908152600660205260409020546110789082610f56565b6001600160a01b0380851660009081526006602052604080822093909355908416815220546110a79082610e0d565b6001600160a01b0380841660008181526006602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b03821661115e576040805162461bcd60e51b815260206004820152601c60248201527f6163636f756e742063616e6e6f74206265206164647265737328302900000000604482015290519081900360640190fd5b60085461116b9082610e0d565b6008556001600160a01b0382166000908152600660205260409020546111919082610e0d565b6001600160a01b03831660008181526006602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3505056fe524953455f434f4e54524143545f414444524553535f49535f414c52454144595f53455443414c4c45525f4d5553545f42455f524953455f434f4e54524143545f4f4e4c59524953455f434f4e54524143545f43414e4e4f5442455f4e554c4c5f41444452455353a2646970667358221220646781d93e14b06edf16f5fc580f5c83a5320f782c394d71fc8eb250308ba23764736f6c634300070600330000000000000000000000001ea71306849a189e17d00668eea81416e2f6d19d

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

0000000000000000000000001ea71306849a189e17d00668eea81416e2f6d19d

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001ea71306849a189e17d00668eea81416e2f6d19d


Deployed ByteCode Sourcemap

109:1015:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3723:90:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4729:279;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4729:279:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4015:98;;;:::i;:::-;;;;;;;;;;;;;;;;915:207:2;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;915:207:2;;;;;;;;:::i;5014:333:1:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5014:333:1;;;;;;;;;;;;;;;;;:::i;130:39:0:-;;;;;;;;;;;;;;;;-1:-1:-1;130:39:0;-1:-1:-1;;;;;130:39:0;;:::i;3919:90:1:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5353:351;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5353:351:1;;;;;;;;:::i;833:274:3:-;;;:::i;:::-;;4306:113:1;;;;;;;;;;;;;;;;-1:-1:-1;4306:113:1;-1:-1:-1;;;;;4306:113:1;;:::i;4119:88::-;;;:::i;:::-;;;;-1:-1:-1;;;;;4119:88:1;;;;;;;;;;;;;;93:20:3;;;:::i;443:91::-;;;:::i;3819:94:1:-;;;:::i;4213:87::-;;;:::i;453:252:0:-;;;;;;;;;;;;;;;;-1:-1:-1;453:252:0;-1:-1:-1;;;;;453:252:0;;:::i;764:145:2:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;764:145:2;;;;;;;;:::i;5710:361:1:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5710:361:1;;;;;;;;:::i;711:187:0:-;;;;;;;;;;;;;;;;-1:-1:-1;711:187:0;-1:-1:-1;;;;;711:187:0;;:::i;4569:154:1:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4569:154:1;;;;;;;;:::i;178:27:2:-;;;:::i;4425:138:1:-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4425:138:1;;;;;;;;;;:::i;679:27:3:-;;;:::i;445:313:2:-;;;;;;;;;;;;;;;;-1:-1:-1;445:313:2;-1:-1:-1;;;;;445:313:2;;:::i;713:114:3:-;;;;;;;;;;;;;;;;-1:-1:-1;713:114:3;-1:-1:-1;;;;;713:114:3;;:::i;3723:90:1:-;3801:5;3794:12;;;;;;;;-1:-1:-1;;3794:12:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3769:13;;3794:12;;3801:5;;3794:12;;3801:5;3794:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3723:90;:::o;4729:279::-;4803:4;-1:-1:-1;;;;;4827:21:1;;4819:62;;;;;-1:-1:-1;;;4819:62:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4901:10;4892:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4892:29:1;;;;;;;;;;;;:37;;;4944:36;;;;;;;4892:29;;4901:10;4944:36;;;;;;;;;;;-1:-1:-1;4997:4:1;4729:279;;;;:::o;4015:98::-;4094:12;;4015:98;:::o;915:207:2:-;371:12;;1040:13;;-1:-1:-1;;;;;371:12:2;357:10;:26;349:72;;;;-1:-1:-1;;;349:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1069:25:::1;1075:11;1088:5;1069;:25::i;:::-;-1:-1:-1::0;1111:4:2::1;915:207:::0;;;;:::o;5014:333:1:-;-1:-1:-1;;;;;5177:14:1;;5132:4;5177:14;;;:8;:14;;;;;;;;5192:10;5177:26;;;;;;;;:37;;5208:5;5177:30;:37::i;:::-;-1:-1:-1;;;;;5148:14:1;;;;;;:8;:14;;;;;;;;5163:10;5148:26;;;;;;;:66;5224:26;5157:4;5240:2;5244:5;5224:9;:26::i;:::-;-1:-1:-1;;;;;5265:54:1;;5292:14;;;;:8;:14;;;;;;;;5280:10;5292:26;;;;;;;;;;;5265:54;;;;;;;5280:10;;5265:54;;;;;;;;;;;;-1:-1:-1;5336:4:1;5014:333;;;;;:::o;130:39:0:-;;;;;;;;;;;;;;;:::o;3919:90:1:-;3993:9;;;;3919:90;:::o;5353:351::-;5433:4;-1:-1:-1;;;;;5457:21:1;;5449:62;;;;;-1:-1:-1;;;5449:62:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5564:10;5555:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5555:29:1;;;;;;;;;;:45;;5589:10;5555:33;:45::i;:::-;5531:10;5522:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5522:29:1;;;;;;;;;;;;:79;;;5616:60;;;;;;5522:29;;5616:60;;;;;;;;;;;-1:-1:-1;5693:4:1;5353:351;;;;:::o;833:274:3:-;898:12;;-1:-1:-1;;;;;898:12:3;884:10;:26;876:58;;;;;-1:-1:-1;;;876:58:3;;;;;;;;;;;;-1:-1:-1;;;876:58:3;;;;;;;;;;;;;;;945:21;969:5;;992:10;-1:-1:-1;;;;;;984:18:3;;;;;;;-1:-1:-1;1012:25:3;;;;;;;1053:47;;-1:-1:-1;;;;;969:5:3;;;;992:10;;969:5;;1053:47;;;833:274;:::o;4306:113:1:-;-1:-1:-1;;;;;4396:16:1;4370:7;4396:16;;;:9;:16;;;;;;;4306:113::o;4119:88::-;4169:7;4195:5;-1:-1:-1;;;;;4195:5:1;4119:88;:::o;93:20:3:-;;;-1:-1:-1;;;;;93:20:3;;:::o;443:91::-;483:4;507:5;-1:-1:-1;;;;;507:5:3;516:10;507:19;443:91;:::o;3819:94:1:-;3899:7;3892:14;;;;;;;;-1:-1:-1;;3892:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3867:13;;3892:14;;3899:7;;3892:14;;3899:7;3892:14;;;;;;;;;;;;;;;;;;;;;;;;4213:87;4282:11;;4213:87;:::o;453:252:0:-;530:12;587:9:3;:7;:9::i;:::-;579:42;;;;;-1:-1:-1;;;579:42:3;;;;;;;;;;;;-1:-1:-1;;;579:42:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;558:18:0;::::1;;::::0;;;:7:::1;:18;::::0;;;;;::::1;;554:83;;-1:-1:-1::0;;;;;601:18:0;::::1;;::::0;;;:7:::1;:18;::::0;;;;:25;;-1:-1:-1;;601:25:0::1;622:4;601:25;::::0;;554:83:::1;652:25;::::0;;-1:-1:-1;;;;;652:25:0;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;694:4:0::1;453:252:::0;;;:::o;764:145:2:-;371:12;;840:13;;-1:-1:-1;;;;;371:12:2;357:10;:26;349:72;;;;-1:-1:-1;;;349:72:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:16:::1;871:2;875:5;865;:16::i;5710:361:1:-:0;5795:4;-1:-1:-1;;;;;5819:21:1;;5811:62;;;;;-1:-1:-1;;;5811:62:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5926:10;5917:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5917:29:1;;;;;;;;;;:50;;5951:15;5917:33;:50::i;711:187:0:-;785:12;587:9:3;:7;:9::i;:::-;579:42;;;;;-1:-1:-1;;;579:42:3;;;;;;;;;;;;-1:-1:-1;;;579:42:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;809:15:0;::::1;827:5;809:15:::0;;;:7:::1;:15;::::0;;;;;;;;:23;;-1:-1:-1;;809:23:0::1;::::0;;848:22;;;;;;;::::1;::::0;;;;;;;;::::1;-1:-1:-1::0;887:4:0::1;711:187:::0;;;:::o;4569:154:1:-;4647:4;4663:32;4673:10;4685:2;4689:5;4663:9;:32::i;178:27:2:-;;;-1:-1:-1;;;;;178:27:2;;:::o;4425:138:1:-;-1:-1:-1;;;;;4532:15:1;;;4506:7;4532:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;4425:138::o;679:27:3:-;;;-1:-1:-1;;;;;679:27:3;;:::o;445:313:2:-;587:9:3;:7;:9::i;:::-;579:42;;;;;-1:-1:-1;;;579:42:3;;;;;;;;;;;;-1:-1:-1;;;579:42:3;;;;;;;;;;;;;;;-1:-1:-1;;;;;547:34:2;::::1;539:82;;;;-1:-1:-1::0;;;539:82:2::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;639:12;::::0;-1:-1:-1;;;;;639:12:2::1;:26:::0;631:75:::1;;;;-1:-1:-1::0;;;631:75:2::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:12;:35:::0;;-1:-1:-1;;;;;;716:35:2::1;-1:-1:-1::0;;;;;716:35:2;;;::::1;::::0;;;::::1;::::0;;445:313::o;713:114:3:-;587:9;:7;:9::i;:::-;579:42;;;;;-1:-1:-1;;;579:42:3;;;;;;;;;;;;-1:-1:-1;;;579:42:3;;;;;;;;;;;;;;;796:12:::1;:24:::0;;-1:-1:-1;;;;;;796:24:3::1;-1:-1:-1::0;;;;;796:24:3;;;::::1;::::0;;;::::1;::::0;;713:114::o;1013:157:6:-;1071:7;1102:5;;;1125:6;;;;1117:28;;;;;-1:-1:-1;;;1117:28:6;;;;;;;;;;;;-1:-1:-1;;;1117:28:6;;;;;;;;;;;;;;;1162:1;1013:157;-1:-1:-1;;;1013:157:6:o;6763:343:1:-;-1:-1:-1;;;;;6837:21:1;;6829:62;;;;;-1:-1:-1;;;6829:62:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;6917:12;;:23;;6934:5;6917:16;:23::i;:::-;6902:12;:38;-1:-1:-1;;;;;6971:18:1;;;;;;:9;:18;;;;;;:29;;6994:5;6971:22;:29::i;:::-;-1:-1:-1;;;;;6950:18:1;;;;;;:9;:18;;;;;:50;7025:11;;:22;;7041:5;7025:15;:22::i;:::-;7011:11;:36;7063;;;;;;;;7089:1;;-1:-1:-1;;;;;7063:36:1;;;;;;;;;;;;6763:343;;:::o;798:157:6:-;856:7;888:1;883;:6;;875:28;;;;;-1:-1:-1;;;875:28:6;;;;;;;;;;;;-1:-1:-1;;;875:28:6;;;;;;;;;;;;;;;-1:-1:-1;925:5:6;;;798:157::o;6077:379:1:-;-1:-1:-1;;;;;6194:18:1;;6186:56;;;;;-1:-1:-1;;;6186:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6260:16:1;;6252:52;;;;;-1:-1:-1;;;6252:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6333:15:1;;;;;;:9;:15;;;;;;:26;;6353:5;6333:19;:26::i;:::-;-1:-1:-1;;;;;6315:15:1;;;;;;;:9;:15;;;;;;:44;;;;6385:13;;;;;;;:24;;6403:5;6385:17;:24::i;:::-;-1:-1:-1;;;;;6369:13:1;;;;;;;:9;:13;;;;;;;;;:40;;;;6424:25;;;;;;;6369:13;;6424:25;;;;;;;;;;;;;6077:379;;;:::o;6462:295::-;-1:-1:-1;;;;;6536:21:1;;6528:62;;;;;-1:-1:-1;;;6528:62:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;6616:12;;:23;;6633:5;6616:16;:23::i;:::-;6601:12;:38;-1:-1:-1;;;;;6670:18:1;;;;;;:9;:18;;;;;;:29;;6693:5;6670:22;:29::i;:::-;-1:-1:-1;;;;;6649:18:1;;;;;;:9;:18;;;;;;;;:50;;;;6714:36;;;;;;;6649:18;;;;6714:36;;;;;;;;;;6462:295;;:::o

Swarm Source

ipfs://646781d93e14b06edf16f5fc580f5c83a5320f782c394d71fc8eb250308ba237
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.