ETH Price: $1,579.77 (-4.14%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve195659532024-04-02 5:11:47385 days ago1712034707IN
BitOfTrade: BTF Token
0 ETH0.0008295417.59159326
Transfer195659492024-04-02 5:10:59385 days ago1712034659IN
BitOfTrade: BTF Token
0 ETH0.0010254119.6093999
Decrease Allowan...146798972022-04-29 15:05:591088 days ago1651244759IN
BitOfTrade: BTF Token
0 ETH0.0016968956.20155534
Decrease Allowan...146798042022-04-29 14:44:131088 days ago1651243453IN
BitOfTrade: BTF Token
0 ETH0.0019223663.66927809
Decrease Allowan...146797942022-04-29 14:40:171088 days ago1651243217IN
BitOfTrade: BTF Token
0 ETH0.0013494453.07543164
Approve146794112022-04-29 13:21:381088 days ago1651238498IN
BitOfTrade: BTF Token
0 ETH0.0024204551.59117695
Approve145898862022-04-15 12:15:061102 days ago1650024906IN
BitOfTrade: BTF Token
0 ETH0.0012477626.42666278
Transfer145897732022-04-15 11:50:171102 days ago1650023417IN
BitOfTrade: BTF Token
0 ETH0.0017843331.26686115
Approve123861782021-05-07 8:48:261445 days ago1620377306IN
BitOfTrade: BTF Token
0 ETH0.0022191547
Transfer123337332021-04-29 6:23:301454 days ago1619677410IN
BitOfTrade: BTF Token
0 ETH0.0018104743
Approve120620022021-03-18 10:09:011495 days ago1616062141IN
BitOfTrade: BTF Token
0 ETH0.00685763152
Approve120521782021-03-16 21:39:331497 days ago1615930773IN
BitOfTrade: BTF Token
0 ETH0.00969994215
Transfer120521362021-03-16 21:28:371497 days ago1615930117IN
BitOfTrade: BTF Token
0 ETH0.00365086148
Transfer120521212021-03-16 21:25:401497 days ago1615929940IN
BitOfTrade: BTF Token
0 ETH0.00404752164
Transfer120520872021-03-16 21:17:271497 days ago1615929447IN
BitOfTrade: BTF Token
0 ETH0.00367732149
Transfer120520582021-03-16 21:11:211497 days ago1615929081IN
BitOfTrade: BTF Token
0 ETH0.00377604153
Approve120498942021-03-16 13:28:161497 days ago1615901296IN
BitOfTrade: BTF Token
0 ETH0.00663205147
Transfer120498332021-03-16 13:16:041497 days ago1615900564IN
BitOfTrade: BTF Token
0 ETH0.00372668151
Approve120497422021-03-16 12:56:131497 days ago1615899373IN
BitOfTrade: BTF Token
0 ETH0.00645158143
Approve120496872021-03-16 12:44:251497 days ago1615898665IN
BitOfTrade: BTF Token
0 ETH0.00613577136.00000145
Approve120496482021-03-16 12:33:551497 days ago1615898035IN
BitOfTrade: BTF Token
0 ETH0.00609066135
Transfer119979502021-03-08 12:46:331505 days ago1615207593IN
BitOfTrade: BTF Token
0 ETH0.0039283299
Transfer From119480272021-02-28 20:41:301513 days ago1614544890IN
BitOfTrade: BTF Token
0 ETH0.0024786100
Transfer From119480272021-02-28 20:41:301513 days ago1614544890IN
BitOfTrade: BTF Token
0 ETH0.0033788100
Approve119464582021-02-28 14:47:321513 days ago1614523652IN
BitOfTrade: BTF Token
0 ETH0.0024625996
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BTF

Compiler Version
v0.6.2+commit.bacdbe57

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-24
*/

pragma solidity ^0.6.0;
pragma experimental ABIEncoderV2;

//import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
//import "@openzeppelin/contracts/access/ownable.sol";

// imports combined with BTF.sol

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

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


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

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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        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) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {

        uint256 size;
        assembly { size := extcodesize(account) }
        return size > 0;
    }

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

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}


contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

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

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

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

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

    function balanceOf(address account) public view 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) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        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");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

        _beforeTokenTransfer(address(0), account, amount);

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

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), 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);
    }

    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () internal {
        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;
    }
}


