ETH Price: $2,058.62 (+0.85%)

Contract

0xe12cB2D1cFB370A245A2A34DE3dbC845C341bD92
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve178207432023-08-01 14:26:47972 days ago1690900007IN
0xe12cB2D1...5C341bD92
0 ETH0.0016344735.27061846
Approve178091672023-07-30 23:38:35974 days ago1690760315IN
0xe12cB2D1...5C341bD92
0 ETH0.0006811514.69875085
Exclude From Fee...178090512023-07-30 23:15:11974 days ago1690758911IN
0xe12cB2D1...5C341bD92
0 ETH0.0004222716.04889632
Exclude From Rew...178090492023-07-30 23:14:47974 days ago1690758887IN
0xe12cB2D1...5C341bD92
0 ETH0.0004175715.92295057
Set Fees Enabled178090142023-07-30 23:07:23974 days ago1690758443IN
0xe12cB2D1...5C341bD92
0 ETH0.0003614815.1590719
Exclude From Rew...178090092023-07-30 23:06:23974 days ago1690758383IN
0xe12cB2D1...5C341bD92
0 ETH0.0006533214.16433345
Exclude From Fee...178090082023-07-30 23:06:11974 days ago1690758371IN
0xe12cB2D1...5C341bD92
0 ETH0.0006802714.72083128
Approve178089942023-07-30 23:03:23974 days ago1690758203IN
0xe12cB2D1...5C341bD92
0 ETH0.000845518.25475619

Advanced mode:
Parent Transaction Hash Method Block
From
To
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RoosCoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

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

// SPDX-License-Identifier: MIT


pragma solidity ^0.8.0;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}



pragma solidity ^0.8.0;


