ETH Price: $3,451.61 (+1.77%)
Gas: 3 Gwei

Contract

0xc26C84C7C434cD753fF970aE6811F28D587Bf9e5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve201761382024-06-26 13:23:2346 hrs ago1719408203IN
BeatFi: BEATFI Token
0 ETH0.000295566.35037763
Approve201708612024-06-25 19:43:352 days ago1719344615IN
BeatFi: BEATFI Token
0 ETH0.000416018.93825087
Approve200604862024-06-10 9:17:5918 days ago1718011079IN
BeatFi: BEATFI Token
0 ETH0.000231834.98099336
Approve200472342024-06-08 12:52:5919 days ago1717851179IN
BeatFi: BEATFI Token
0 ETH0.000350827.57093
Approve200241072024-06-05 7:22:4723 days ago1717572167IN
BeatFi: BEATFI Token
0 ETH0.000430919.25834429
Approve199487842024-05-25 18:49:3533 days ago1716662975IN
BeatFi: BEATFI Token
0 ETH0.000133875.02485961
Approve199487832024-05-25 18:49:2333 days ago1716662963IN
BeatFi: BEATFI Token
0 ETH0.000205954.42502941
Approve199400642024-05-24 13:33:1134 days ago1716557591IN
BeatFi: BEATFI Token
0 ETH0.000324796.97833415
Approve199380902024-05-24 6:55:4735 days ago1716533747IN
BeatFi: BEATFI Token
0 ETH0.0005349411.49350407
Approve199215532024-05-21 23:25:5937 days ago1716333959IN
BeatFi: BEATFI Token
0 ETH0.0004660310
Approve199211482024-05-21 22:04:3537 days ago1716329075IN
BeatFi: BEATFI Token
0 ETH0.000394998.47566426
Approve198877342024-05-17 5:53:2342 days ago1715925203IN
BeatFi: BEATFI Token
0 ETH0.000192854.14360716
Approve198847532024-05-16 19:54:2342 days ago1715889263IN
BeatFi: BEATFI Token
0 ETH0.000319996.87530434
Approve198826592024-05-16 12:52:3542 days ago1715863955IN
BeatFi: BEATFI Token
0 ETH0.00028246.06751533
Approve198817632024-05-16 9:52:3543 days ago1715853155IN
BeatFi: BEATFI Token
0 ETH0.000186634.00484439
Approve198645252024-05-13 23:58:2345 days ago1715644703IN
BeatFi: BEATFI Token
0 ETH0.000275445.91803908
Approve198631702024-05-13 19:25:4745 days ago1715628347IN
BeatFi: BEATFI Token
0 ETH0.0004841810.38950496
Approve198134902024-05-06 20:41:2352 days ago1715028083IN
BeatFi: BEATFI Token
0 ETH0.000142465.3983296
Approve198134882024-05-06 20:40:5952 days ago1715028059IN
BeatFi: BEATFI Token
0 ETH0.000254585.49971655
Approve197905832024-05-03 15:49:1155 days ago1714751351IN
BeatFi: BEATFI Token
0 ETH0.0005649112.13746216
Approve197891682024-05-03 11:03:4756 days ago1714734227IN
BeatFi: BEATFI Token
0 ETH0.000254365.46509798
Approve197781292024-05-01 22:00:2357 days ago1714600823IN
BeatFi: BEATFI Token
0 ETH0.000362757.79402745
Approve197632132024-04-29 20:01:1159 days ago1714420871IN
BeatFi: BEATFI Token
0 ETH0.000362057.82120682
Approve197510842024-04-28 3:18:3561 days ago1714274315IN
BeatFi: BEATFI Token
0 ETH0.00022364.79797631
Approve197399362024-04-26 13:50:4762 days ago1714139447IN
BeatFi: BEATFI Token
0 ETH0.000534211.47765667
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
201761402024-06-26 13:23:4746 hrs ago1719408227
BeatFi: BEATFI Token
0.00753294 ETH
201761402024-06-26 13:23:4746 hrs ago1719408227
BeatFi: BEATFI Token
0.00753294 ETH
201708672024-06-25 19:44:472 days ago1719344687
BeatFi: BEATFI Token
0.00388018 ETH
201708672024-06-25 19:44:472 days ago1719344687
BeatFi: BEATFI Token
0.00388018 ETH
200604912024-06-10 9:18:5918 days ago1718011139
BeatFi: BEATFI Token
0.00430934 ETH
200604912024-06-10 9:18:5918 days ago1718011139
BeatFi: BEATFI Token
0.00430934 ETH
200472382024-06-08 12:53:4719 days ago1717851227
BeatFi: BEATFI Token
0.00196613 ETH
200472382024-06-08 12:53:4719 days ago1717851227
BeatFi: BEATFI Token
0.00196613 ETH
200241082024-06-05 7:22:5923 days ago1717572179
BeatFi: BEATFI Token
0.00153028 ETH
200241082024-06-05 7:22:5923 days ago1717572179
BeatFi: BEATFI Token
0.00153028 ETH
199694572024-05-28 16:07:5930 days ago1716912479
BeatFi: BEATFI Token
0.01240791 ETH
199694572024-05-28 16:07:5930 days ago1716912479
BeatFi: BEATFI Token
0.01240791 ETH
199694572024-05-28 16:07:5930 days ago1716912479
BeatFi: BEATFI Token
0.00435458 ETH
199694572024-05-28 16:07:5930 days ago1716912479
BeatFi: BEATFI Token
0.00435458 ETH
199694572024-05-28 16:07:5930 days ago1716912479
BeatFi: BEATFI Token
0.0041653 ETH
199694572024-05-28 16:07:5930 days ago1716912479
BeatFi: BEATFI Token
0.0041653 ETH
199487932024-05-25 18:51:2333 days ago1716663083
BeatFi: BEATFI Token
0.00036465 ETH
199487932024-05-25 18:51:2333 days ago1716663083
BeatFi: BEATFI Token
0.00036465 ETH
199400682024-05-24 13:33:5934 days ago1716557639
BeatFi: BEATFI Token
0.00645375 ETH
199400682024-05-24 13:33:5934 days ago1716557639
BeatFi: BEATFI Token
0.00645375 ETH
199380922024-05-24 6:56:1135 days ago1716533771
BeatFi: BEATFI Token
0.02150694 ETH
199380922024-05-24 6:56:1135 days ago1716533771
BeatFi: BEATFI Token
0.02150694 ETH
199235092024-05-22 6:02:1137 days ago1716357731
BeatFi: BEATFI Token
0.00567022 ETH
199235092024-05-22 6:02:1137 days ago1716357731
BeatFi: BEATFI Token
0.00567022 ETH
199119012024-05-20 15:02:1138 days ago1716217331
BeatFi: BEATFI Token
0.00832025 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BeatFiAi

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-09
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal returns(bool){
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        return success; // always proceeds
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

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

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

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

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

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

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

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, _msgSender(), currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mintOnce(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

abstract contract Feeable is Context {
    event FeeRecipientChanged(address account); 
    event FeePointsOnBuyChanged(uint newFeePoints); 
    event FeePointsOnSellChanged(uint newFeePoints); 
    event ExemptFee(address account);
    event RevokeFeeExemption(address account);

    uint private _maxFeePointsAllowed; 
    uint private _feePointsOnBuy; 
    uint private _feePointsOnSell; 
    address private _feeRecipient;
    mapping (address => bool) private _feeExemption;

    constructor(uint __maxFeePointsAllowed, uint __feePointsOnBuy, uint __feePointsOnSell, address __feeRecipient) {
        require(__feeRecipient != address(0), "Fee receiver cannot be the zero address");
        require(__feePointsOnBuy <= __maxFeePointsAllowed, "Exceed max allowed fee points");
        require(__feePointsOnSell <= __maxFeePointsAllowed, "Exceed max allowed fee points");

        _maxFeePointsAllowed = __maxFeePointsAllowed;
        _feePointsOnBuy = __feePointsOnBuy; 
        _feePointsOnSell = __feePointsOnSell; 
        _feeRecipient = __feeRecipient; 
    }

    function maxFeePointsAllowed() public view virtual returns (uint) {
        return _maxFeePointsAllowed;
    }

    function feePointsOnBuy() public view virtual returns (uint) {
        return _feePointsOnBuy;
    }

    function feePointsOnSell() public view virtual returns (uint) {
        return _feePointsOnSell;
    }

    function feeRecipient() public view virtual returns (address) {
        return _feeRecipient;
    }

    function isFeeExempted(address account) public view virtual returns (bool) { 
        return _feeExemption[account];
    }

    function _updateFeeRecipient(address newRecipient) internal virtual {
        require(newRecipient != address(0), "Fee receiver cannot be the zero address");
        _feeRecipient = newRecipient;
        emit FeeRecipientChanged(_msgSender());
    }

    function _updateFeePointsOnBuy(uint newFeePointsOnBuy) internal virtual {
        require(newFeePointsOnBuy <= _maxFeePointsAllowed, "Exceed max allowed fee points");
        _feePointsOnBuy = newFeePointsOnBuy;
        emit FeePointsOnBuyChanged(newFeePointsOnBuy);
    }

    function _updateFeePointsOnSell(uint newFeePointsOnSell) internal virtual {
        require(newFeePointsOnSell <= _maxFeePointsAllowed, "Exceed max allowed fee points");
        _feePointsOnSell = newFeePointsOnSell;
        emit FeePointsOnSellChanged(newFeePointsOnSell);
    }

    function _exemptFee(address account) internal virtual {
        require(!_feeExemption[account], "Account is already exempted");
        _feeExemption[account] = true;
        emit ExemptFee(account);
    }

    function _revokeFeeExemption(address account) internal virtual {
        require(_feeExemption[account], "Account is not exempted");
        _feeExemption[account] = false;
        emit RevokeFeeExemption(account);
    }
}

contract BeatFiAi is Feeable, ERC20, Ownable {
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    bool _interlock;

    modifier lockTheSwap() {
        _interlock = true;
        _;
        _interlock = false;
    }

    constructor ()
        ERC20("BeatFi.AI", "BEATFI") 
        Feeable(500, 500, 500, 0x3F277603d338cCDa2fB1Da6505Df05A77971F572)
        Ownable()
    {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;

        _approve(address(this), address(router), type(uint).max);

        exemptFee(msg.sender);

        _mintOnce(msg.sender, 10_000_000_000 * 10**decimals());
    }

    receive() external payable {}

    function rescueStuckFund() public onlyOwner {
        payable(owner()).sendValue(address(this).balance);
    }

    function updateFeeRecipient(address newRecipient) public onlyOwner {
        _updateFeeRecipient(newRecipient);
    }

    function updateFeePointsOnBuy(uint newFeePointsOnBuy) public onlyOwner {
        _updateFeePointsOnBuy(newFeePointsOnBuy);
    }

    function updateFeePointsOnSell(uint newFeePointsOnSell) public onlyOwner {
        _updateFeePointsOnSell(newFeePointsOnSell);
    }

    function exemptFee(address account) public onlyOwner {
        _exemptFee(account);
    }

    function revokeFeeExemption(address account) public onlyOwner {
        _revokeFeeExemption(account);
    }

    function _transfer(address from, address to, uint amount) internal override {
        if (_interlock || amount == 0 || isFeeExempted(from) || isFeeExempted(to) || (from != pair && to != pair)) {
            super._transfer(from, to, amount);
        } else {
            uint _feePoints; 
            if (from == pair) {
                _feePoints = feePointsOnBuy();
            } else {
                _feePoints = feePointsOnSell();
            }

            if (_feePoints > 0) {
                uint fees = amount * _feePoints / 10_000;
                amount = amount - fees;

                super._transfer(from, address(this), fees);
            }

            if (from != pair) {
                liquify();
            }
                
            super._transfer(from, to, amount);
        }
    }

    function liquify() private lockTheSwap {
        uint toSwap = balanceOf(address(this));

        if (toSwap > 0) {
            swapTokensForEth(toSwap);
        }
    }

    function swapTokensForEth(uint tokenAmount) private {
        uint256 initialBalance = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        
        try router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        uint256 deltaBalance = address(this).balance - initialBalance;
        payable(feeRecipient()).sendValue(deltaBalance);
    }
}

Contract Security Audit

Contract ABI

[{"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":false,"internalType":"address","name":"account","type":"address"}],"name":"ExemptFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFeePoints","type":"uint256"}],"name":"FeePointsOnBuyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFeePoints","type":"uint256"}],"name":"FeePointsOnSellChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"FeeRecipientChanged","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":false,"internalType":"address","name":"account","type":"address"}],"name":"RevokeFeeExemption","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":"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":"account","type":"address"}],"name":"exemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feePointsOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePointsOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","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":"account","type":"address"}],"name":"isFeeExempted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFeePointsAllowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"revokeFeeExemption","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeePointsOnBuy","type":"uint256"}],"name":"updateFeePointsOnBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeePointsOnSell","type":"uint256"}],"name":"updateFeePointsOnSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRecipient","type":"address"}],"name":"updateFeeRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b5060408051808201825260098152684265617446692e414960b81b6020808301919091528251808401909352600683526542454154464960d01b90830152906101f48080733f277603d338ccda2fb1da6505df05a77971f57262000079565b60405180910390fd5b83831115620000cb5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e7473000000604482015260640162000070565b838211156200011d5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e7473000000604482015260640162000070565b600093909355600191909155600255600380546001600160a01b0319166001600160a01b03909216919091179055600862000159838262000796565b50600962000168828262000796565b50505060006200017d620003b160201b60201c565b600a80546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000225573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024b919062000862565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000299573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bf919062000862565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000333919062000862565b600b80546001600160a01b038086166001600160a01b03199283168117909355600c80549185169190921617905590915062000374903090600019620003b5565b6200037f33620004dd565b620003a933620003926012600a620009a9565b620003a3906402540be400620009ba565b62000547565b5050620009ea565b3390565b6001600160a01b038316620004195760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162000070565b6001600160a01b0382166200047c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000070565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600a546001600160a01b03163314620005395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000070565b62000544816200062c565b50565b6001600160a01b0382166200059f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162000070565b8060076000828254620005b39190620009d4565b90915550506001600160a01b03821660009081526005602052604081208054839290620005e2908490620009d4565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b03811660009081526004602052604090205460ff1615620006975760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578656d707465640000000000604482015260640162000070565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f7b159e939dec60f4baa6fa1ffcdd454977374be0fdeb521dcf642398476dbe57910160405180910390a150565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200071c57607f821691505b6020821081036200073d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200079157600081815260208120601f850160051c810160208610156200076c5750805b601f850160051c820191505b818110156200078d5782815560010162000778565b5050505b505050565b81516001600160401b03811115620007b257620007b2620006f1565b620007ca81620007c3845462000707565b8462000743565b602080601f831160018114620008025760008415620007e95750858301515b600019600386901b1c1916600185901b1785556200078d565b600085815260208120601f198616915b82811015620008335788860151825594840194600190910190840162000812565b5085821015620008525787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200087557600080fd5b81516001600160a01b03811681146200088d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008eb578160001904821115620008cf57620008cf62000894565b80851615620008dd57918102915b93841c9390800290620008af565b509250929050565b6000826200090457506001620009a3565b816200091357506000620009a3565b81600181146200092c5760028114620009375762000957565b6001915050620009a3565b60ff8411156200094b576200094b62000894565b50506001821b620009a3565b5060208310610133831016604e8410600b84101617156200097c575081810a620009a3565b620009888383620008aa565b80600019048211156200099f576200099f62000894565b0290505b92915050565b60006200088d60ff841683620008f3565b8082028115828204841417620009a357620009a362000894565b80820180821115620009a357620009a362000894565b61171180620009fa6000396000f3fe6080604052600436106101a05760003560e01c80638da5cb5b116100ec578063b848a5701161008a578063f160d36911610064578063f160d369146104d2578063f2fde38b146104f2578063f630d65d14610512578063f887ea401461052757600080fd5b8063b848a57014610433578063c5d32bb21461046c578063dd62ed3e1461048c57600080fd5b80639a004cf8116100c65780639a004cf8146103be578063a457c2d7146103d3578063a8aa1b31146103f3578063a9059cbb1461041357600080fd5b80638da5cb5b1461037657806395d89b411461039457806399c37031146103a957600080fd5b8063313ce567116101595780634e344f0a116101335780634e344f0a146102f65780635f3541d21461031657806370a082311461032b578063715018a61461036157600080fd5b8063313ce5671461028857806339509351146102a457806346904840146102c457600080fd5b806306cc2035146101ac57806306fdde03146101ce578063095ea7b3146101f95780631565eee31461022957806318160ddd1461024957806323b872dd1461026857600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101cc6101c7366004611422565b610547565b005b3480156101da57600080fd5b506101e3610586565b6040516101f09190611446565b60405180910390f35b34801561020557600080fd5b50610219610214366004611494565b610618565b60405190151581526020016101f0565b34801561023557600080fd5b506101cc6102443660046114c0565b61062f565b34801561025557600080fd5b506007545b6040519081526020016101f0565b34801561027457600080fd5b506102196102833660046114d9565b610662565b34801561029457600080fd5b50604051601281526020016101f0565b3480156102b057600080fd5b506102196102bf366004611494565b610713565b3480156102d057600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016101f0565b34801561030257600080fd5b506101cc6103113660046114c0565b61074f565b34801561032257600080fd5b5060025461025a565b34801561033757600080fd5b5061025a610346366004611422565b6001600160a01b031660009081526005602052604090205490565b34801561036d57600080fd5b506101cc610782565b34801561038257600080fd5b50600a546001600160a01b03166102de565b3480156103a057600080fd5b506101e36107f6565b3480156103b557600080fd5b5060005461025a565b3480156103ca57600080fd5b5060015461025a565b3480156103df57600080fd5b506102196103ee366004611494565b610805565b3480156103ff57600080fd5b50600c546102de906001600160a01b031681565b34801561041f57600080fd5b5061021961042e366004611494565b61089e565b34801561043f57600080fd5b5061021961044e366004611422565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561047857600080fd5b506101cc610487366004611422565b6108ab565b34801561049857600080fd5b5061025a6104a736600461151a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156104de57600080fd5b506101cc6104ed366004611422565b6108de565b3480156104fe57600080fd5b506101cc61050d366004611422565b610911565b34801561051e57600080fd5b506101cc6109fc565b34801561053357600080fd5b50600b546102de906001600160a01b031681565b600a546001600160a01b0316331461057a5760405162461bcd60e51b815260040161057190611553565b60405180910390fd5b61058381610a4b565b50565b60606008805461059590611588565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190611588565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b6000610625338484610b0b565b5060015b92915050565b600a546001600160a01b031633146106595760405162461bcd60e51b815260040161057190611553565b61058381610c2f565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001981146106fd57828110156106f05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610571565b6106fd8533858403610b0b565b610708858585610cb6565b506001949350505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161062591859061074a9086906115d8565b610b0b565b600a546001600160a01b031633146107795760405162461bcd60e51b815260040161057190611553565b61058381610de8565b600a546001600160a01b031633146107ac5760405162461bcd60e51b815260040161057190611553565b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b60606009805461059590611588565b3360009081526006602090815260408083206001600160a01b0386168452909152812054828110156108875760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610571565b6108943385858403610b0b565b5060019392505050565b6000610625338484610cb6565b600a546001600160a01b031633146108d55760405162461bcd60e51b815260040161057190611553565b61058381610e6f565b600a546001600160a01b031633146109085760405162461bcd60e51b815260040161057190611553565b61058381610f2c565b600a546001600160a01b0316331461093b5760405162461bcd60e51b815260040161057190611553565b6001600160a01b0381166109a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610571565b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610a265760405162461bcd60e51b815260040161057190611553565b61058347610a3c600a546001600160a01b031690565b6001600160a01b031690610fdd565b6001600160a01b03811660009081526004602052604090205460ff16610ab35760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578656d707465640000000000000000006044820152606401610571565b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527f72ccc7a1d99dad614931fb1b567f07e41b64b7539d1cf96b1f7cdef92efe326a91015b60405180910390a150565b6001600160a01b038316610b6d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610571565b6001600160a01b038216610bce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610571565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600054811115610c815760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e74730000006044820152606401610571565b60028190556040518181527f556ed9ca7b0c286604e268a9ae87024b96ad6e85a49bef8ff3dfc4d4b6c43db990602001610b00565b600c54600160a01b900460ff1680610ccc575080155b80610cef57506001600160a01b03831660009081526004602052604090205460ff165b80610d1257506001600160a01b03821660009081526004602052604090205460ff165b80610d445750600c546001600160a01b03848116911614801590610d445750600c546001600160a01b03838116911614155b15610d5957610d5483838361108c565b505050565b600c546000906001600160a01b0390811690851603610d7b5750600154610d80565b506002545b8015610dba576000612710610d9583856115eb565b610d9f9190611602565b9050610dab8184611624565b9250610db885308361108c565b505b600c546001600160a01b03858116911614610dd757610dd761125b565b610de284848461108c565b50505050565b600054811115610e3a5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e74730000006044820152606401610571565b60018190556040518181527f57e975226fd15546c8e0dc896f7ecbcdc72c982a63d2b0a1225b7d0eded859f790602001610b00565b6001600160a01b03811660009081526004602052604090205460ff1615610ed85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578656d7074656400000000006044820152606401610571565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f7b159e939dec60f4baa6fa1ffcdd454977374be0fdeb521dcf642398476dbe579101610b00565b6001600160a01b038116610f925760405162461bcd60e51b815260206004820152602760248201527f4665652072656365697665722063616e6e6f7420626520746865207a65726f206044820152666164647265737360c81b6064820152608401610571565b600380546001600160a01b0319166001600160a01b0383161790556040513381527f167cccccc6e9b2892a740ec13fc1e51d3de8ea384f25bd87fee7412d588637e290602001610b00565b60008147101561102f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610571565b6000836001600160a01b03168360405160006040518083038185875af1925050503d806000811461107c576040519150601f19603f3d011682016040523d82523d6000602084013e611081565b606091505b509095945050505050565b6001600160a01b0383166110f05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610571565b6001600160a01b0382166111525760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610571565b6001600160a01b038316600090815260056020526040902054818110156111ca5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610571565b6001600160a01b038085166000908152600560205260408082208585039055918516815290812080548492906112019084906115d8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124d91815260200190565b60405180910390a350505050565b600c805460ff60a01b1916600160a01b179055306000908152600560205260408120549050801561128f5761128f8161129f565b50600c805460ff60a01b19169055565b6040805160028082526060820183524792600092919060208301908036833701905050905030816000815181106112d8576112d8611637565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611355919061164d565b8160018151811061136857611368611637565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac947906113ae90869060009086903090429060040161166a565b600060405180830381600087803b1580156113c857600080fd5b505af19250505080156113d9575060015b6113e257505050565b60006113ee8347611624565b905061140681610a3c6003546001600160a01b031690565b5050505050565b6001600160a01b038116811461058357600080fd5b60006020828403121561143457600080fd5b813561143f8161140d565b9392505050565b600060208083528351808285015260005b8181101561147357858101830151858201604001528201611457565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156114a757600080fd5b82356114b28161140d565b946020939093013593505050565b6000602082840312156114d257600080fd5b5035919050565b6000806000606084860312156114ee57600080fd5b83356114f98161140d565b925060208401356115098161140d565b929592945050506040919091013590565b6000806040838503121561152d57600080fd5b82356115388161140d565b915060208301356115488161140d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061159c57607f821691505b6020821081036115bc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610629576106296115c2565b8082028115828204841417610629576106296115c2565b60008261161f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610629576106296115c2565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561165f57600080fd5b815161143f8161140d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116ba5784516001600160a01b031683529383019391830191600101611695565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9550b684e517821cce4669ce7e90d5c62f335c1c3fde01a0a2e6241e2b9c49864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c80638da5cb5b116100ec578063b848a5701161008a578063f160d36911610064578063f160d369146104d2578063f2fde38b146104f2578063f630d65d14610512578063f887ea401461052757600080fd5b8063b848a57014610433578063c5d32bb21461046c578063dd62ed3e1461048c57600080fd5b80639a004cf8116100c65780639a004cf8146103be578063a457c2d7146103d3578063a8aa1b31146103f3578063a9059cbb1461041357600080fd5b80638da5cb5b1461037657806395d89b411461039457806399c37031146103a957600080fd5b8063313ce567116101595780634e344f0a116101335780634e344f0a146102f65780635f3541d21461031657806370a082311461032b578063715018a61461036157600080fd5b8063313ce5671461028857806339509351146102a457806346904840146102c457600080fd5b806306cc2035146101ac57806306fdde03146101ce578063095ea7b3146101f95780631565eee31461022957806318160ddd1461024957806323b872dd1461026857600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b506101cc6101c7366004611422565b610547565b005b3480156101da57600080fd5b506101e3610586565b6040516101f09190611446565b60405180910390f35b34801561020557600080fd5b50610219610214366004611494565b610618565b60405190151581526020016101f0565b34801561023557600080fd5b506101cc6102443660046114c0565b61062f565b34801561025557600080fd5b506007545b6040519081526020016101f0565b34801561027457600080fd5b506102196102833660046114d9565b610662565b34801561029457600080fd5b50604051601281526020016101f0565b3480156102b057600080fd5b506102196102bf366004611494565b610713565b3480156102d057600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016101f0565b34801561030257600080fd5b506101cc6103113660046114c0565b61074f565b34801561032257600080fd5b5060025461025a565b34801561033757600080fd5b5061025a610346366004611422565b6001600160a01b031660009081526005602052604090205490565b34801561036d57600080fd5b506101cc610782565b34801561038257600080fd5b50600a546001600160a01b03166102de565b3480156103a057600080fd5b506101e36107f6565b3480156103b557600080fd5b5060005461025a565b3480156103ca57600080fd5b5060015461025a565b3480156103df57600080fd5b506102196103ee366004611494565b610805565b3480156103ff57600080fd5b50600c546102de906001600160a01b031681565b34801561041f57600080fd5b5061021961042e366004611494565b61089e565b34801561043f57600080fd5b5061021961044e366004611422565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561047857600080fd5b506101cc610487366004611422565b6108ab565b34801561049857600080fd5b5061025a6104a736600461151a565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156104de57600080fd5b506101cc6104ed366004611422565b6108de565b3480156104fe57600080fd5b506101cc61050d366004611422565b610911565b34801561051e57600080fd5b506101cc6109fc565b34801561053357600080fd5b50600b546102de906001600160a01b031681565b600a546001600160a01b0316331461057a5760405162461bcd60e51b815260040161057190611553565b60405180910390fd5b61058381610a4b565b50565b60606008805461059590611588565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190611588565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b6000610625338484610b0b565b5060015b92915050565b600a546001600160a01b031633146106595760405162461bcd60e51b815260040161057190611553565b61058381610c2f565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001981146106fd57828110156106f05760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610571565b6106fd8533858403610b0b565b610708858585610cb6565b506001949350505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161062591859061074a9086906115d8565b610b0b565b600a546001600160a01b031633146107795760405162461bcd60e51b815260040161057190611553565b61058381610de8565b600a546001600160a01b031633146107ac5760405162461bcd60e51b815260040161057190611553565b600a546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600a80546001600160a01b0319169055565b60606009805461059590611588565b3360009081526006602090815260408083206001600160a01b0386168452909152812054828110156108875760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610571565b6108943385858403610b0b565b5060019392505050565b6000610625338484610cb6565b600a546001600160a01b031633146108d55760405162461bcd60e51b815260040161057190611553565b61058381610e6f565b600a546001600160a01b031633146109085760405162461bcd60e51b815260040161057190611553565b61058381610f2c565b600a546001600160a01b0316331461093b5760405162461bcd60e51b815260040161057190611553565b6001600160a01b0381166109a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610571565b600a546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546001600160a01b03163314610a265760405162461bcd60e51b815260040161057190611553565b61058347610a3c600a546001600160a01b031690565b6001600160a01b031690610fdd565b6001600160a01b03811660009081526004602052604090205460ff16610ab35760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578656d707465640000000000000000006044820152606401610571565b6001600160a01b038116600081815260046020908152604091829020805460ff1916905590519182527f72ccc7a1d99dad614931fb1b567f07e41b64b7539d1cf96b1f7cdef92efe326a91015b60405180910390a150565b6001600160a01b038316610b6d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610571565b6001600160a01b038216610bce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610571565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600054811115610c815760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e74730000006044820152606401610571565b60028190556040518181527f556ed9ca7b0c286604e268a9ae87024b96ad6e85a49bef8ff3dfc4d4b6c43db990602001610b00565b600c54600160a01b900460ff1680610ccc575080155b80610cef57506001600160a01b03831660009081526004602052604090205460ff165b80610d1257506001600160a01b03821660009081526004602052604090205460ff165b80610d445750600c546001600160a01b03848116911614801590610d445750600c546001600160a01b03838116911614155b15610d5957610d5483838361108c565b505050565b600c546000906001600160a01b0390811690851603610d7b5750600154610d80565b506002545b8015610dba576000612710610d9583856115eb565b610d9f9190611602565b9050610dab8184611624565b9250610db885308361108c565b505b600c546001600160a01b03858116911614610dd757610dd761125b565b610de284848461108c565b50505050565b600054811115610e3a5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d617820616c6c6f7765642066656520706f696e74730000006044820152606401610571565b60018190556040518181527f57e975226fd15546c8e0dc896f7ecbcdc72c982a63d2b0a1225b7d0eded859f790602001610b00565b6001600160a01b03811660009081526004602052604090205460ff1615610ed85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578656d7074656400000000006044820152606401610571565b6001600160a01b038116600081815260046020908152604091829020805460ff1916600117905590519182527f7b159e939dec60f4baa6fa1ffcdd454977374be0fdeb521dcf642398476dbe579101610b00565b6001600160a01b038116610f925760405162461bcd60e51b815260206004820152602760248201527f4665652072656365697665722063616e6e6f7420626520746865207a65726f206044820152666164647265737360c81b6064820152608401610571565b600380546001600160a01b0319166001600160a01b0383161790556040513381527f167cccccc6e9b2892a740ec13fc1e51d3de8ea384f25bd87fee7412d588637e290602001610b00565b60008147101561102f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610571565b6000836001600160a01b03168360405160006040518083038185875af1925050503d806000811461107c576040519150601f19603f3d011682016040523d82523d6000602084013e611081565b606091505b509095945050505050565b6001600160a01b0383166110f05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610571565b6001600160a01b0382166111525760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610571565b6001600160a01b038316600090815260056020526040902054818110156111ca5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610571565b6001600160a01b038085166000908152600560205260408082208585039055918516815290812080548492906112019084906115d8565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124d91815260200190565b60405180910390a350505050565b600c805460ff60a01b1916600160a01b179055306000908152600560205260408120549050801561128f5761128f8161129f565b50600c805460ff60a01b19169055565b6040805160028082526060820183524792600092919060208301908036833701905050905030816000815181106112d8576112d8611637565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611331573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611355919061164d565b8160018151811061136857611368611637565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac947906113ae90869060009086903090429060040161166a565b600060405180830381600087803b1580156113c857600080fd5b505af19250505080156113d9575060015b6113e257505050565b60006113ee8347611624565b905061140681610a3c6003546001600160a01b031690565b5050505050565b6001600160a01b038116811461058357600080fd5b60006020828403121561143457600080fd5b813561143f8161140d565b9392505050565b600060208083528351808285015260005b8181101561147357858101830151858201604001528201611457565b506000604082860101526040601f19601f8301168501019250505092915050565b600080604083850312156114a757600080fd5b82356114b28161140d565b946020939093013593505050565b6000602082840312156114d257600080fd5b5035919050565b6000806000606084860312156114ee57600080fd5b83356114f98161140d565b925060208401356115098161140d565b929592945050506040919091013590565b6000806040838503121561152d57600080fd5b82356115388161140d565b915060208301356115488161140d565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061159c57607f821691505b6020821081036115bc57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610629576106296115c2565b8082028115828204841417610629576106296115c2565b60008261161f57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610629576106296115c2565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561165f57600080fd5b815161143f8161140d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156116ba5784516001600160a01b031683529383019391830191600101611695565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9550b684e517821cce4669ce7e90d5c62f335c1c3fde01a0a2e6241e2b9c49864736f6c63430008130033