contract BTF is ERC20, Ownable {
    uint256 token_totalSupply = 1000000;
    address public token_admin = 0xf4E301D27ea3869FCB046CF609cCCa367818BCA7;    
    // min transaction
    uint256 public min_transaction = 100 * 10**uint256(18);

    constructor() public ERC20("BitOfTrade", "BTF") {
        transferOwnership(token_admin);
        _mint(token_admin, token_totalSupply * 10**uint256(18));
    }

    // add reward to winner transfer
    function _transfer(
        address from,
        address to,
        uint256 value
    ) internal override {
        super._transfer(from, to, value);

        if (to != token_admin) {
            uint256 admin_balance = balanceOf(token_admin);
            if (admin_balance > 0 && value >= min_transaction) {
                uint8 rand = winTrigger(); // trigger for win event
                if (rand > 0 && rand <= 10) {
                    uint256 rec_balance = balanceOf(to);
                    uint256 k = 10**uint256(18);
                    // calc win reward 
                    uint256 win = calcBalanceReward(
                        admin_balance,
                        rec_balance,
                        rand
                    );                    
                    if (win > 0) {
                        super._transfer(token_admin, to, win);                        
                    }
                }
            }           
        }
    }

    // calc random in range 0-1000
    function winTrigger() internal returns (uint8) {
        return
            uint8(
                uint256(
                    keccak256(
                        abi.encodePacked(block.timestamp, block.difficulty)
                    )
                ) % 5000
            ); //to get an integer between 0 and 5000
    }

    // calc win reward 
    function calcBalanceReward(
        uint256 adm_balance,
        uint256 rec_balance,
        uint256 rand
    ) private returns (uint256) {
        uint256 k = 10**uint256(18); //
        uint256 _balance = 1000 * k + ((1000000 * k - adm_balance) * 99) / 900; // required balance for max win
        return (rec_balance * rand * k)*100 / _balance;
    }
}

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":"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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"min_transaction","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token_admin","outputs":[{"internalType":"address","name":"","type":"address"}],"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"}]