contract RoosCoin {
    using SafeMath for uint256;

    string private constant _name = "Roos Coin";
    string private constant _symbol = "Roos";
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 10_000_000_000_000 * 10**_decimals;

    uint256 private _burnRate = 50; // 0.5% burn rate (0.5 * 100)
    uint256 private _liquidityFeeRate = 1; // 1% liquidity fee rate
    uint256 private _redistributionRate = 100; // 1% redistribution fee rate (1 * 100)
    uint256 private _buybackFeeRate = 5; // 0.5% buyback fee rate (0.5 * 10)

    address private _owner;
    address private _buybackWallet = 0x03f402c57EB6839CA70856756032080CAf1Ab58D;
    address private _liquidityPool;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    address[] private _tokenHolders;

    mapping(address => bool) private _excludedFromFees; // Addresses excluded from paying fees
    mapping(address => bool) private _excludedFromRewards; // Addresses excluded from receiving rewards

    bool private _feesEnabled = true;

    modifier onlyOwner() {
        require(msg.sender == _owner, "Only the contract owner can call this function.");
        _;
    }

    constructor() {
        _owner = msg.sender;
        _balances[msg.sender] = _totalSupply;
        _tokenHolders.push(msg.sender);
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    function setLiquidityPool(address liquidityPool) external onlyOwner {
        require(liquidityPool != address(0), "Invalid liquidity pool address");
        _liquidityPool = liquidityPool;
    }

    function renounceOwnership() external onlyOwner {
        _owner = address(0);
        emit OwnershipTransferred(msg.sender, address(0));
    }

    function setFeesEnabled(bool enabled) external onlyOwner {
        _feesEnabled = enabled;
    }

    // Function to add addresses to the excluded list for paying fees (only callable by the contract owner)
    function excludeFromFees(address account) external onlyOwner {
        require(account != address(0), "Invalid address");
        _excludedFromFees[account] = true;
    }

    // Function to remove addresses from the excluded list for paying fees (only callable by the contract owner)
    function includeInFees(address account) external onlyOwner {
        require(account != address(0), "Invalid address");
        _excludedFromFees[account] = false;
    }

    function isExcludedFromFees(address account) public view returns (bool) {
        return _excludedFromFees[account];
    }

    // Function to add addresses to the excluded list for receiving rewards (only callable by the contract owner)
    function excludeFromRewards(address account) external onlyOwner {
        require(account != address(0), "Invalid address");
        _excludedFromRewards[account] = true;
    }

    // Function to remove addresses from the excluded list for receiving rewards (only callable by the contract owner)
    function includeInRewards(address account) external onlyOwner {
        require(account != address(0), "Invalid address");
        _excludedFromRewards[account] = false;
    }

    function isExcludedFromRewards(address account) public view returns (bool) {
        return _excludedFromRewards[account];
    }

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "ERC20: transfer amount must be greater than zero");

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

        uint256 burnAmount = amount.mul(_burnRate).div(10000); // divide by 10000 to convert from 0.5% (50 / 10000)
        uint256 liquidityFee = amount.mul(_liquidityFeeRate).div(100);
        uint256 redistributionFee = amount.mul(_redistributionRate).div(10000); // divide by 10000 to convert from 1% (100 / 10000)
        uint256 buybackFee = amount.mul(_buybackFeeRate).div(1000); // divide by 1000 to convert from 0.5% (5 / 1000)

        uint256 transferAmount = amount.sub(burnAmount).sub(liquidityFee).sub(redistributionFee).sub(buybackFee);

        _balances[sender] = senderBalance.sub(amount);
        _balances[recipient] = _balances[recipient].add(transferAmount);

        // Apply fees if enabled and the sender is not excluded from fees
        if (_feesEnabled && !_excludedFromFees[sender]) {
            _balances[address(this)] = _balances[address(this)].add(liquidityFee).add(redistributionFee);

            // Transfer buyback fee to the buyback wallet
            _balances[_buybackWallet] = _balances[_buybackWallet].add(buybackFee);

            // Update token holders if recipient is a new address
            if (_balances[recipient] == 0) {
                _tokenHolders.push(recipient);
            }

            emit Transfer(sender, recipient, transferAmount);
            emit Transfer(sender, address(0), burnAmount);
            emit Transfer(sender, _buybackWallet, buybackFee);

            // Transfer liquidity fee to the liquidity pool
            if (_liquidityPool != address(0) && liquidityFee > 0) {
                _balances[_liquidityPool] = _balances[_liquidityPool].add(liquidityFee);
                emit Transfer(sender, _liquidityPool, liquidityFee);
            }

            // Distribute redistribution fee to token holders
            if (redistributionFee > 0) {
                _distributeRedistributionFee(redistributionFee);
            }
        } else {
            // Fees are disabled or the sender is excluded, transfer the full amount without applying fees
            _balances[recipient] = _balances[recipient].add(amount);
            _balances[sender] = _balances[sender].sub(amount);
            emit Transfer(sender, recipient, amount);
        }
    }

    function _distributeRedistributionFee(uint256 amount) internal {
        uint256 numTokenHolders = _tokenHolders.length;
        if (numTokenHolders > 0) {
            uint256 feePerHolder = amount.div(numTokenHolders);
            for (uint256 i = 0; i < numTokenHolders; i++) {
                address holder = _tokenHolders[i];
                if (!_excludedFromRewards[holder]) {
                    _balances[holder] = _balances[holder].add(feePerHolder);
                    emit Transfer(address(this), holder, feePerHolder);
                }
            }
        }
    }

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

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

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"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":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":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromRewards","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setFeesEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"liquidityPool","type":"address"}],"name":"setLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052620000126012600a6200022a565b62000024906509184e72a00062000241565b5f5560326001908155600281905560646003556005600455600680546001600160a01b0319167303f402c57eb6839ca70856756032080caf1ab58d179055600d805460ff191690911790553480156200007b575f80fd5b5060058054336001600160a01b031991821681179092555f805483825260086020908152604080842092909255600a80546001810182559084527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a801805490941685179093558154905190815290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200025b565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200016f57815f19048211156200015357620001536200011b565b808516156200016157918102915b93841c939080029062000134565b509250929050565b5f82620001875750600162000224565b816200019557505f62000224565b8160018114620001ae5760028114620001b957620001d9565b600191505062000224565b60ff841115620001cd57620001cd6200011b565b50506001821b62000224565b5060208310610133831016604e8410600b8410161715620001fe575081810a62000224565b6200020a83836200012f565b805f19048211156200022057620002206200011b565b0290505b92915050565b5f6200023a60ff84168362000177565b9392505050565b80820281158282048414176200022457620002246200011b565b61123280620002695f395ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c80634fbee1931161009e578063a901dd921161006e578063a901dd9214610283578063a9059cbb14610296578063b609995e146102a9578063dd62ed3e146102bc578063e57f14e1146102f4575f80fd5b80634fbee1931461020857806370a0823114610233578063715018a61461025b57806395d89b4114610263575f80fd5b8063111e0376116100e4578063111e0376146101af57806316a2f82a146101c257806318160ddd146101d557806323b872dd146101e6578063313ce567146101f9575f80fd5b8063018770201461011557806306fdde031461012a578063095ea7b3146101615780630e83227314610184575b5f80fd5b610128610123366004610fb3565b610307565b005b6040805180820190915260098152682937b7b99021b7b4b760b91b60208201525b6040516101589190610fcc565b60405180910390f35b61017461016f366004611017565b6103b2565b6040519015158152602001610158565b610174610192366004610fb3565b6001600160a01b03165f908152600c602052604090205460ff1690565b6101286101bd366004610fb3565b6103c8565b6101286101d0366004610fb3565b61043b565b5f545b604051908152602001610158565b6101746101f436600461103f565b6104ab565b60405160128152602001610158565b610174610216366004610fb3565b6001600160a01b03165f908152600b602052604090205460ff1690565b6101d8610241366004610fb3565b6001600160a01b03165f9081526008602052604090205490565b6101286104fa565b604080518082019091526004815263526f6f7360e01b602082015261014b565b610128610291366004611078565b610562565b6101746102a4366004611017565b61059f565b6101286102b7366004610fb3565b6105ab565b6101d86102ca366004611097565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b610128610302366004610fb3565b61061b565b6005546001600160a01b0316331461033a5760405162461bcd60e51b8152600401610331906110c8565b60405180910390fd5b6001600160a01b0381166103905760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206c697175696469747920706f6f6c206164647265737300006044820152606401610331565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f6103be33848461068e565b5060015b92915050565b6005546001600160a01b031633146103f25760405162461bcd60e51b8152600401610331906110c8565b6001600160a01b0381166104185760405162461bcd60e51b815260040161033190611117565b6001600160a01b03165f908152600c60205260409020805460ff19166001179055565b6005546001600160a01b031633146104655760405162461bcd60e51b8152600401610331906110c8565b6001600160a01b03811661048b5760405162461bcd60e51b815260040161033190611117565b6001600160a01b03165f908152600b60205260409020805460ff19169055565b5f6104b78484846107b1565b6001600160a01b0384165f908152600960209081526040808320338085529252909120546104f09186916104eb9086610d12565b61068e565b5060019392505050565b6005546001600160a01b031633146105245760405162461bcd60e51b8152600401610331906110c8565b600580546001600160a01b03191690556040515f9033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b6005546001600160a01b0316331461058c5760405162461bcd60e51b8152600401610331906110c8565b600d805460ff1916911515919091179055565b5f6103be3384846107b1565b6005546001600160a01b031633146105d55760405162461bcd60e51b8152600401610331906110c8565b6001600160a01b0381166105fb5760405162461bcd60e51b815260040161033190611117565b6001600160a01b03165f908152600c60205260409020805460ff19169055565b6005546001600160a01b031633146106455760405162461bcd60e51b8152600401610331906110c8565b6001600160a01b03811661066b5760405162461bcd60e51b815260040161033190611117565b6001600160a01b03165f908152600b60205260409020805460ff19166001179055565b6001600160a01b0383166106f05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610331565b6001600160a01b0382166107515760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610331565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610331565b6001600160a01b0382166108775760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610331565b5f81116108df5760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610331565b6001600160a01b0383165f90815260086020526040902054818110156109565760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610331565b5f61097861271061097260015486610d7690919063ffffffff16565b90610dfb565b90505f610995606461097260025487610d7690919063ffffffff16565b90505f6109b361271061097260035488610d7690919063ffffffff16565b90505f6109d16103e861097260045489610d7690919063ffffffff16565b90505f6109ec826109e6858188818d8c610d12565b90610d12565b90506109f88688610d12565b6001600160a01b03808b165f9081526008602052604080822093909355908a1681522054610a269082610e56565b6001600160a01b0389165f90815260086020526040902055600d5460ff168015610a6857506001600160a01b0389165f908152600b602052604090205460ff16155b15610c7457305f90815260086020526040902054610a92908490610a8c9087610e56565b90610e56565b305f90815260086020526040808220929092556006546001600160a01b031681522054610abf9083610e56565b6006546001600160a01b039081165f9081526008602052604080822093909355908a168152908120549003610b3957600a80546001810182555f919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b038a161790555b876001600160a01b0316896001600160a01b03165f805160206111dd83398151915283604051610b6b91815260200190565b60405180910390a36040518581525f906001600160a01b038b16905f805160206111dd8339815191529060200160405180910390a36006546040518381526001600160a01b03918216918b16905f805160206111dd8339815191529060200160405180910390a36007546001600160a01b031615801590610beb57505f84115b15610c60576007546001600160a01b03165f90815260086020526040902054610c149085610e56565b600780546001600160a01b039081165f90815260086020908152604091829020949094559154915187815291811692908c16915f805160206111dd833981519152910160405180910390a35b8215610c6f57610c6f83610eb4565b610d07565b6001600160a01b0388165f90815260086020526040902054610c969088610e56565b6001600160a01b03808a165f9081526008602052604080822093909355908b1681522054610cc49088610d12565b6001600160a01b038a81165f8181526008602090815260409182902094909455518a8152918b169290915f805160206111dd833981519152910160405180910390a35b505050505050505050565b5f82821115610d635760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610331565b5f610d6e8385611154565b949350505050565b5f825f03610d8557505f6103c2565b5f610d908385611167565b905082610d9d858361117e565b14610df45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610331565b9392505050565b5f808211610e4b5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610331565b5f610d6e838561117e565b5f80610e62838561119d565b905083811015610df45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610331565b600a548015610f94575f610ec88383610dfb565b90505f5b82811015610f91575f600a8281548110610ee857610ee86111b0565b5f9182526020808320909101546001600160a01b0316808352600c90915260409091205490915060ff16610f7e576001600160a01b0381165f90815260086020526040902054610f389084610e56565b6001600160a01b0382165f818152600860205260409081902092909255905130905f805160206111dd83398151915290610f759087815260200190565b60405180910390a35b5080610f89816111c4565b915050610ecc565b50505b5050565b80356001600160a01b0381168114610fae575f80fd5b919050565b5f60208284031215610fc3575f80fd5b610df482610f98565b5f6020808352835180828501525f5b81811015610ff757858101830151858201604001528201610fdb565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611028575f80fd5b61103183610f98565b946020939093013593505050565b5f805f60608486031215611051575f80fd5b61105a84610f98565b925061106860208501610f98565b9150604084013590509250925092565b5f60208284031215611088575f80fd5b81358015158114610df4575f80fd5b5f80604083850312156110a8575f80fd5b6110b183610f98565b91506110bf60208401610f98565b90509250929050565b6020808252602f908201527f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60408201526e103a3434b990333ab731ba34b7b71760891b606082015260800190565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103c2576103c2611140565b80820281158282048414176103c2576103c2611140565b5f8261119857634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103c2576103c2611140565b634e487b7160e01b5f52603260045260245ffd5b5f600182016111d5576111d5611140565b506001019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122029a0b91a13c52d7e9e9dc505be4b267f53bc1ae37c9eafceb7b5c390a43499e564736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610111575f3560e01c80634fbee1931161009e578063a901dd921161006e578063a901dd9214610283578063a9059cbb14610296578063b609995e146102a9578063dd62ed3e146102bc578063e57f14e1146102f4575f80fd5b80634fbee1931461020857806370a0823114610233578063715018a61461025b57806395d89b4114610263575f80fd5b8063111e0376116100e4578063111e0376146101af57806316a2f82a146101c257806318160ddd146101d557806323b872dd146101e6578063313ce567146101f9575f80fd5b8063018770201461011557806306fdde031461012a578063095ea7b3146101615780630e83227314610184575b5f80fd5b610128610123366004610fb3565b610307565b005b6040805180820190915260098152682937b7b99021b7b4b760b91b60208201525b6040516101589190610fcc565b60405180910390f35b61017461016f366004611017565b6103b2565b6040519015158152602001610158565b610174610192366004610fb3565b6001600160a01b03165f908152600c602052604090205460ff1690565b6101286101bd366004610fb3565b6103c8565b6101286101d0366004610fb3565b61043b565b5f545b604051908152602001610158565b6101746101f436600461103f565b6104ab565b60405160128152602001610158565b610174610216366004610fb3565b6001600160a01b03165f908152600b602052604090205460ff1690565b6101d8610241366004610fb3565b6001600160a01b03165f9081526008602052604090205490565b6101286104fa565b604080518082019091526004815263526f6f7360e01b602082015261014b565b610128610291366004611078565b610562565b6101746102a4366004611017565b61059f565b6101286102b7366004610fb3565b6105ab565b6101d86102ca366004611097565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b610128610302366004610fb3565b61061b565b6005546001600160a01b0316331461033a5760405162461bcd60e51b8152600401610331906110c8565b60405180910390fd5b6001600160a01b0381166103905760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206c697175696469747920706f6f6c206164647265737300006044820152606401610331565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b5f6103be33848461068e565b5060015b92915050565b6005546001600160a01b031633146103f25760405162461bcd60e51b8152600401610331906110c8565b6001600160a01b0381166104185760405162461bcd60e51b815260040161033190611117565b6001600160a01b03165f908152600c60205260409020805460ff19166001179055565b6005546001600160a01b031633146104655760405162461bcd60e51b8152600401610331906110c8565b6001600160a01b03811661048b5760405162461bcd60e51b815260040161033190611117565b6001600160a01b03165f908152600b60205260409020805460ff19169055565b5f6104b78484846107b1565b6001600160a01b0384165f908152600960209081526040808320338085529252909120546104f09186916104eb9086610d12565b61068e565b5060019392505050565b6005546001600160a01b031633146105245760405162461bcd60e51b8152600401610331906110c8565b600580546001600160a01b03191690556040515f9033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b6005546001600160a01b0316331461058c5760405162461bcd60e51b8152600401610331906110c8565b600d805460ff1916911515919091179055565b5f6103be3384846107b1565b6005546001600160a01b031633146105d55760405162461bcd60e51b8152600401610331906110c8565b6001600160a01b0381166105fb5760405162461bcd60e51b815260040161033190611117565b6001600160a01b03165f908152600c60205260409020805460ff19169055565b6005546001600160a01b031633146106455760405162461bcd60e51b8152600401610331906110c8565b6001600160a01b03811661066b5760405162461bcd60e51b815260040161033190611117565b6001600160a01b03165f908152600b60205260409020805460ff19166001179055565b6001600160a01b0383166106f05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610331565b6001600160a01b0382166107515760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610331565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166108155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610331565b6001600160a01b0382166108775760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610331565b5f81116108df5760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610331565b6001600160a01b0383165f90815260086020526040902054818110156109565760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610331565b5f61097861271061097260015486610d7690919063ffffffff16565b90610dfb565b90505f610995606461097260025487610d7690919063ffffffff16565b90505f6109b361271061097260035488610d7690919063ffffffff16565b90505f6109d16103e861097260045489610d7690919063ffffffff16565b90505f6109ec826109e6858188818d8c610d12565b90610d12565b90506109f88688610d12565b6001600160a01b03808b165f9081526008602052604080822093909355908a1681522054610a269082610e56565b6001600160a01b0389165f90815260086020526040902055600d5460ff168015610a6857506001600160a01b0389165f908152600b602052604090205460ff16155b15610c7457305f90815260086020526040902054610a92908490610a8c9087610e56565b90610e56565b305f90815260086020526040808220929092556006546001600160a01b031681522054610abf9083610e56565b6006546001600160a01b039081165f9081526008602052604080822093909355908a168152908120549003610b3957600a80546001810182555f919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80180546001600160a01b0319166001600160a01b038a161790555b876001600160a01b0316896001600160a01b03165f805160206111dd83398151915283604051610b6b91815260200190565b60405180910390a36040518581525f906001600160a01b038b16905f805160206111dd8339815191529060200160405180910390a36006546040518381526001600160a01b03918216918b16905f805160206111dd8339815191529060200160405180910390a36007546001600160a01b031615801590610beb57505f84115b15610c60576007546001600160a01b03165f90815260086020526040902054610c149085610e56565b600780546001600160a01b039081165f90815260086020908152604091829020949094559154915187815291811692908c16915f805160206111dd833981519152910160405180910390a35b8215610c6f57610c6f83610eb4565b610d07565b6001600160a01b0388165f90815260086020526040902054610c969088610e56565b6001600160a01b03808a165f9081526008602052604080822093909355908b1681522054610cc49088610d12565b6001600160a01b038a81165f8181526008602090815260409182902094909455518a8152918b169290915f805160206111dd833981519152910160405180910390a35b505050505050505050565b5f82821115610d635760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610331565b5f610d6e8385611154565b949350505050565b5f825f03610d8557505f6103c2565b5f610d908385611167565b905082610d9d858361117e565b14610df45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610331565b9392505050565b5f808211610e4b5760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610331565b5f610d6e838561117e565b5f80610e62838561119d565b905083811015610df45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610331565b600a548015610f94575f610ec88383610dfb565b90505f5b82811015610f91575f600a8281548110610ee857610ee86111b0565b5f9182526020808320909101546001600160a01b0316808352600c90915260409091205490915060ff16610f7e576001600160a01b0381165f90815260086020526040902054610f389084610e56565b6001600160a01b0382165f818152600860205260409081902092909255905130905f805160206111dd83398151915290610f759087815260200190565b60405180910390a35b5080610f89816111c4565b915050610ecc565b50505b5050565b80356001600160a01b0381168114610fae575f80fd5b919050565b5f60208284031215610fc3575f80fd5b610df482610f98565b5f6020808352835180828501525f5b81811015610ff757858101830151858201604001528201610fdb565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611028575f80fd5b61103183610f98565b946020939093013593505050565b5f805f60608486031215611051575f80fd5b61105a84610f98565b925061106860208501610f98565b9150604084013590509250925092565b5f60208284031215611088575f80fd5b81358015158114610df4575f80fd5b5f80604083850312156110a8575f80fd5b6110b183610f98565b91506110bf60208401610f98565b90509250929050565b6020808252602f908201527f4f6e6c792074686520636f6e7472616374206f776e65722063616e2063616c6c60408201526e103a3434b990333ab731ba34b7b71760891b606082015260800190565b6020808252600f908201526e496e76616c6964206164647265737360881b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103c2576103c2611140565b80820281158282048414176103c2576103c2611140565b5f8261119857634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103c2576103c2611140565b634e487b7160e01b5f52603260045260245ffd5b5f600182016111d5576111d5611140565b506001019056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122029a0b91a13c52d7e9e9dc505be4b267f53bc1ae37c9eafceb7b5c390a43499e564736f6c63430008140033