Deployed Bytecode Sourcemap

10094:3284:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11607:109;;;;;;;;;;-1:-1:-1;11607:109:0;;;;;:::i;:::-;;:::i;:::-;;2565:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3479:169;;;;;;;;;;-1:-1:-1;3479:169:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;3479:169:0;1275:187:1;11366:134:0;;;;;;;;;;-1:-1:-1;11366:134:0;;;;;:::i;:::-;;:::i;2886:108::-;;;;;;;;;;-1:-1:-1;2974:12:0;;2886:108;;;1798:25:1;;;1786:2;1771:18;2886:108:0;1652:177:1;3656:573:0;;;;;;;;;;-1:-1:-1;3656:573:0;;;;;:::i;:::-;;:::i;2785:93::-;;;;;;;;;;-1:-1:-1;2785:93:0;;2868:2;2437:36:1;;2425:2;2410:18;2785:93:0;2295:184:1;4237:215:0;;;;;;;;;;-1:-1:-1;4237:215:0;;;;;:::i;:::-;;:::i;8568:101::-;;;;;;;;;;-1:-1:-1;8648:13:0;;-1:-1:-1;;;;;8648:13:0;8568:101;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;8568:101:0;2484:203:1;11228:130:0;;;;;;;;;;-1:-1:-1;11228:130:0;;;;;:::i;:::-;;:::i;8456:104::-;;;;;;;;;;-1:-1:-1;8536:16:0;;8456:104;;3002:127;;;;;;;;;;-1:-1:-1;3002:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3103:18:0;3076:7;3103:18;;;:9;:18;;;;;;;3002:127;6721:148;;;;;;;;;;;;;:::i;6507:79::-;;;;;;;;;;-1:-1:-1;6572:6:0;;-1:-1:-1;;;;;6572:6:0;6507:79;;2673:104;;;;;;;;;;;;;:::i;8226:112::-;;;;;;;;;;-1:-1:-1;8286:4:0;8310:20;8226:112;;8346:102;;;;;;;;;;-1:-1:-1;8425:15:0;;8346:102;;4460:413;;;;;;;;;;-1:-1:-1;4460:413:0;;;;;:::i;:::-;;:::i;10220:19::-;;;;;;;;;;-1:-1:-1;10220:19:0;;;;-1:-1:-1;;;;;10220:19:0;;;3137:175;;;;;;;;;;-1:-1:-1;3137:175:0;;;;;:::i;:::-;;:::i;8677:124::-;;;;;;;;;;-1:-1:-1;8677:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;8771:22:0;8746:4;8771:22;;;:13;:22;;;;;;;;;8677:124;11508:91;;;;;;;;;;-1:-1:-1;11508:91:0;;;;;:::i;:::-;;:::i;3320:151::-;;;;;;;;;;-1:-1:-1;3320:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;3436:18:0;;;3409:7;3436:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3320:151;11101:119;;;;;;;;;;-1:-1:-1;11101:119:0;;;;;:::i;:::-;;:::i;6877:244::-;;;;;;;;;;-1:-1:-1;6877:244:0;;;;;:::i;:::-;;:::i;10981:112::-;;;;;;;;;;;;;:::i;10192:21::-;;;;;;;;;;-1:-1:-1;10192:21:0;;;;-1:-1:-1;;;;;10192:21:0;;;11607:109;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;;;;;;;;;11680:28:::1;11700:7;11680:19;:28::i;:::-;11607:109:::0;:::o;2565:100::-;2619:13;2652:5;2645:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2565:100;:::o;3479:169::-;3562:4;3579:39;1893:10;3602:7;3611:6;3579:8;:39::i;:::-;-1:-1:-1;3636:4:0;3479:169;;;;;:::o;11366:134::-;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11450:42:::1;11473:18;11450:22;:42::i;3656:573::-:0;-1:-1:-1;;;;;3840:19:0;;3796:4;3840:19;;;:11;:19;;;;;;;;1893:10;3840:33;;;;;;;;-1:-1:-1;;3888:37:0;;3884:265;;3970:6;3950:16;:26;;3942:79;;;;-1:-1:-1;;;3942:79:0;;4255:2:1;3942:79:0;;;4237:21:1;4294:2;4274:18;;;4267:30;4333:34;4313:18;;;4306:62;-1:-1:-1;;;4384:18:1;;;4377:38;4432:19;;3942:79:0;4053:404:1;3942:79:0;4065:57;4074:6;1893:10;4115:6;4096:16;:25;4065:8;:57::i;:::-;4161:36;4171:6;4179:9;4190:6;4161:9;:36::i;:::-;-1:-1:-1;4217:4:0;;3656:573;-1:-1:-1;;;;3656:573:0:o;4237:215::-;1893:10;4325:4;4374:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4374:34:0;;;;;;;;;;4325:4;;4342:80;;4365:7;;4374:47;;4411:10;;4374:47;:::i;:::-;4342:8;:80::i;11228:130::-;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11310:40:::1;11332:17;11310:21;:40::i;6721:148::-:0;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;6812:6:::1;::::0;6791:40:::1;::::0;6828:1:::1;::::0;-1:-1:-1;;;;;6812:6:0::1;::::0;6791:40:::1;::::0;6828:1;;6791:40:::1;6842:6;:19:::0;;-1:-1:-1;;;;;;6842:19:0::1;::::0;;6721:148::o;2673:104::-;2729:13;2762:7;2755:14;;;;;:::i;4460:413::-;1893:10;4553:4;4597:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;4597:34:0;;;;;;;;;;4650:35;;;;4642:85;;;;-1:-1:-1;;;4642:85:0;;4926:2:1;4642:85:0;;;4908:21:1;4965:2;4945:18;;;4938:30;5004:34;4984:18;;;4977:62;-1:-1:-1;;;5055:18:1;;;5048:35;5100:19;;4642:85:0;4724:401:1;4642:85:0;4763:67;1893:10;4786:7;4814:15;4795:16;:34;4763:8;:67::i;:::-;-1:-1:-1;4861:4:0;;4460:413;-1:-1:-1;;;4460:413:0:o;3137:175::-;3223:4;3240:42;1893:10;3264:9;3275:6;3240:9;:42::i;11508:91::-;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11572:19:::1;11583:7;11572:10;:19::i;11101:119::-:0;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11179:33:::1;11199:12;11179:19;:33::i;6877:244::-:0;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6966:22:0;::::1;6958:73;;;::::0;-1:-1:-1;;;6958:73:0;;5332:2:1;6958:73:0::1;::::0;::::1;5314:21:1::0;5371:2;5351:18;;;5344:30;5410:34;5390:18;;;5383:62;-1:-1:-1;;;5461:18:1;;;5454:36;5507:19;;6958:73:0::1;5130:402:1::0;6958:73:0::1;7068:6;::::0;7047:38:::1;::::0;-1:-1:-1;;;;;7047:38:0;;::::1;::::0;7068:6:::1;::::0;7047:38:::1;::::0;7068:6:::1;::::0;7047:38:::1;7096:6;:17:::0;;-1:-1:-1;;;;;;7096:17:0::1;-1:-1:-1::0;;;;;7096:17:0;;;::::1;::::0;;;::::1;::::0;;6877:244::o;10981:112::-;6634:6;;-1:-1:-1;;;;;6634:6:0;1893:10;6634:22;6626:67;;;;-1:-1:-1;;;6626:67:0;;;;;;;:::i;:::-;11036:49:::1;11063:21;11044:7;6572:6:::0;;-1:-1:-1;;;;;6572:6:0;;6507:79;11044:7:::1;-1:-1:-1::0;;;;;11036:26:0::1;::::0;::::1;:49::i;9863:224::-:0;-1:-1:-1;;;;;9945:22:0;;;;;;:13;:22;;;;;;;;9937:58;;;;-1:-1:-1;;;9937:58:0;;5739:2:1;9937:58:0;;;5721:21:1;5778:2;5758:18;;;5751:30;5817:25;5797:18;;;5790:53;5860:18;;9937:58:0;5537:347:1;9937:58:0;-1:-1:-1;;;;;10006:22:0;;10031:5;10006:22;;;:13;:22;;;;;;;;;:30;;-1:-1:-1;;10006:30:0;;;10052:27;;2630:51:1;;;10052:27:0;;2603:18:1;10052:27:0;;;;;;;;9863:224;:::o;5791:380::-;-1:-1:-1;;;;;5927:19:0;;5919:68;;;;-1:-1:-1;;;5919:68:0;;6091:2:1;5919:68:0;;;6073:21:1;6130:2;6110:18;;;6103:30;6169:34;6149:18;;;6142:62;-1:-1:-1;;;6220:18:1;;;6213:34;6264:19;;5919:68:0;5889:400:1;5919:68:0;-1:-1:-1;;;;;6006:21:0;;5998:68;;;;-1:-1:-1;;;5998:68:0;;6496:2:1;5998:68:0;;;6478:21:1;6535:2;6515:18;;;6508:30;6574:34;6554:18;;;6547:62;-1:-1:-1;;;6625:18:1;;;6618:32;6667:19;;5998:68:0;6294:398:1;5998:68:0;-1:-1:-1;;;;;6079:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6131:32;;1798:25:1;;;6131:32:0;;1771:18:1;6131:32:0;;;;;;;5791:380;;;:::o;9354:283::-;9469:20;;9447:18;:42;;9439:84;;;;-1:-1:-1;;;9439:84:0;;6899:2:1;9439:84:0;;;6881:21:1;6938:2;6918:18;;;6911:30;6977:31;6957:18;;;6950:59;7026:18;;9439:84:0;6697:353:1;9439:84:0;9534:16;:37;;;9587:42;;1798:25:1;;;9587:42:0;;1786:2:1;1771:18;9587:42:0;1652:177:1;11724:836:0;11815:10;;-1:-1:-1;;;11815:10:0;;;;;:25;;-1:-1:-1;11829:11:0;;11815:25;:48;;;-1:-1:-1;;;;;;8771:22:0;;8746:4;8771:22;;;:13;:22;;;;;;;;11844:19;11815:69;;;-1:-1:-1;;;;;;8771:22:0;;8746:4;8771:22;;;:13;:22;;;;;;;;11867:17;11815:101;;;-1:-1:-1;11897:4:0;;-1:-1:-1;;;;;11889:12:0;;;11897:4;;11889:12;;;;:26;;-1:-1:-1;11911:4:0;;-1:-1:-1;;;;;11905:10:0;;;11911:4;;11905:10;;11889:26;11811:742;;;11933:33;11949:4;11955:2;11959:6;11933:15;:33::i;:::-;11724:836;;;:::o;11811:742::-;12042:4;;11999:15;;-1:-1:-1;;;;;12042:4:0;;;12034:12;;;;12030:153;;-1:-1:-1;8425:15:0;;12030:153;;;-1:-1:-1;8536:16:0;;12030:153;12203:14;;12199:199;;12238:9;12272:6;12250:19;12259:10;12250:6;:19;:::i;:::-;:28;;;;:::i;:::-;12238:40;-1:-1:-1;12306:13:0;12238:40;12306:6;:13;:::i;:::-;12297:22;;12340:42;12356:4;12370;12377;12340:15;:42::i;:::-;12219:179;12199:199;12426:4;;-1:-1:-1;;;;;12418:12:0;;;12426:4;;12418:12;12414:62;;12451:9;:7;:9::i;:::-;12508:33;12524:4;12530:2;12534:6;12508:15;:33::i;:::-;11984:569;11724:836;;;:::o;9070:276::-;9182:20;;9161:17;:41;;9153:83;;;;-1:-1:-1;;;9153:83:0;;6899:2:1;9153:83:0;;;6881:21:1;6938:2;6918:18;;;6911:30;6977:31;6957:18;;;6950:59;7026:18;;9153:83:0;6697:353:1;9153:83:0;9247:15;:35;;;9298:40;;1798:25:1;;;9298:40:0;;1786:2:1;1771:18;9298:40:0;1652:177:1;9645:210:0;-1:-1:-1;;;;;9719:22:0;;;;;;:13;:22;;;;;;;;9718:23;9710:63;;;;-1:-1:-1;;;9710:63:0;;7785:2:1;9710:63:0;;;7767:21:1;7824:2;7804:18;;;7797:30;7863:29;7843:18;;;7836:57;7910:18;;9710:63:0;7583:351:1;9710:63:0;-1:-1:-1;;;;;9784:22:0;;;;;;:13;:22;;;;;;;;;:29;;-1:-1:-1;;9784:29:0;9809:4;9784:29;;;9829:18;;2630:51:1;;;9829:18:0;;2603::1;9829::0;2484:203:1;8809:253:0;-1:-1:-1;;;;;8896:26:0;;8888:78;;;;-1:-1:-1;;;8888:78:0;;8141:2:1;8888:78:0;;;8123:21:1;8180:2;8160:18;;;8153:30;8219:34;8199:18;;;8192:62;-1:-1:-1;;;8270:18:1;;;8263:37;8317:19;;8888:78:0;7939:403:1;8888:78:0;8977:13;:28;;-1:-1:-1;;;;;;8977:28:0;-1:-1:-1;;;;;8977:28:0;;;;;9021:33;;1893:10;2630:51:1;;9021:33:0;;2618:2:1;2603:18;9021:33:0;2484:203:1;1488:285:0;1567:4;1616:6;1591:21;:31;;1583:73;;;;-1:-1:-1;;;1583:73:0;;8549:2:1;1583:73:0;;;8531:21:1;8588:2;8568:18;;;8561:30;8627:31;8607:18;;;8600:59;8676:18;;1583:73:0;8347:353:1;1583:73:0;1670:12;1688:9;-1:-1:-1;;;;;1688:14:0;1710:6;1688:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1669:52:0;;1488:285;-1:-1:-1;;;;;1488:285:0:o;4881:614::-;-1:-1:-1;;;;;5021:20:0;;5013:70;;;;-1:-1:-1;;;5013:70:0;;9117:2:1;5013:70:0;;;9099:21:1;9156:2;9136:18;;;9129:30;9195:34;9175:18;;;9168:62;-1:-1:-1;;;9246:18:1;;;9239:35;9291:19;;5013:70:0;8915:401:1;5013:70:0;-1:-1:-1;;;;;5102:23:0;;5094:71;;;;-1:-1:-1;;;5094:71:0;;9523:2:1;5094:71:0;;;9505:21:1;9562:2;9542:18;;;9535:30;9601:34;9581:18;;;9574:62;-1:-1:-1;;;9652:18:1;;;9645:33;9695:19;;5094:71:0;9321:399:1;5094:71:0;-1:-1:-1;;;;;5202:17:0;;5178:21;5202:17;;;:9;:17;;;;;;5238:23;;;;5230:74;;;;-1:-1:-1;;;5230:74:0;;9927:2:1;5230:74:0;;;9909:21:1;9966:2;9946:18;;;9939:30;10005:34;9985:18;;;9978:62;-1:-1:-1;;;10056:18:1;;;10049:36;10102:19;;5230:74:0;9725:402:1;5230:74:0;-1:-1:-1;;;;;5340:17:0;;;;;;;:9;:17;;;;;;5360:22;;;5340:42;;5404:20;;;;;;;;:30;;5376:6;;5340:17;5404:30;;5376:6;;5404:30;:::i;:::-;;;;;;;;5469:9;-1:-1:-1;;;;;5452:35:0;5461:6;-1:-1:-1;;;;;5452:35:0;;5480:6;5452:35;;;;1798:25:1;;1786:2;1771:18;;1652:177;5452:35:0;;;;;;;;5002:493;4881:614;;;:::o;12568:175::-;10304:10;:17;;-1:-1:-1;;;;10304:17:0;-1:-1:-1;;;10304:17:0;;;12650:4:::1;-1:-1:-1::0;3103:18:0;;;:9;:18;;;;;;12618:38;-1:-1:-1;12673:10:0;;12669:67:::1;;12700:24;12717:6;12700:16;:24::i;:::-;-1:-1:-1::0;10344:10:0;:18;;-1:-1:-1;;;;10344:18:0;;;12568:175::o;12751:624::-;12897:16;;;12911:1;12897:16;;;;;;;;12839:21;;12814:22;;12897:16;12911:1;12897:16;;;;;;;;;;-1:-1:-1;12897:16:0;12873:40;;12942:4;12924;12929:1;12924:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12924:23:0;;;:7;;;;;;;;;;:23;;;;12968:6;;:13;;;-1:-1:-1;;;12968:13:0;;;;:6;;;;;:11;;:13;;;;;12924:7;;12968:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12958:4;12963:1;12958:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12958:23:0;;;:7;;;;;;;;;:23;13006:6;;:187;;-1:-1:-1;;;13006:187:0;;:6;;;:57;;:187;;13078:11;;13006:6;;13120:4;;13147;;13167:15;;13006:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13002:234;;13218:7;;12751:624;:::o;13002:234::-;13248:20;13271:38;13295:14;13271:21;:38;:::i;:::-;13248:61;;13320:47;13354:12;13328:14;8648:13;;-1:-1:-1;;;;;8648:13:0;;8568:101;13320:47;;12803:572;;;12751:624;:::o;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:247;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;:::-;386:5;150:247;-1:-1:-1;;;150:247:1:o;402:548::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1467:180::-;1526:6;1579:2;1567:9;1558:7;1554:23;1550:32;1547:52;;;1595:1;1592;1585:12;1547:52;-1:-1:-1;1618:23:1;;1467:180;-1:-1:-1;1467:180:1:o;1834:456::-;1911:6;1919;1927;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;2035:9;2022:23;2054:31;2079:5;2054:31;:::i;:::-;2104:5;-1:-1:-1;2161:2:1;2146:18;;2133:32;2174:33;2133:32;2174:33;:::i;:::-;1834:456;;2226:7;;-1:-1:-1;;;2280:2:1;2265:18;;;;2252:32;;1834:456::o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3307:356::-;3509:2;3491:21;;;3528:18;;;3521:30;3587:34;3582:2;3567:18;;3560:62;3654:2;3639:18;;3307:356::o;3668:380::-;3747:1;3743:12;;;;3790;;;3811:61;;3865:4;3857:6;3853:17;3843:27;;3811:61;3918:2;3910:6;3907:14;3887:18;3884:38;3881:161;;3964:10;3959:3;3955:20;3952:1;3945:31;3999:4;3996:1;3989:15;4027:4;4024:1;4017:15;3881:161;;3668:380;;;:::o;4462:127::-;4523:10;4518:3;4514:20;4511:1;4504:31;4554:4;4551:1;4544:15;4578:4;4575:1;4568:15;4594:125;4659:9;;;4680:10;;;4677:36;;;4693:18;;:::i;7055:168::-;7128:9;;;7159;;7176:15;;;7170:22;;7156:37;7146:71;;7197:18;;:::i;7228:217::-;7268:1;7294;7284:132;;7338:10;7333:3;7329:20;7326:1;7319:31;7373:4;7370:1;7363:15;7401:4;7398:1;7391:15;7284:132;-1:-1:-1;7430:9:1;;7228:217::o;7450:128::-;7517:9;;;7538:11;;;7535:37;;;7552:18;;:::i;10264:127::-;10325:10;10320:3;10316:20;10313:1;10306:31;10356:4;10353:1;10346:15;10380:4;10377:1;10370:15;10396:251;10466:6;10519:2;10507:9;10498:7;10494:23;10490:32;10487:52;;;10535:1;10532;10525:12;10487:52;10567:9;10561:16;10586:31;10611:5;10586:31;:::i;10652:980::-;10914:4;10962:3;10951:9;10947:19;10993:6;10982:9;10975:25;11019:2;11057:6;11052:2;11041:9;11037:18;11030:34;11100:3;11095:2;11084:9;11080:18;11073:31;11124:6;11159;11153:13;11190:6;11182;11175:22;11228:3;11217:9;11213:19;11206:26;;11267:2;11259:6;11255:15;11241:29;;11288:1;11298:195;11312:6;11309:1;11306:13;11298:195;;;11377:13;;-1:-1:-1;;;;;11373:39:1;11361:52;;11468:15;;;;11433:12;;;;11409:1;11327:9;11298:195;;;-1:-1:-1;;;;;;;11549:32:1;;;;11544:2;11529:18;;11522:60;-1:-1:-1;;;11613:3:1;11598:19;11591:35;11510:3;10652:980;-1:-1:-1;;;10652:980:1:o

Swarm Source

ipfs://a9550b684e517821cce4669ce7e90d5c62f335c1c3fde01a0a2e6241e2b9c498

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

BeatFi is a digital platform that leverages AI and blockchain to democratize music creation, secure artists' rights, and streamline monetization. It empowers anyone to create, protect, and profit from their music, ensuring artists at all levels can access and thrive in the global music ecosystem.

Validator Index Block Amount
View All Withdrawals

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