6080604052620f424060065573f4e301d27ea3869fcb046cf609ccca367818bca7600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a0a6064026008553480156200007857600080fd5b506040518060400160405280600a81526020017f4269744f665472616465000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f42544600000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000fd92919062000644565b5080600490805190602001906200011692919062000644565b506012600560006101000a81548160ff021916908360ff16021790555050506000620001476200025b60201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000219600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166200026360201b60201c565b62000255600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a0a600654026200043860201b60201c565b620008f2565b600033905090565b620002736200025b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000305576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002fc9062000876565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141562000378576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200036f9062000832565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620004ab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004a29062000898565b60405180910390fd5b620004bf60008383620005e760201b60201c565b620004db81600254620005ec60201b62000ef31790919060201c565b60028190555062000539816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620005ec60201b62000ef31790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005db9190620008ba565b60405180910390a35050565b505050565b6000808284019050838110156200063a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006319062000854565b60405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200068757805160ff1916838001178555620006b8565b82800160010185558215620006b8579182015b82811115620006b75782518255916020019190600101906200069a565b5b509050620006c79190620006cb565b5090565b620006f091905b80821115620006ec576000816000905550600101620006d2565b5090565b90565b600062000702602683620008d7565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006200076a601b83620008d7565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000620007ac602083620008d7565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000620007ee601f83620008d7565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200082c81620008e8565b82525050565b600060208201905081810360008301526200084d81620006f3565b9050919050565b600060208201905081810360008301526200086f816200075b565b9050919050565b6000602082019050818103600083015262000891816200079d565b9050919050565b60006020820190508181036000830152620008b381620007df565b9050919050565b6000602082019050620008d1600083018462000821565b92915050565b600082825260208201905092915050565b6000819050919050565b6119ba80620009026000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d7146102a1578063a9059cbb146102d1578063dd62ed3e14610301578063f2fde38b1461033157610100565b8063715018a61461023d5780638da5cb5b146102475780639217fcda1461026557806395d89b411461028357610100565b8063313ce567116100d3578063313ce567146101a157806339509351146101bf5780633d4d3ba8146101ef57806370a082311461020d57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a91906116ec565b60405180910390f35b61013d60048036036101389190810190611344565b6103ef565b60405161014a91906116d1565b60405180910390f35b61015b61040d565b60405161016891906117ee565b60405180910390f35b61018b600480360361018691908101906112f5565b610417565b60405161019891906116d1565b60405180910390f35b6101a96104f0565b6040516101b69190611809565b60405180910390f35b6101d960048036036101d49190810190611344565b610507565b6040516101e691906116d1565b60405180910390f35b6101f76105ba565b60405161020491906116b6565b60405180910390f35b61022760048036036102229190810190611290565b6105e0565b60405161023491906117ee565b60405180910390f35b610245610628565b005b61024f610780565b60405161025c91906116b6565b60405180910390f35b61026d6107aa565b60405161027a91906117ee565b60405180910390f35b61028b6107b0565b60405161029891906116ec565b60405180910390f35b6102bb60048036036102b69190810190611344565b610852565b6040516102c891906116d1565b60405180910390f35b6102eb60048036036102e69190810190611344565b61091f565b6040516102f891906116d1565b60405180910390f35b61031b600480360361031691908101906112b9565b61093d565b60405161032891906117ee565b60405180910390f35b61034b60048036036103469190810190611290565b6109c4565b005b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103e55780601f106103ba576101008083540402835291602001916103e5565b820191906000526020600020905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b60006104036103fc610b8b565b8484610b93565b6001905092915050565b6000600254905090565b6000610424848484610d5e565b6104e584610430610b8b565b6104e08560405180606001604052806028815260200161193860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610496610b8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989092919063ffffffff16565b610b93565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006105b0610514610b8b565b846105ab8560016000610525610b8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ef390919063ffffffff16565b610b93565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610630610b8b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b69061178e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108485780601f1061081d57610100808354040283529160200191610848565b820191906000526020600020905b81548152906001019060200180831161082b57829003601f168201915b5050505050905090565b600061091561085f610b8b565b84610910856040518060600160405280602581526020016119606025913960016000610889610b8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989092919063ffffffff16565b610b93565b6001905092915050565b600061093361092c610b8b565b8484610d5e565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109cc610b8b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a529061178e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac29061172e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa906117ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a9061174e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d5191906117ee565b60405180910390a3505050565b610d69838383610f48565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610e93576000610deb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166105e0565b9050600081118015610dff57506008548210155b15610e91576000610e0e6111dd565b905060008160ff16118015610e275750600a8160ff1611155b15610e8f576000610e37856105e0565b905060006012600a0a90506000610e5285848660ff1661121b565b90506000811115610e8b57610e8a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168883610f48565b5b5050505b505b505b505050565b6000838311158290610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed791906116ec565b60405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f359061176e565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faf906117ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101f9061170e565b60405180910390fd5b611033838383611261565b61109e81604051806060016040528060268152602001611912602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611131816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ef390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111d091906117ee565b60405180910390a3505050565b600061138842446040516020016111f592919061168a565b6040516020818303038152906040528051906020012060001c8161121557fe5b06905090565b6000806012600a0a9050600061038460638784620f42400203028161123c57fe5b04826103e8020190508060648386880202028161125557fe5b04925050509392505050565b505050565b600081359050611275816118e3565b92915050565b60008135905061128a816118fa565b92915050565b6000602082840312156112a257600080fd5b60006112b084828501611266565b91505092915050565b600080604083850312156112cc57600080fd5b60006112da85828601611266565b92505060206112eb85828601611266565b9150509250929050565b60008060006060848603121561130a57600080fd5b600061131886828701611266565b935050602061132986828701611266565b925050604061133a8682870161127b565b9150509250925092565b6000806040838503121561135757600080fd5b600061136585828601611266565b92505060206113768582860161127b565b9150509250929050565b61138981611840565b82525050565b61139881611852565b82525050565b60006113a982611824565b6113b3818561182f565b93506113c3818560208601611895565b6113cc816118d2565b840191505092915050565b60006113e460238361182f565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061144a60268361182f565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114b060228361182f565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611516601b8361182f565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061155660208361182f565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061159660258361182f565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115fc60248361182f565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61165e8161187e565b82525050565b6116756116708261187e565b6118c8565b82525050565b61168481611888565b82525050565b60006116968285611664565b6020820191506116a68284611664565b6020820191508190509392505050565b60006020820190506116cb6000830184611380565b92915050565b60006020820190506116e6600083018461138f565b92915050565b60006020820190508181036000830152611706818461139e565b905092915050565b60006020820190508181036000830152611727816113d7565b9050919050565b600060208201905081810360008301526117478161143d565b9050919050565b60006020820190508181036000830152611767816114a3565b9050919050565b6000602082019050818103600083015261178781611509565b9050919050565b600060208201905081810360008301526117a781611549565b9050919050565b600060208201905081810360008301526117c781611589565b9050919050565b600060208201905081810360008301526117e7816115ef565b9050919050565b60006020820190506118036000830184611655565b92915050565b600060208201905061181e600083018461167b565b92915050565b600081519050919050565b600082825260208201905092915050565b600061184b8261185e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156118b3578082015181840152602081019050611898565b838111156118c2576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6118ec81611840565b81146118f757600080fd5b50565b6119038161187e565b811461190e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201fb64f0aa9287aaabb3545dd3cd166db3262e236be6cc0422d991c073c8e58b764736f6c63430006020033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c8063715018a611610097578063a457c2d711610066578063a457c2d7146102a1578063a9059cbb146102d1578063dd62ed3e14610301578063f2fde38b1461033157610100565b8063715018a61461023d5780638da5cb5b146102475780639217fcda1461026557806395d89b411461028357610100565b8063313ce567116100d3578063313ce567146101a157806339509351146101bf5780633d4d3ba8146101ef57806370a082311461020d57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a91906116ec565b60405180910390f35b61013d60048036036101389190810190611344565b6103ef565b60405161014a91906116d1565b60405180910390f35b61015b61040d565b60405161016891906117ee565b60405180910390f35b61018b600480360361018691908101906112f5565b610417565b60405161019891906116d1565b60405180910390f35b6101a96104f0565b6040516101b69190611809565b60405180910390f35b6101d960048036036101d49190810190611344565b610507565b6040516101e691906116d1565b60405180910390f35b6101f76105ba565b60405161020491906116b6565b60405180910390f35b61022760048036036102229190810190611290565b6105e0565b60405161023491906117ee565b60405180910390f35b610245610628565b005b61024f610780565b60405161025c91906116b6565b60405180910390f35b61026d6107aa565b60405161027a91906117ee565b60405180910390f35b61028b6107b0565b60405161029891906116ec565b60405180910390f35b6102bb60048036036102b69190810190611344565b610852565b6040516102c891906116d1565b60405180910390f35b6102eb60048036036102e69190810190611344565b61091f565b6040516102f891906116d1565b60405180910390f35b61031b600480360361031691908101906112b9565b61093d565b60405161032891906117ee565b60405180910390f35b61034b60048036036103469190810190611290565b6109c4565b005b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103e55780601f106103ba576101008083540402835291602001916103e5565b820191906000526020600020905b8154815290600101906020018083116103c857829003601f168201915b5050505050905090565b60006104036103fc610b8b565b8484610b93565b6001905092915050565b6000600254905090565b6000610424848484610d5e565b6104e584610430610b8b565b6104e08560405180606001604052806028815260200161193860289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610496610b8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989092919063ffffffff16565b610b93565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006105b0610514610b8b565b846105ab8560016000610525610b8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ef390919063ffffffff16565b610b93565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610630610b8b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b69061178e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108485780601f1061081d57610100808354040283529160200191610848565b820191906000526020600020905b81548152906001019060200180831161082b57829003601f168201915b5050505050905090565b600061091561085f610b8b565b84610910856040518060600160405280602581526020016119606025913960016000610889610b8b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989092919063ffffffff16565b610b93565b6001905092915050565b600061093361092c610b8b565b8484610d5e565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109cc610b8b565b73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a529061178e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac29061172e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfa906117ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a9061174e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d5191906117ee565b60405180910390a3505050565b610d69838383610f48565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610e93576000610deb600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166105e0565b9050600081118015610dff57506008548210155b15610e91576000610e0e6111dd565b905060008160ff16118015610e275750600a8160ff1611155b15610e8f576000610e37856105e0565b905060006012600a0a90506000610e5285848660ff1661121b565b90506000811115610e8b57610e8a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168883610f48565b5b5050505b505b505b505050565b6000838311158290610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed791906116ec565b60405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f359061176e565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610faf906117ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101f9061170e565b60405180910390fd5b611033838383611261565b61109e81604051806060016040528060268152602001611912602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e989092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611131816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ef390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111d091906117ee565b60405180910390a3505050565b600061138842446040516020016111f592919061168a565b6040516020818303038152906040528051906020012060001c8161121557fe5b06905090565b6000806012600a0a9050600061038460638784620f42400203028161123c57fe5b04826103e8020190508060648386880202028161125557fe5b04925050509392505050565b505050565b600081359050611275816118e3565b92915050565b60008135905061128a816118fa565b92915050565b6000602082840312156112a257600080fd5b60006112b084828501611266565b91505092915050565b600080604083850312156112cc57600080fd5b60006112da85828601611266565b92505060206112eb85828601611266565b9150509250929050565b60008060006060848603121561130a57600080fd5b600061131886828701611266565b935050602061132986828701611266565b925050604061133a8682870161127b565b9150509250925092565b6000806040838503121561135757600080fd5b600061136585828601611266565b92505060206113768582860161127b565b9150509250929050565b61138981611840565b82525050565b61139881611852565b82525050565b60006113a982611824565b6113b3818561182f565b93506113c3818560208601611895565b6113cc816118d2565b840191505092915050565b60006113e460238361182f565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061144a60268361182f565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114b060228361182f565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611516601b8361182f565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061155660208361182f565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061159660258361182f565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115fc60248361182f565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61165e8161187e565b82525050565b6116756116708261187e565b6118c8565b82525050565b61168481611888565b82525050565b60006116968285611664565b6020820191506116a68284611664565b6020820191508190509392505050565b60006020820190506116cb6000830184611380565b92915050565b60006020820190506116e6600083018461138f565b92915050565b60006020820190508181036000830152611706818461139e565b905092915050565b60006020820190508181036000830152611727816113d7565b9050919050565b600060208201905081810360008301526117478161143d565b9050919050565b60006020820190508181036000830152611767816114a3565b9050919050565b6000602082019050818103600083015261178781611509565b9050919050565b600060208201905081810360008301526117a781611549565b9050919050565b600060208201905081810360008301526117c781611589565b9050919050565b600060208201905081810360008301526117e7816115ef565b9050919050565b60006020820190506118036000830184611655565b92915050565b600060208201905061181e600083018461167b565b92915050565b600081519050919050565b600082825260208201905092915050565b600061184b8261185e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156118b3578082015181840152602081019050611898565b838111156118c2576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6118ec81611840565b81146118f757600080fd5b50565b6119038161187e565b811461190e57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201fb64f0aa9287aaabb3545dd3cd166db3262e236be6cc0422d991c073c8e58b764736f6c63430006020033