Deployed Bytecode Sourcemap

1096:8581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3807:198;;;;;;:::i;:::-;;:::i;:::-;;2585:83;2655:5;;;;;;;;;;;;-1:-1:-1;;;2655:5:0;;;;2585:83;;;;;;;:::i;:::-;;;;;;;;3385:150;;;;;;:::i;:::-;;:::i;:::-;;;1360:14:1;;1353:22;1335:41;;1323:2;1308:18;3385:150:0;1195:187:1;5597:130:0;;;;;;:::i;:::-;-1:-1:-1;;;;;5690:29:0;5666:4;5690:29;;;:20;:29;;;;;;;;;5597:130;5104:179;;;;;;:::i;:::-;;:::i;4677:172::-;;;;;;:::i;:::-;;:::i;2862:91::-;2906:7;2933:12;2862:91;;;1533:25:1;;;1521:2;1506:18;2862:91:0;1387:177:1;3543:256:0;;;;;;:::i;:::-;;:::i;2771:83::-;;;1288:2;2044:36:1;;2032:2;2017:18;2771:83:0;1902:184:1;4857:124:0;;;;;;:::i;:::-;-1:-1:-1;;;;;4947:26:0;4923:4;4947:26;;;:17;:26;;;;;;;;;4857:124;2961:110;;;;;;:::i;:::-;-1:-1:-1;;;;;3045:18:0;3018:7;3045:18;;;:9;:18;;;;;;;2961:110;4013:146;;;:::i;2676:87::-;2748:7;;;;;;;;;;;;-1:-1:-1;;;2748:7:0;;;;2676:87;;4167:98;;;;;;:::i;:::-;;:::i;3079:156::-;;;;;;:::i;:::-;;:::i;5411:178::-;;;;;;:::i;:::-;;:::i;3243:134::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3342:18:0;;;3315:7;3342:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3243:134;4382:173;;;;;;:::i;:::-;;:::i;3807:198::-;2289:6;;-1:-1:-1;;;;;2289:6:0;2275:10;:20;2267:80;;;;-1:-1:-1;;;2267:80:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3894:27:0;::::1;3886:70;;;::::0;-1:-1:-1;;;3886:70:0;;3252:2:1;3886:70:0::1;::::0;::::1;3234:21:1::0;3291:2;3271:18;;;3264:30;3330:32;3310:18;;;3303:60;3380:18;;3886:70:0::1;3050:354:1::0;3886:70:0::1;3967:14;:30:::0;;-1:-1:-1;;;;;;3967:30:0::1;-1:-1:-1::0;;;;;3967:30:0;;;::::1;::::0;;;::::1;::::0;;3807:198::o;3385:150::-;3451:4;3468:37;3477:10;3489:7;3498:6;3468:8;:37::i;:::-;-1:-1:-1;3523:4:0;3385:150;;;;;:::o;5104:179::-;2289:6;;-1:-1:-1;;;;;2289:6:0;2275:10;:20;2267:80;;;;-1:-1:-1;;;2267:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5187:21:0;::::1;5179:49;;;;-1:-1:-1::0;;;5179:49:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5239:29:0::1;;::::0;;;:20:::1;:29;::::0;;;;:36;;-1:-1:-1;;5239:36:0::1;5271:4;5239:36;::::0;;5104:179::o;4677:172::-;2289:6;;-1:-1:-1;;;;;2289:6:0;2275:10;:20;2267:80;;;;-1:-1:-1;;;2267:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4755:21:0;::::1;4747:49;;;;-1:-1:-1::0;;;4747:49:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4807:26:0::1;4836:5;4807:26:::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;4807:34:0::1;::::0;;4677:172::o;3543:256::-;3632:4;3649:36;3659:6;3667:9;3678:6;3649:9;:36::i;:::-;-1:-1:-1;;;;;3725:19:0;;;;;;:11;:19;;;;;;;;3713:10;3725:31;;;;;;;;;3696:73;;3705:6;;3725:43;;3761:6;3725:35;:43::i;:::-;3696:8;:73::i;:::-;-1:-1:-1;3787:4:0;3543:256;;;;;:::o;4013:146::-;2289:6;;-1:-1:-1;;;;;2289:6:0;2275:10;:20;2267:80;;;;-1:-1:-1;;;2267:80:0;;;;;;;:::i;:::-;4072:6:::1;:19:::0;;-1:-1:-1;;;;;;4072:19:0::1;::::0;;4107:44:::1;::::0;4089:1:::1;::::0;4128:10:::1;::::0;4107:44:::1;::::0;4089:1;;4107:44:::1;4013:146::o:0;4167:98::-;2289:6;;-1:-1:-1;;;;;2289:6:0;2275:10;:20;2267:80;;;;-1:-1:-1;;;2267:80:0;;;;;;;:::i;:::-;4235:12:::1;:22:::0;;-1:-1:-1;;4235:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;4167:98::o;3079:156::-;3148:4;3165:40;3175:10;3187:9;3198:6;3165:9;:40::i;5411:178::-;2289:6;;-1:-1:-1;;;;;2289:6:0;2275:10;:20;2267:80;;;;-1:-1:-1;;;2267:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5492:21:0;::::1;5484:49;;;;-1:-1:-1::0;;;5484:49:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5544:29:0::1;5576:5;5544:29:::0;;;:20:::1;:29;::::0;;;;:37;;-1:-1:-1;;5544:37:0::1;::::0;;5411:178::o;4382:173::-;2289:6;;-1:-1:-1;;;;;2289:6:0;2275:10;:20;2267:80;;;;-1:-1:-1;;;2267:80:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4462:21:0;::::1;4454:49;;;;-1:-1:-1::0;;;4454:49:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4514:26:0::1;;::::0;;;:17:::1;:26;::::0;;;;:33;;-1:-1:-1;;4514:33:0::1;4543:4;4514:33;::::0;;4382:173::o;9082:338::-;-1:-1:-1;;;;;9176:19:0;;9168:68;;;;-1:-1:-1;;;9168:68:0;;3955:2:1;9168:68:0;;;3937:21:1;3994:2;3974:18;;;3967:30;4033:34;4013:18;;;4006:62;-1:-1:-1;;;4084:18:1;;;4077:34;4128:19;;9168:68:0;3753:400:1;9168:68:0;-1:-1:-1;;;;;9255:21:0;;9247:68;;;;-1:-1:-1;;;9247:68:0;;4360:2:1;9247:68:0;;;4342:21:1;4399:2;4379:18;;;4372:30;4438:34;4418:18;;;4411:62;-1:-1:-1;;;4489:18:1;;;4482:32;4531:19;;9247:68:0;4158:398:1;9247:68:0;-1:-1:-1;;;;;9328:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9380:32;;1533:25:1;;;9380:32:0;;1506:18:1;9380:32:0;;;;;;;9082:338;;;:::o;5735:2739::-;-1:-1:-1;;;;;5833:20:0;;5825:70;;;;-1:-1:-1;;;5825:70:0;;4763:2:1;5825:70:0;;;4745:21:1;4802:2;4782:18;;;4775:30;4841:34;4821:18;;;4814:62;-1:-1:-1;;;4892:18:1;;;4885:35;4937:19;;5825:70:0;4561:401:1;5825:70:0;-1:-1:-1;;;;;5914:23:0;;5906:71;;;;-1:-1:-1;;;5906:71:0;;5169:2:1;5906:71:0;;;5151:21:1;5208:2;5188:18;;;5181:30;5247:34;5227:18;;;5220:62;-1:-1:-1;;;5298:18:1;;;5291:33;5341:19;;5906:71:0;4967:399:1;5906:71:0;6005:1;5996:6;:10;5988:71;;;;-1:-1:-1;;;5988:71:0;;5573:2:1;5988:71:0;;;5555:21:1;5612:2;5592:18;;;5585:30;5651:34;5631:18;;;5624:62;-1:-1:-1;;;5702:18:1;;;5695:46;5758:19;;5988:71:0;5371:412:1;5988:71:0;-1:-1:-1;;;;;6096:17:0;;6072:21;6096:17;;;:9;:17;;;;;;6132:23;;;;6124:74;;;;-1:-1:-1;;;6124:74:0;;5990:2:1;6124:74:0;;;5972:21:1;6029:2;6009:18;;;6002:30;6068:34;6048:18;;;6041:62;-1:-1:-1;;;6119:18:1;;;6112:36;6165:19;;6124:74:0;5788:402:1;6124:74:0;6211:18;6232:32;6258:5;6232:21;6243:9;;6232:6;:10;;:21;;;;:::i;:::-;:25;;:32::i;:::-;6211:53;;6328:20;6351:38;6385:3;6351:29;6362:17;;6351:6;:10;;:29;;;;:::i;:38::-;6328:61;;6400:25;6428:42;6464:5;6428:31;6439:19;;6428:6;:10;;:31;;;;:::i;:42::-;6400:70;;6533:18;6554:37;6586:4;6554:27;6565:15;;6554:6;:10;;:27;;;;:::i;:37::-;6533:58;-1:-1:-1;6654:22:0;6679:79;6533:58;6679:63;6724:17;6679:63;6706:12;6679:63;:6;6690:10;6679;:22::i;:::-;:26;;:40::i;:79::-;6654:104;-1:-1:-1;6791:25:0;:13;6809:6;6791:17;:25::i;:::-;-1:-1:-1;;;;;6771:17:0;;;;;;;:9;:17;;;;;;:45;;;;6850:20;;;;;;;:40;;6875:14;6850:24;:40::i;:::-;-1:-1:-1;;;;;6827:20:0;;;;;;:9;:20;;;;;:63;6982:12;;;;:42;;;;-1:-1:-1;;;;;;6999:25:0;;;;;;:17;:25;;;;;;;;6998:26;6982:42;6978:1489;;;7086:4;7068:24;;;;:9;:24;;;;;;:65;;7115:17;;7068:42;;7097:12;7068:28;:42::i;:::-;:46;;:65::i;:::-;7059:4;7041:24;;;;:9;:24;;;;;;:92;;;;7247:14;;-1:-1:-1;;;;;7247:14:0;7237:25;;;;:41;;7267:10;7237:29;:41::i;:::-;7219:14;;-1:-1:-1;;;;;7219:14:0;;;7209:25;;;;:9;:25;;;;;;:69;;;;7366:20;;;;;;;;;:25;;7362:95;;7412:13;:29;;;;;;;-1:-1:-1;7412:29:0;;;;;;;;-1:-1:-1;;;;;;7412:29:0;-1:-1:-1;;;;;7412:29:0;;;;;7362:95;7495:9;-1:-1:-1;;;;;7478:43:0;7487:6;-1:-1:-1;;;;;7478:43:0;-1:-1:-1;;;;;;;;;;;7506:14:0;7478:43;;;;1533:25:1;;1521:2;1506:18;;1387:177;7478:43:0;;;;;;;;7541:40;;1533:25:1;;;7566:1:0;;-1:-1:-1;;;;;7541:40:0;;;-1:-1:-1;;;;;;;;;;;7541:40:0;1521:2:1;1506:18;7541:40:0;;;;;;;7618:14;;7601:44;;1533:25:1;;;-1:-1:-1;;;;;7618:14:0;;;;7601:44;;;-1:-1:-1;;;;;;;;;;;7601:44:0;1521:2:1;1506:18;7601:44:0;;;;;;;7727:14;;-1:-1:-1;;;;;7727:14:0;:28;;;;:48;;;7774:1;7759:12;:16;7727:48;7723:230;;;7834:14;;-1:-1:-1;;;;;7834:14:0;7824:25;;;;:9;:25;;;;;;:43;;7854:12;7824:29;:43::i;:::-;7806:14;;;-1:-1:-1;;;;;7806:14:0;;;7796:25;;;;:9;:25;;;;;;;;;:71;;;;7908:14;;7891:46;;1533:25:1;;;7908:14:0;;;;7891:46;;;;-1:-1:-1;;;;;;;;;;;7891:46:0;1506:18:1;7891:46:0;;;;;;;7723:230;8036:21;;8032:109;;8078:47;8107:17;8078:28;:47::i;:::-;6978:1489;;;-1:-1:-1;;;;;8304:20:0;;;;;;:9;:20;;;;;;:32;;8329:6;8304:24;:32::i;:::-;-1:-1:-1;;;;;8281:20:0;;;;;;;:9;:20;;;;;;:55;;;;8371:17;;;;;;;:29;;8393:6;8371:21;:29::i;:::-;-1:-1:-1;;;;;8351:17:0;;;;;;;:9;:17;;;;;;;;;:49;;;;8420:35;1533:25:1;;;8420:35:0;;;;8351:17;;-1:-1:-1;;;;;;;;;;;8420:35:0;1506:18:1;8420:35:0;;;;;;;6978:1489;5814:2660;;;;;;5735:2739;;;:::o;275:182::-;333:7;366:1;361;:6;;353:49;;;;-1:-1:-1;;;353:49:0;;6397:2:1;353:49:0;;;6379:21:1;6436:2;6416:18;;;6409:30;6475:32;6455:18;;;6448:60;6525:18;;353:49:0;6195:354:1;353:49:0;413:9;425:5;429:1;425;:5;:::i;:::-;413:17;275:182;-1:-1:-1;;;;275:182:0:o;465:246::-;523:7;547:1;552;547:6;543:47;;-1:-1:-1;577:1:0;570:8;;543:47;600:9;612:5;616:1;612;:5;:::i;:::-;600:17;-1:-1:-1;645:1:0;636:5;640:1;600:17;636:5;:::i;:::-;:10;628:56;;;;-1:-1:-1;;;628:56:0;;7416:2:1;628:56:0;;;7398:21:1;7455:2;7435:18;;;7428:30;7494:34;7474:18;;;7467:62;-1:-1:-1;;;7545:18:1;;;7538:31;7586:19;;628:56:0;7214:397:1;628:56:0;702:1;465:246;-1:-1:-1;;;465:246:0:o;719:177::-;777:7;809:1;805;:5;797:44;;;;-1:-1:-1;;;797:44:0;;7818:2:1;797:44:0;;;7800:21:1;7857:2;7837:18;;;7830:30;7896:28;7876:18;;;7869:56;7942:18;;797:44:0;7616:350:1;797:44:0;852:9;864:5;868:1;864;:5;:::i;88:179::-;146:7;;178:5;182:1;178;:5;:::i;:::-;166:17;;207:1;202;:6;;194:46;;;;-1:-1:-1;;;194:46:0;;8303:2:1;194:46:0;;;8285:21:1;8342:2;8322:18;;;8315:30;8381:29;8361:18;;;8354:57;8428:18;;194:46:0;8101:351:1;8482:592:0;8582:13;:20;8617:19;;8613:454;;8653:20;8676:27;:6;8687:15;8676:10;:27::i;:::-;8653:50;;8723:9;8718:338;8742:15;8738:1;:19;8718:338;;;8783:14;8800:13;8814:1;8800:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8800:16:0;8840:28;;;:20;:28;;;;;;;;8800:16;;-1:-1:-1;8840:28:0;;8835:206;;-1:-1:-1;;;;;8913:17:0;;;;;;:9;:17;;;;;;:35;;8935:12;8913:21;:35::i;:::-;-1:-1:-1;;;;;8893:17:0;;;;;;:9;:17;;;;;;;:55;;;;8976:45;;8993:4;;-1:-1:-1;;;;;;;;;;;8976:45:0;;;9008:12;1533:25:1;;1521:2;1506:18;;1387:177;8976:45:0;;;;;;;;8835:206;-1:-1:-1;8759:3:0;;;;:::i;:::-;;;;8718:338;;;;8638:429;8613:454;8545:529;8482:592;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:548::-;495:4;524:2;553;542:9;535:21;585:6;579:13;628:6;623:2;612:9;608:18;601:34;653:1;663:140;677:6;674:1;671:13;663:140;;;772:14;;;768:23;;762:30;738:17;;;757:2;734:26;727:66;692:10;;663:140;;;667:3;852:1;847:2;838:6;827:9;823:22;819:31;812:42;922:2;915;911:7;906:2;898:6;894:15;890:29;879:9;875:45;871:54;863:62;;;;383:548;;;;:::o;936:254::-;1004:6;1012;1065:2;1053:9;1044:7;1040:23;1036:32;1033:52;;;1081:1;1078;1071:12;1033:52;1104:29;1123:9;1104:29;:::i;:::-;1094:39;1180:2;1165:18;;;;1152:32;;-1:-1:-1;;;936:254:1:o;1569:328::-;1646:6;1654;1662;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:29;1773:9;1754:29;:::i;:::-;1744:39;;1802:38;1836:2;1825:9;1821:18;1802:38;:::i;:::-;1792:48;;1887:2;1876:9;1872:18;1859:32;1849:42;;1569:328;;;;;:::o;2091:273::-;2147:6;2200:2;2188:9;2179:7;2175:23;2171:32;2168:52;;;2216:1;2213;2206:12;2168:52;2255:9;2242:23;2308:5;2301:13;2294:21;2287:5;2284:32;2274:60;;2330:1;2327;2320:12;2369:260;2437:6;2445;2498:2;2486:9;2477:7;2473:23;2469:32;2466:52;;;2514:1;2511;2504:12;2466:52;2537:29;2556:9;2537:29;:::i;:::-;2527:39;;2585:38;2619:2;2608:9;2604:18;2585:38;:::i;:::-;2575:48;;2369:260;;;;;:::o;2634:411::-;2836:2;2818:21;;;2875:2;2855:18;;;2848:30;2914:34;2909:2;2894:18;;2887:62;-1:-1:-1;;;2980:2:1;2965:18;;2958:45;3035:3;3020:19;;2634:411::o;3409:339::-;3611:2;3593:21;;;3650:2;3630:18;;;3623:30;-1:-1:-1;;;3684:2:1;3669:18;;3662:45;3739:2;3724:18;;3409:339::o;6554:127::-;6615:10;6610:3;6606:20;6603:1;6596:31;6646:4;6643:1;6636:15;6670:4;6667:1;6660:15;6686:128;6753:9;;;6774:11;;;6771:37;;;6788:18;;:::i;6819:168::-;6892:9;;;6923;;6940:15;;;6934:22;;6920:37;6910:71;;6961:18;;:::i;6992:217::-;7032:1;7058;7048:132;;7102:10;7097:3;7093:20;7090:1;7083:31;7137:4;7134:1;7127:15;7165:4;7162:1;7155:15;7048:132;-1:-1:-1;7194:9:1;;6992:217::o;7971:125::-;8036:9;;;8057:10;;;8054:36;;;8070:18;;:::i;8457:127::-;8518:10;8513:3;8509:20;8506:1;8499:31;8549:4;8546:1;8539:15;8573:4;8570:1;8563:15;8589:135;8628:3;8649:17;;;8646:43;;8669:18;;:::i;:::-;-1:-1:-1;8716:1:1;8705:13;;8589:135::o

Swarm Source

ipfs://29a0b91a13c52d7e9e9dc505be4b267f53bc1ae37c9eafceb7b5c390a43499e5

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.