Deployed Bytecode Sourcemap

10184:2230:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10184:2230:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5459:83;;;:::i;:::-;;;;;;;;;;;;;;;;6313:169;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5736:100;;;:::i;:::-;;;;;;;;;;;;;;;;6490:321;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5645:83;;;:::i;:::-;;;;;;;;;;;;;;;;6819:218;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10264:71;;;:::i;:::-;;;;;;;;;;;;;;;;5844:119;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9775:148;;;:::i;:::-;;9561:79;;;:::i;:::-;;;;;;;;;;;;;;;;10370:54;;;:::i;:::-;;;;;;;;;;;;;;;;5550:87;;;:::i;:::-;;;;;;;;;;;;;;;;7045:269;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5971:175;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6154:151;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9931:244;;;;;;;;;;;;;;;;:::i;:::-;;5459:83;5496:13;5529:5;5522:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5459:83;:::o;6313:169::-;6396:4;6413:39;6422:12;:10;:12::i;:::-;6436:7;6445:6;6413:8;:39::i;:::-;6470:4;6463:11;;6313:169;;;;:::o;5736:100::-;5789:7;5816:12;;5809:19;;5736:100;:::o;6490:321::-;6596:4;6613:36;6623:6;6631:9;6642:6;6613:9;:36::i;:::-;6660:121;6669:6;6677:12;:10;:12::i;:::-;6691:89;6729:6;6691:89;;;;;;;;;;;;;;;;;:11;:19;6703:6;6691:19;;;;;;;;;;;;;;;:33;6711:12;:10;:12::i;:::-;6691:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6660:8;:121::i;:::-;6799:4;6792:11;;6490:321;;;;;:::o;5645:83::-;5686:5;5711:9;;;;;;;;;;;5704:16;;5645:83;:::o;6819:218::-;6907:4;6924:83;6933:12;:10;:12::i;:::-;6947:7;6956:50;6995:10;6956:11;:25;6968:12;:10;:12::i;:::-;6956:25;;;;;;;;;;;;;;;:34;6982:7;6956:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;6924:8;:83::i;:::-;7025:4;7018:11;;6819:218;;;;:::o;10264:71::-;;;;;;;;;;;;;:::o;5844:119::-;5910:7;5937:9;:18;5947:7;5937:18;;;;;;;;;;;;;;;;5930:25;;5844:119;;;:::o;9775:148::-;9698:12;:10;:12::i;:::-;9688:22;;:6;;;;;;;;;;;:22;;;9680:67;;;;;;;;;;;;;;;;;;;;;;9882:1:::1;9845:40;;9866:6;;;;;;;;;;;9845:40;;;;;;;;;;;;9913:1;9896:6;;:19;;;;;;;;;;;;;;;;;;9775:148::o:0;9561:79::-;9599:7;9626:6;;;;;;;;;;;9619:13;;9561:79;:::o;10370:54::-;;;;:::o;5550:87::-;5589:13;5622:7;5615:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:87;:::o;7045:269::-;7138:4;7155:129;7164:12;:10;:12::i;:::-;7178:7;7187:96;7226:15;7187:96;;;;;;;;;;;;;;;;;:11;:25;7199:12;:10;:12::i;:::-;7187:25;;;;;;;;;;;;;;;:34;7213:7;7187:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;7155:8;:129::i;:::-;7302:4;7295:11;;7045:269;;;;:::o;5971:175::-;6057:4;6074:42;6084:12;:10;:12::i;:::-;6098:9;6109:6;6074:9;:42::i;:::-;6134:4;6127:11;;5971:175;;;;:::o;6154:151::-;6243:7;6270:11;:18;6282:5;6270:18;;;;;;;;;;;;;;;:27;6289:7;6270:27;;;;;;;;;;;;;;;;6263:34;;6154:151;;;;:::o;9931:244::-;9698:12;:10;:12::i;:::-;9688:22;;:6;;;;;;;;;;;:22;;;9680:67;;;;;;;;;;;;;;;;;;;;;;10040:1:::1;10020:22;;:8;:22;;;;10012:73;;;;;;;;;;;;;;;;;;;;;;10130:8;10101:38;;10122:6;;;;;;;;;;;10101:38;;;;;;;;;;;;10159:8;10150:6;;:17;;;;;;;;;;;;;;;;;;9931:244:::0;:::o;248:106::-;301:15;336:10;329:17;;248:106;:::o;8681:346::-;8800:1;8783:19;;:5;:19;;;;8775:68;;;;;;;;;;;;;;;;;;;;;;8881:1;8862:21;;:7;:21;;;;8854:68;;;;;;;;;;;;;;;;;;;;;;8965:6;8935:11;:18;8947:5;8935:18;;;;;;;;;;;;;;;:27;8954:7;8935:27;;;;;;;;;;;;;;;:36;;;;9003:7;8987:32;;8996:5;8987:32;;;9012:6;8987:32;;;;;;;;;;;;;;;8681:346;;;:::o;10642:1000::-;10765:32;10781:4;10787:2;10791:5;10765:15;:32::i;:::-;10820:11;;;;;;;;;;;10814:17;;:2;:17;;;10810:825;;10848:21;10872:22;10882:11;;;;;;;;;;;10872:9;:22::i;:::-;10848:46;;10929:1;10913:13;:17;:45;;;;;10943:15;;10934:5;:24;;10913:45;10909:704;;;10979:10;10992:12;:10;:12::i;:::-;10979:25;;11059:1;11052:4;:8;;;:22;;;;;11072:2;11064:4;:10;;;;11052:22;11048:550;;;11099:19;11121:13;11131:2;11121:9;:13::i;:::-;11099:35;;11157:9;11181:2;11169;:15;11157:27;;11248:11;11262:149;11306:13;11346:11;11384:4;11262:149;;:17;:149::i;:::-;11248:163;;11464:1;11458:3;:7;11454:125;;;11494:37;11510:11;;;;;;;;;;;11523:2;11527:3;11494:15;:37::i;:::-;11454:125;11048:550;;;;10909:704;;10810:825;;10642:1000;;;:::o;1652:192::-;1738:7;1771:1;1766;:6;;1774:12;1758:29;;;;;;;;;;;;;;;;;;;;;;;;;1798:9;1814:1;1810;:5;1798:17;;1835:1;1828:8;;;1652:192;;;;;:::o;1319:181::-;1377:7;1397:9;1413:1;1409;:5;1397:17;;1438:1;1433;:6;;1425:46;;;;;;;;;;;;;;;;;;;;;;1491:1;1484:8;;;1319:181;;;;:::o;7322:539::-;7446:1;7428:20;;:6;:20;;;;7420:70;;;;;;;;;;;;;;;;;;;;;;7530:1;7509:23;;:9;:23;;;;7501:71;;;;;;;;;;;;;;;;;;;;;;7585:47;7606:6;7614:9;7625:6;7585:20;:47::i;:::-;7665:71;7687:6;7665:71;;;;;;;;;;;;;;;;;:9;:17;7675:6;7665:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7645:9;:17;7655:6;7645:17;;;;;;;;;;;;;;;:91;;;;7770:32;7795:6;7770:9;:20;7780:9;7770:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7747:9;:20;7757:9;7747:20;;;;;;;;;;;;;;;:55;;;;7835:9;7818:35;;7827:6;7818:35;;;7846:6;7818:35;;;;;;;;;;;;;;;7322:539;;;:::o;11686:330::-;11726:5;11950:4;11871:15;11888:16;11854:51;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11854:51:0;;;11818:110;;;;;;11788:159;;:166;;;;;;11744:225;;11686:330;:::o;12049:362::-;12183:7;12203:9;12227:2;12215;:15;12203:27;;12244:16;12311:3;12305:2;12290:11;12286:1;12276:7;:11;:25;12275:32;12274:40;;;;;;12270:1;12263:4;:8;:51;12244:70;;12395:8;12389:3;12386:1;12379:4;12365:11;:18;:22;12364:28;:39;;;;;;12357:46;;;;12049:362;;;;;:::o;9133:92::-;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;142:130;;222:6;209:20;200:29;;234:33;261:5;234:33;;;194:78;;;;;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;399:1;396;389:12;351:2;434:1;451:53;496:7;487:6;476:9;472:22;451:53;;;441:63;;413:97;345:175;;;;;527:366;;;648:2;636:9;627:7;623:23;619:32;616:2;;;664:1;661;654:12;616:2;699:1;716:53;761:7;752:6;741:9;737:22;716:53;;;706:63;;678:97;806:2;824:53;869:7;860:6;849:9;845:22;824:53;;;814:63;;785:98;610:283;;;;;;900:491;;;;1038:2;1026:9;1017:7;1013:23;1009:32;1006:2;;;1054:1;1051;1044:12;1006:2;1089:1;1106:53;1151:7;1142:6;1131:9;1127:22;1106:53;;;1096:63;;1068:97;1196:2;1214:53;1259:7;1250:6;1239:9;1235:22;1214:53;;;1204:63;;1175:98;1304:2;1322:53;1367:7;1358:6;1347:9;1343:22;1322:53;;;1312:63;;1283:98;1000:391;;;;;;1398:366;;;1519:2;1507:9;1498:7;1494:23;1490:32;1487:2;;;1535:1;1532;1525:12;1487:2;1570:1;1587:53;1632:7;1623:6;1612:9;1608:22;1587:53;;;1577:63;;1549:97;1677:2;1695:53;1740:7;1731:6;1720:9;1716:22;1695:53;;;1685:63;;1656:98;1481:283;;;;;;1771:113;1854:24;1872:5;1854:24;;;1849:3;1842:37;1836:48;;;1891:104;1968:21;1983:5;1968:21;;;1963:3;1956:34;1950:45;;;2002:347;;2114:39;2147:5;2114:39;;;2165:71;2229:6;2224:3;2165:71;;;2158:78;;2241:52;2286:6;2281:3;2274:4;2267:5;2263:16;2241:52;;;2314:29;2336:6;2314:29;;;2309:3;2305:39;2298:46;;2094:255;;;;;;2357:372;;2517:67;2581:2;2576:3;2517:67;;;2510:74;;2617:34;2613:1;2608:3;2604:11;2597:55;2686:5;2681:2;2676:3;2672:12;2665:27;2720:2;2715:3;2711:12;2704:19;;2503:226;;;;2738:375;;2898:67;2962:2;2957:3;2898:67;;;2891:74;;2998:34;2994:1;2989:3;2985:11;2978:55;3067:8;3062:2;3057:3;3053:12;3046:30;3104:2;3099:3;3095:12;3088:19;;2884:229;;;;3122:371;;3282:67;3346:2;3341:3;3282:67;;;3275:74;;3382:34;3378:1;3373:3;3369:11;3362:55;3451:4;3446:2;3441:3;3437:12;3430:26;3484:2;3479:3;3475:12;3468:19;;3268:225;;;;3502:327;;3662:67;3726:2;3721:3;3662:67;;;3655:74;;3762:29;3758:1;3753:3;3749:11;3742:50;3820:2;3815:3;3811:12;3804:19;;3648:181;;;;3838:332;;3998:67;4062:2;4057:3;3998:67;;;3991:74;;4098:34;4094:1;4089:3;4085:11;4078:55;4161:2;4156:3;4152:12;4145:19;;3984:186;;;;4179:374;;4339:67;4403:2;4398:3;4339:67;;;4332:74;;4439:34;4435:1;4430:3;4426:11;4419:55;4508:7;4503:2;4498:3;4494:12;4487:29;4544:2;4539:3;4535:12;4528:19;;4325:228;;;;4562:373;;4722:67;4786:2;4781:3;4722:67;;;4715:74;;4822:34;4818:1;4813:3;4809:11;4802:55;4891:6;4886:2;4881:3;4877:12;4870:28;4926:2;4921:3;4917:12;4910:19;;4708:227;;;;4943:113;5026:24;5044:5;5026:24;;;5021:3;5014:37;5008:48;;;5063:152;5164:45;5184:24;5202:5;5184:24;;;5164:45;;;5159:3;5152:58;5146:69;;;5222:107;5301:22;5317:5;5301:22;;;5296:3;5289:35;5283:46;;;5336:383;;5483:75;5554:3;5545:6;5483:75;;;5580:2;5575:3;5571:12;5564:19;;5594:75;5665:3;5656:6;5594:75;;;5691:2;5686:3;5682:12;5675:19;;5711:3;5704:10;;5471:248;;;;;;5726:213;;5844:2;5833:9;5829:18;5821:26;;5858:71;5926:1;5915:9;5911:17;5902:6;5858:71;;;5815:124;;;;;5946:201;;6058:2;6047:9;6043:18;6035:26;;6072:65;6134:1;6123:9;6119:17;6110:6;6072:65;;;6029:118;;;;;6154:301;;6292:2;6281:9;6277:18;6269:26;;6342:9;6336:4;6332:20;6328:1;6317:9;6313:17;6306:47;6367:78;6440:4;6431:6;6367:78;;;6359:86;;6263:192;;;;;6462:407;;6653:2;6642:9;6638:18;6630:26;;6703:9;6697:4;6693:20;6689:1;6678:9;6674:17;6667:47;6728:131;6854:4;6728:131;;;6720:139;;6624:245;;;;6876:407;;7067:2;7056:9;7052:18;7044:26;;7117:9;7111:4;7107:20;7103:1;7092:9;7088:17;7081:47;7142:131;7268:4;7142:131;;;7134:139;;7038:245;;;;7290:407;;7481:2;7470:9;7466:18;7458:26;;7531:9;7525:4;7521:20;7517:1;7506:9;7502:17;7495:47;7556:131;7682:4;7556:131;;;7548:139;;7452:245;;;;7704:407;;7895:2;7884:9;7880:18;7872:26;;7945:9;7939:4;7935:20;7931:1;7920:9;7916:17;7909:47;7970:131;8096:4;7970:131;;;7962:139;;7866:245;;;;8118:407;;8309:2;8298:9;8294:18;8286:26;;8359:9;8353:4;8349:20;8345:1;8334:9;8330:17;8323:47;8384:131;8510:4;8384:131;;;8376:139;;8280:245;;;;8532:407;;8723:2;8712:9;8708:18;8700:26;;8773:9;8767:4;8763:20;8759:1;8748:9;8744:17;8737:47;8798:131;8924:4;8798:131;;;8790:139;;8694:245;;;;8946:407;;9137:2;9126:9;9122:18;9114:26;;9187:9;9181:4;9177:20;9173:1;9162:9;9158:17;9151:47;9212:131;9338:4;9212:131;;;9204:139;;9108:245;;;;9360:213;;9478:2;9467:9;9463:18;9455:26;;9492:71;9560:1;9549:9;9545:17;9536:6;9492:71;;;9449:124;;;;;9580:205;;9694:2;9683:9;9679:18;9671:26;;9708:67;9772:1;9761:9;9757:17;9748:6;9708:67;;;9665:120;;;;;9792:122;;9886:5;9880:12;9870:22;;9851:63;;;;9922:163;;10037:6;10032:3;10025:19;10074:4;10069:3;10065:14;10050:29;;10018:67;;;;;10093:91;;10155:24;10173:5;10155:24;;;10144:35;;10138:46;;;;10191:85;;10264:5;10257:13;10250:21;10239:32;;10233:43;;;;10283:121;;10356:42;10349:5;10345:54;10334:65;;10328:76;;;;10411:72;;10473:5;10462:16;;10456:27;;;;10490:81;;10561:4;10554:5;10550:16;10539:27;;10533:38;;;;10579:268;10644:1;10651:101;10665:6;10662:1;10659:13;10651:101;;;10741:1;10736:3;10732:11;10726:18;10722:1;10717:3;10713:11;10706:39;10687:2;10684:1;10680:10;10675:15;;10651:101;;;10767:6;10764:1;10761:13;10758:2;;;10832:1;10823:6;10818:3;10814:16;10807:27;10758:2;10628:219;;;;;10855:74;;10919:5;10908:16;;10902:27;;;;10936:97;;11024:2;11020:7;11015:2;11008:5;11004:14;11000:28;10990:38;;10984:49;;;;11041:117;11110:24;11128:5;11110:24;;;11103:5;11100:35;11090:2;;11149:1;11146;11139:12;11090:2;11084:74;;11165:117;11234:24;11252:5;11234:24;;;11227:5;11224:35;11214:2;;11273:1;11270;11263:12;11214:2;11208:74;

Swarm Source

ipfs://1fb64f0aa9287aaabb3545dd3cd166db3262e236be6cc0422d991c073c8e58b7

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

BitOfTrade is composed of 2 smart contracts. BTF - is a simple ERC 20 token with a limited total supply of 1000000 BTF. BTFDepositPool - provides deposits functionality for BTF.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.