Contract 0xFDb22e3bF935C1C94254F050BBe093563f533534

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x4acc12a3c89490497b480e76c0065e1ca7012d3ec2f855931c116d446abd3b7675731272021-05-20 12:38:1025 days 15 hrs ago0x1a1fae6633165e6a79dfa6801b607ac3df7462b1 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012319685
0x8396c3dcfce174896a6df2f7e44860b6eb9e3b5ecb745ffc00b3bffb5e27c57768119332021-04-23 9:45:1152 days 18 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.01291479
0xfb0c163794317adafe9240d314f5d573cc66fe10e58fa4843846b3be81bd12dd67987522021-04-22 22:38:3953 days 5 hrs ago0x83de202c917536bb7363c46b1f664f27097e180a IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.000105
0xd32418409983bec13d12858c996ea085ce8aee8cf8623e3386b3fda1a8b4832267274562021-04-20 9:45:0555 days 18 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.01043174
0xf55749cf92d3371a16921a848a989739f7720caf2581be9c6e70ba458157fd9d66924712021-04-19 4:25:0456 days 23 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.0104318
0x36c5403326a3f267cf72fe41b84f081da40aff5c30abbb2589347d6919e7768d66395332021-04-17 8:15:3858 days 19 hrs ago0x1a1fae6633165e6a79dfa6801b607ac3df7462b1 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.000181605
0xfeb074fb6b57ddd25917c7a3bdc50f8f03d79dc661f7fc540bd11ad97db752db66394572021-04-17 8:11:5058 days 19 hrs ago0x1a1fae6633165e6a79dfa6801b607ac3df7462b1 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.000181605
0x3f0fe3cc1a30acdfd9c633c45744c09de867c821ae5e8d6a0cfeea9fde874b9566072212021-04-16 5:12:3459 days 22 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012047345
0x17f444181ef5b49df255e1fcee4ee46d5bfb370e24f2051ed85110bf744caade65810902021-04-15 7:24:3160 days 20 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012047405
0xe3652d525b5c025da77fcc1677e4cd5b6c79cf25ac68a548ad903ff0f13add1565195922021-04-13 4:07:0662 days 23 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012047345
0x0bc25321491198dff5689284bae7684de88c4bdfc719475260df6717d07fe3df64942422021-04-12 6:57:0363 days 20 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.01043174
0x76ee4565731e393a874b87994f886c190eca77655a35fa6a70c4f16ffd69ea0364934532021-04-12 6:17:3663 days 21 hrs ago0x1a1fae6633165e6a79dfa6801b607ac3df7462b1 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.000181605
0x06e1f1b931f77b4f1280115ac3dd2e94e06a8fb987439be4164c6193558ade0864624512021-04-11 4:24:5564 days 23 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012047285
0xe4b9c92e903222c6d0324448bab3969d97536d196f3cd3188b8c178e34ef4e4364623692021-04-11 4:20:4964 days 23 hrs ago0x1a1fae6633165e6a79dfa6801b607ac3df7462b1 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.000181605
0x45212062ae504f7417b830e6427890f2b94a9f6c8a472a7b32f00e4798dc48dc64360202021-04-10 6:21:4365 days 21 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.011931685
0xf1bef2fdae393ccd4a0c7fdadc442227ed928b313b13359f71cb4f02821bcbd364065602021-04-09 5:41:0966 days 22 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012047405
0xce4f046f13eff42cf160f7afdcb2233fe7d2f1e084662e8f99237ab97979674063780972021-04-08 4:54:3567 days 22 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012047345
0xaa5694a79c07c511b609435fc46beef9e6d6643bd6437108c0275a4a57e3016c63492342021-04-07 4:19:4168 days 23 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012047345
0x0d610198a5810d8202230d112d427c9d52c44bbe9074afd9743cc8eb6a3ed38263226302021-04-06 5:34:0469 days 22 hrs ago0x5a63602c6a4c67984ef4acf5a0bcc41197d4b534 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.012047345
0x893f84a7813164d7db51aca4ae11132a165eb33583b12cf69009a3eeda52e65963225222021-04-06 5:28:4069 days 22 hrs ago0x1a1fae6633165e6a79dfa6801b607ac3df7462b1 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.000181605
0xae2c0ba78ded2f1dbe52bc0c31d735b385a2776911b012c4f2954bcbc89884a663224802021-04-06 5:26:3469 days 22 hrs ago0x1a1fae6633165e6a79dfa6801b607ac3df7462b1 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.0064011
0x0e84896124755d33df1039e1506707204a80342eb3e0281d75749b45078bd7e362955232021-04-05 6:28:5470 days 21 hrs ago0x5a09cc3dc95ebb230cc8869102a949149f1cc142 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.00044624
0x75fd74be753f344ea3c125842bed4a77724b8c7cad98957fa42c2613aeb6bb3462954692021-04-05 6:26:1270 days 21 hrs ago0x44ca3de71de5f0550c289fd8a89119a9880274ab IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.00036333
0x82e2189bf21b94244ebb2515b03fe7ca1eb13e40bfb2cae3849ef0c27d95c84f62954062021-04-05 6:23:0370 days 21 hrs ago0x6b4630f16a10c433fbfdb0da1ef6763b555e13a2 IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.00044624
0x5c541152f0291ba312a2e701f11c36baa12f1adc9629b0d6766c241ee661ec8b62953512021-04-05 6:20:1870 days 21 hrs ago0x2f9736ffff454b192ced44d9a30906e1df3b8f4f IN  0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB0.00036333
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago Belt Finance: StableSwap Contract 0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x8dab54646dd77a20cc187fdd52447acfa223726c0e488f914fca0a24e59d4fc854711852021-03-07 11:52:1299 days 15 hrs ago Belt Finance: StableSwap Contract 0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB
0x1d7573ffbf105df31474cdda89e4d39f4defd8f361a4efb295d6d9af3c4f69d854710262021-03-07 11:44:1599 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0x1d7573ffbf105df31474cdda89e4d39f4defd8f361a4efb295d6d9af3c4f69d854710262021-03-07 11:44:1599 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x1d7573ffbf105df31474cdda89e4d39f4defd8f361a4efb295d6d9af3c4f69d854710262021-03-07 11:44:1599 days 16 hrs ago Belt Finance: StableSwap Contract 0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB
0xdb42b1195fbf52ebd81b24b2614ed551735fe7ca94a56faaccfd8eb05f5f1afa54708672021-03-07 11:36:1899 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0xdb42b1195fbf52ebd81b24b2614ed551735fe7ca94a56faaccfd8eb05f5f1afa54708672021-03-07 11:36:1899 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0xdb42b1195fbf52ebd81b24b2614ed551735fe7ca94a56faaccfd8eb05f5f1afa54708672021-03-07 11:36:1899 days 16 hrs ago Belt Finance: StableSwap Contract 0xfdb22e3bf935c1c94254f050bbe093563f5335340 BNB
0x26dbe618692a1d50096156653dd1fc57e9fcb3e37e4a82192a9ed2acbfb361f554707082021-03-07 11:28:2199 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0x26dbe618692a1d50096156653dd1fc57e9fcb3e37e4a82192a9ed2acbfb361f554707082021-03-07 11:28:2199 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x26dbe618692a1d50096156653dd1fc57e9fcb3e37e4a82192a9ed2acbfb361f554707082021-03-07 11:28:2199 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x26dbe618692a1d50096156653dd1fc57e9fcb3e37e4a82192a9ed2acbfb361f554707082021-03-07 11:28:2199 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
0x26dbe618692a1d50096156653dd1fc57e9fcb3e37e4a82192a9ed2acbfb361f554707082021-03-07 11:28:2199 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x26dbe618692a1d50096156653dd1fc57e9fcb3e37e4a82192a9ed2acbfb361f554707082021-03-07 11:28:2199 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 DAI Stablecoin0 BNB
0x26dbe618692a1d50096156653dd1fc57e9fcb3e37e4a82192a9ed2acbfb361f554707082021-03-07 11:28:2199 days 16 hrs ago 0xfdb22e3bf935c1c94254f050bbe093563f533534 0xd49cb5b097e9f0b51b3c61c5127a9c35bdec70510 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
bDAI

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-02-28
*/

pragma solidity 0.6.12;
pragma experimental ABIEncoderV2;

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

contract Context {
    constructor () internal { }

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

    function _msgData() internal view returns (bytes memory) {
        this; 
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () internal {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }
    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    function totalSupply() override public view returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) override public view returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount) override public returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) override public view returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) override public returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) override public 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 returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue) public 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 {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _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 {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }
    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _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 {
        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 _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, "ERC20: burn amount exceeds allowance"));
    }
}

abstract contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }
    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;
    }
}

contract ReentrancyGuard {
    uint256 private _guardCounter;

    constructor () internal {
        _guardCounter = 1;
    }

    modifier nonReentrant() {
        _guardCounter += 1;
        uint256 localCounter = _guardCounter;
        _;
        require(localCounter == _guardCounter, "ReentrancyGuard: reentrant call");
    }
}

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) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }
    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");
    }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).add(value);
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero");
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface Venus {
    function deposit(address _userAddress, uint256 _wantAmt) external returns (uint256);
    function withdraw(address _userAddress, uint256 _wantAmt) external returns (uint256);

    function sharesTotal() external view returns (uint);
    function wantLockedTotal() external view returns (uint);
}

contract bDAI is ERC20, ERC20Detailed, ReentrancyGuard, Ownable {
    using SafeERC20 for IERC20;
    using Address for address;
    using SafeMath for uint256;

    uint256 public pool;
    address public token;
    address public venus;

    enum Lender {
        NONE,
        VENUS
    }

    Lender public provider = Lender.NONE;

    constructor (string memory name_, string memory symbol_, address _token, address _venus) public ERC20Detailed(name_, symbol_, 18) {
        token = _token;
        venus = _venus;
        approveToken();
    }

    function deposit(uint256 _amount)
    external
    nonReentrant
    {
        require(_amount > 0, "deposit must be greater than 0");
        pool = calcPoolValueInToken();

        IERC20(token).safeTransferFrom(msg.sender, address(this), _amount);

        uint256 shares = 0;
        if (pool == 0) {
            shares = _amount;
            pool = _amount;
        } else {
            //0.1%(999/1000) enterance fee 
            shares = (_amount.mul(totalSupply())).div(pool).mul(999).div(1000);
        }
        pool = calcPoolValueInToken();
        _mint(msg.sender, shares);
        rebalance();
    }

    function withdraw(uint256 _shares)
    external
    nonReentrant
    {
        require(_shares > 0, "withdraw must be greater than 0");

        uint256 ibalance = balanceOf(msg.sender);
        require(_shares <= ibalance, "insufficient balance");

        pool = calcPoolValueInToken();

        uint256 r = (pool.mul(_shares)).div(totalSupply());
        _burn(msg.sender, _shares);

        uint256 b = IERC20(token).balanceOf(address(this));
        if (b < r) {
            _withdrawSome(r.sub(b));
        }

        IERC20(token).safeTransfer(msg.sender, r);
        pool = calcPoolValueInToken();
    }

    function recommend() public view returns (Lender) {
        return Lender.VENUS;
    }

    function approveToken() public {
        IERC20(token).safeApprove(venus, uint(-1));
    }

    function balance() public view returns (uint256) {
        return IERC20(token).balanceOf(address(this));
    }

    function balanceVenus() public view returns (uint256) {
        return Venus(venus).wantLockedTotal();
    }

    function rebalance() public {
        Lender newProvider = recommend();

        if (newProvider != provider) {
            _withdrawAll();
        }

        if (balance() > 0) {
            if (newProvider == Lender.VENUS) {
                _supplyVenus(balance());
            }
        }

        provider = newProvider;
    }

    function _withdrawAll() internal {
        uint256 amount = balanceVenus();

        if (amount > 0) {
            _withdrawVenus(amount.sub(1));
        }
    }

    function _withdrawSome(uint256 _amount) internal returns (bool) {
        uint256 amount = balanceVenus();

        if (amount > 0) {
            _withdrawVenus(_amount);
        }

        return true;
    }

    function _supplyVenus(uint amount) internal {
        require(Venus(venus).deposit(msg.sender, amount) > 0, "VENUS: supply failed");
    }

    function _withdrawVenus(uint amount) internal {
        require(Venus(venus).withdraw(msg.sender, amount) > 0, "VENUS: withdraw failed");
    }

    function calcPoolValueInToken() public view returns (uint) {
        return balanceVenus()
        .add(balance());
    }

    function getPricePerFullShare() public view returns (uint) {
        uint _pool = calcPoolValueInToken();
        return _pool.mul(1e18).div(totalSupply());
    }
}

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_venus","type":"address"}],"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":[],"name":"approveToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"balanceVenus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"calcPoolValueInToken","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":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPricePerFullShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"pool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"provider","outputs":[{"internalType":"enum bDAI.Lender","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recommend","outputs":[{"internalType":"enum bDAI.Lender","name":"","type":"uint8"}],"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","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"},{"inputs":[],"name":"venus","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_shares","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600a805460ff60a01b191690553480156200001e57600080fd5b50604051620023883803806200238883398101604081905262000041916200051c565b8383601282600390805190602001906200005d929190620003b8565b50815162000073906004906020850190620003b8565b506005805460ff191660ff92909216919091179055505060016006556200009962000129565b600780546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600980546001600160a01b038085166001600160a01b031992831617909255600a8054928416929091169190911790556200011f6200012d565b5050505062000756565b3390565b600a546009546200015a916001600160a01b0391821691166000196200015c602090811b62000b5617901c565b565b801580620001eb5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90620001959030908690600401620005e1565b60206040518083038186803b158015620001ae57600080fd5b505afa158015620001c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e99190620005aa565b155b620002135760405162461bcd60e51b81526004016200020a9062000693565b60405180910390fd5b6200026e8363095ea7b360e01b848460405160240162000235929190620005fb565b60408051808303601f190181529190526020810180516001600160e01b0319939093166001600160e01b03938416179052906200027316565b505050565b62000292826001600160a01b03166200037b60201b62000c551760201c565b620002b15760405162461bcd60e51b81526004016200020a90620006f0565b60006060836001600160a01b031683604051620002cf9190620005c3565b6000604051808303816000865af19150503d80600081146200030e576040519150601f19603f3d011682016040523d82523d6000602084013e62000313565b606091505b509150915081620003385760405162461bcd60e51b81526004016200020a9062000614565b805115620003755780806020019051810190620003569190620004f3565b620003755760405162461bcd60e51b81526004016200020a9062000649565b50505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590620003b05750808214155b949350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003fb57805160ff19168380011785556200042b565b828001600101855582156200042b579182015b828111156200042b5782518255916020019190600101906200040e565b50620004399291506200043d565b5090565b5b808211156200043957600081556001016200043e565b80516001600160a01b03811681146200046c57600080fd5b92915050565b600082601f83011262000483578081fd5b81516001600160401b03808211156200049a578283fd5b604051601f8301601f191681016020018281118282101715620004bb578485fd5b604052828152925082848301602001861015620004d757600080fd5b620004ea83602083016020880162000727565b50505092915050565b60006020828403121562000505578081fd5b8151801515811462000515578182fd5b9392505050565b6000806000806080858703121562000532578283fd5b84516001600160401b038082111562000549578485fd5b620005578883890162000472565b955060208701519150808211156200056d578485fd5b506200057c8782880162000472565b9350506200058e866040870162000454565b91506200059f866060870162000454565b905092959194509250565b600060208284031215620005bc578081fd5b5051919050565b60008251620005d781846020870162000727565b9190910192915050565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527f20746f206e6f6e2d7a65726f20616c6c6f77616e636500000000000000000000606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b60005b83811015620007445781810151838201526020016200072a565b83811115620003755750506000910152565b611c2280620007666000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806377c7b8fc116100f9578063a457c2d711610097578063b6b55f2511610071578063b6b55f251461032f578063dd62ed3e14610342578063f2fde38b14610355578063fc0c546a14610368576101c4565b8063a457c2d714610301578063a9059cbb14610314578063b69ef8a814610327576101c4565b80638f32d59b116100d35780638f32d59b146102e157806395d89b41146102e957806399b71d5c146102f1578063a160176d146102f9576101c4565b806377c7b8fc146102c95780637d7c2a1c146102d15780638da5cb5b146102d9576101c4565b80632e1a7d4d116101665780634fdac0ef116101405780634fdac0ef1461029e57806370a08231146102a65780637137ef99146102b9578063715018a6146102c1576101c4565b80632e1a7d4d14610261578063313ce56714610276578063395093511461028b576101c4565b806316f0115b116101a257806316f0115b1461021c57806318160ddd146102315780631df294fb1461023957806323b872dd1461024e576101c4565b806306fdde03146101c9578063085d4883146101e7578063095ea7b3146101fc575b600080fd5b6101d1610370565b6040516101de9190611616565b60405180910390f35b6101ef610406565b6040516101de9190611602565b61020f61020a3660046114f6565b610416565b6040516101de91906115f7565b610224610434565b6040516101de9190611aff565b61022461043a565b610241610440565b6040516101de919061158c565b61020f61025c3660046114b6565b61044f565b61027461026f366004611540565b6104d6565b005b61027e610655565b6040516101de9190611b08565b61020f6102993660046114f6565b61065e565b6102246106ac565b6102246102b4366004611467565b61072e565b610224610749565b610274610764565b6102246107d2565b610274610802565b61024161089b565b61020f6108aa565b6101d16108d0565b610274610931565b6101ef610952565b61020f61030f3660046114f6565b610957565b61020f6103223660046114f6565b6109bf565b6102246109d3565b61027461033d366004611540565b610a1c565b610224610350366004611482565b610aec565b610274610363366004611467565b610b17565b610241610b47565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b600a54600160a01b900460ff1681565b600061042a610423610c91565b8484610c95565b5060015b92915050565b60085481565b60025490565b600a546001600160a01b031681565b600061045c848484610d49565b6104cc84610468610c91565b6104c785604051806060016040528060288152602001611ba0602891396001600160a01b038a166000908152600160205260408120906104a6610c91565b6001600160a01b031681526020810191909152604001600020549190610e53565b610c95565b5060019392505050565b6006805460010190819055816105075760405162461bcd60e51b81526004016104fe90611882565b60405180910390fd5b60006105123361072e565b9050808311156105345760405162461bcd60e51b81526004016104fe90611854565b61053c610749565b600855600061055f61054c61043a565b6008546105599087610e7f565b90610ec0565b905061056b3385610f02565b6009546040516370a0823160e01b81526000916001600160a01b0316906370a082319061059c90309060040161158c565b60206040518083038186803b1580156105b457600080fd5b505afa1580156105c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ec9190611558565b90508181101561060a576106086106038383610fd8565b61101a565b505b600954610621906001600160a01b03163384611036565b610629610749565b6008555050600654821490506106515760405162461bcd60e51b81526004016104fe90611a04565b5050565b60055460ff1690565b600061042a61066b610c91565b846104c7856001600061067c610c91565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611055565b600a54604080516342da4eb360e01b815290516000926001600160a01b0316916342da4eb3916004808301926020929190829003018186803b1580156106f157600080fd5b505afa158015610705573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107299190611558565b905090565b6001600160a01b031660009081526020819052604090205490565b60006107296107566109d3565b61075e6106ac565b90611055565b61076c6108aa565b6107885760405162461bcd60e51b81526004016104fe9061181f565b6007546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600780546001600160a01b0319169055565b6000806107dd610749565b90506107fc6107ea61043a565b61055983670de0b6b3a7640000610e7f565b91505090565b600061080c610952565b600a54909150600160a01b900460ff16600181111561082757fe5b81600181111561083357fe5b146108405761084061107a565b600061084a6109d3565b111561087457600181600181111561085e57fe5b14156108745761087461086f6109d3565b61109f565b600a805482919060ff60a01b1916600160a01b83600181111561089357fe5b021790555050565b6007546001600160a01b031690565b6007546000906001600160a01b03166108c1610c91565b6001600160a01b031614905090565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156103fc5780601f106103d1576101008083540402835291602001916103fc565b600a54600954610950916001600160a01b039182169116600019610b56565b565b600190565b600061042a610964610c91565b846104c785604051806060016040528060258152602001611bc8602591396001600061098e610c91565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610e53565b600061042a6109cc610c91565b8484610d49565b6009546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610a0490309060040161158c565b60206040518083038186803b1580156106f157600080fd5b600680546001019081905581610a445760405162461bcd60e51b81526004016104fe90611983565b610a4c610749565b600855600954610a67906001600160a01b0316333085611141565b600060085460001415610a805750600882905581610aad565b610aaa6103e86105596103e7610aa4600854610559610a9d61043a565b8a90610e7f565b90610e7f565b90505b610ab5610749565b600855610ac23382611168565b610aca610802565b5060065481146106515760405162461bcd60e51b81526004016104fe90611a04565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610b1f6108aa565b610b3b5760405162461bcd60e51b81526004016104fe9061181f565b610b4481611210565b50565b6009546001600160a01b031681565b801580610bde5750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e90610b8c90309086906004016115b9565b60206040518083038186803b158015610ba457600080fd5b505afa158015610bb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bdc9190611558565b155b610bfa5760405162461bcd60e51b81526004016104fe90611a3b565b610c508363095ea7b360e01b8484604051602401610c199291906115a0565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611292565b505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590610c895750808214155b949350505050565b3390565b6001600160a01b038316610cbb5760405162461bcd60e51b81526004016104fe9061193f565b6001600160a01b038216610ce15760405162461bcd60e51b81526004016104fe906116d2565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d3c908590611aff565b60405180910390a3505050565b6001600160a01b038316610d6f5760405162461bcd60e51b81526004016104fe906118fa565b6001600160a01b038216610d955760405162461bcd60e51b81526004016104fe90611649565b610dd281604051806060016040528060268152602001611b7a602691396001600160a01b0386166000908152602081905260409020549190610e53565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610e019082611055565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d3c908590611aff565b60008184841115610e775760405162461bcd60e51b81526004016104fe9190611616565b505050900390565b600082610e8e5750600061042e565b82820282848281610e9b57fe5b0414610eb95760405162461bcd60e51b81526004016104fe906117de565b9392505050565b6000610eb983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611377565b6001600160a01b038216610f285760405162461bcd60e51b81526004016104fe906118b9565b610f6581604051806060016040528060228152602001611b58602291396001600160a01b0385166000908152602081905260409020549190610e53565b6001600160a01b038316600090815260208190526040902055600254610f8b9082610fd8565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fcc908590611aff565b60405180910390a35050565b6000610eb983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e53565b6000806110256106ac565b9050801561042a5761042a836113ae565b610c508363a9059cbb60e01b8484604051602401610c199291906115a0565b600082820183811015610eb95760405162461bcd60e51b81526004016104fe90611714565b60006110846106ac565b90508015610b4457610b4461109a826001610fd8565b6113ae565b600a546040516311f9fbc960e21b81526000916001600160a01b0316906347e7ef24906110d290339086906004016115a0565b602060405180830381600087803b1580156110ec57600080fd5b505af1158015611100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111249190611558565b11610b445760405162461bcd60e51b81526004016104fe906117b0565b611162846323b872dd60e01b858585604051602401610c19939291906115d3565b50505050565b6001600160a01b03821661118e5760405162461bcd60e51b81526004016104fe90611ac8565b60025461119b9082611055565b6002556001600160a01b0382166000908152602081905260409020546111c19082611055565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fcc908590611aff565b6001600160a01b0381166112365760405162461bcd60e51b81526004016104fe9061168c565b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6112a4826001600160a01b0316610c55565b6112c05760405162461bcd60e51b81526004016104fe90611a91565b60006060836001600160a01b0316836040516112dc9190611570565b6000604051808303816000865af19150503d8060008114611319576040519150601f19603f3d011682016040523d82523d6000602084013e61131e565b606091505b5091509150816113405760405162461bcd60e51b81526004016104fe9061177b565b805115611162578080602001905181019061135b9190611520565b6111625760405162461bcd60e51b81526004016104fe906119ba565b600081836113985760405162461bcd60e51b81526004016104fe9190611616565b5060008385816113a457fe5b0495945050505050565b600a5460405163f3fef3a360e01b81526000916001600160a01b03169063f3fef3a3906113e190339086906004016115a0565b602060405180830381600087803b1580156113fb57600080fd5b505af115801561140f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114339190611558565b11610b445760405162461bcd60e51b81526004016104fe9061174b565b80356001600160a01b038116811461042e57600080fd5b600060208284031215611478578081fd5b610eb98383611450565b60008060408385031215611494578081fd5b61149e8484611450565b91506114ad8460208501611450565b90509250929050565b6000806000606084860312156114ca578081fd5b83356114d581611b42565b925060208401356114e581611b42565b929592945050506040919091013590565b60008060408385031215611508578182fd5b6115128484611450565b946020939093013593505050565b600060208284031215611531578081fd5b81518015158114610eb9578182fd5b600060208284031215611551578081fd5b5035919050565b600060208284031215611569578081fd5b5051919050565b60008251611582818460208701611b16565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b602081016002831061161057fe5b91905290565b6000602082528251806020840152611635816040850160208701611b16565b601f01601f19169190910160400192915050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601690820152751591539554ce881dda5d1a191c985dc819985a5b195960521b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252601490820152731591539554ce881cdd5c1c1b1e4819985a5b195960621b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260149082015273696e73756666696369656e742062616c616e636560601b604082015260600190565b6020808252601f908201527f7769746864726177206d7573742062652067726561746572207468616e203000604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601e908201527f6465706f736974206d7573742062652067726561746572207468616e20300000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b60ff91909116815260200190565b60005b83811015611b31578181015183820152602001611b19565b838111156111625750506000910152565b6001600160a01b0381168114610b4457600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ae36aaf1bd48c1eacb25a7422a53257898664aefc46968a8bc704923778f7cf164736f6c634300060c0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001af3f329e8be154074d8769d1ffa4ee058b1dbc3000000000000000000000000d49cb5b097e9f0b51b3c61c5127a9c35bdec7051000000000000000000000000000000000000000000000000000000000000000862656c742044414900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000046244414900000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000001af3f329e8be154074d8769d1ffa4ee058b1dbc3000000000000000000000000d49cb5b097e9f0b51b3c61c5127a9c35bdec7051000000000000000000000000000000000000000000000000000000000000000862656c742044414900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000046244414900000000000000000000000000000000000000000000000000000000

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000001af3f329e8be154074d8769d1ffa4ee058b1dbc3
Arg [3] : 000000000000000000000000d49cb5b097e9f0b51b3c61c5127a9c35bdec7051
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 62656c7420444149000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 6244414900000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

11034:3645:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11345:36;;;:::i;:::-;;;;;;;:::i;2893:161::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11205:19::-;;;:::i;:::-;;;;;;;:::i;2340:100::-;;;:::i;11258:20::-;;;:::i;:::-;;;;;;;:::i;3060:313::-;;;;;;:::i;:::-;;:::i;12252:632::-;;;;;;:::i;:::-;;:::i;:::-;;6082:83;;;:::i;:::-;;;;;;;:::i;3379:210::-;;;;;;:::i;:::-;;:::i;13209:110::-;;;:::i;2446:119::-;;;;;;:::i;:::-;;:::i;14379:124::-;;;:::i;1597:140::-;;;:::i;14511:165::-;;;:::i;13327:344::-;;;:::i;1300:79::-;;;:::i;1497:94::-;;;:::i;5989:87::-;;;:::i;12988:92::-;;;:::i;12892:88::-;;;:::i;3595:261::-;;;;;;:::i;:::-;;:::i;2571:167::-;;;;;;:::i;:::-;;:::i;13088:113::-;;;:::i;11611:633::-;;;;;;:::i;:::-;;:::i;2744:143::-;;;;;;:::i;:::-;;:::i;1743:109::-;;;;;;:::i;:::-;;:::i;11231:20::-;;;:::i;5900:83::-;5970:5;5963:12;;;;;;;;-1:-1:-1;;5963:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5937:13;;5963:12;;5970:5;;5963:12;;5970:5;5963:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5900:83;:::o;11345:36::-;;;-1:-1:-1;;;11345:36:0;;;;;:::o;2893:161::-;2968:4;2985:39;2994:12;:10;:12::i;:::-;3008:7;3017:6;2985:8;:39::i;:::-;-1:-1:-1;3042:4:0;2893:161;;;;;:::o;11205:19::-;;;;:::o;2340:100::-;2420:12;;2340:100;:::o;11258:20::-;;;-1:-1:-1;;;;;11258:20:0;;:::o;3060:313::-;3158:4;3175:36;3185:6;3193:9;3204:6;3175:9;:36::i;:::-;3222:121;3231:6;3239:12;:10;:12::i;:::-;3253:89;3291:6;3253:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3253:19:0;;;;;;:11;:19;;;;;;3273:12;:10;:12::i;:::-;-1:-1:-1;;;;;3253:33:0;;;;;;;;;;;;-1:-1:-1;3253:33:0;;;:89;:37;:89::i;:::-;3222:8;:121::i;:::-;-1:-1:-1;3361:4:0;3060:313;;;;;:::o;12252:632::-;6345:13;:18;;6362:1;6345:18;;;;;12343:11;12335:55:::1;;;;-1:-1:-1::0;;;12335:55:0::1;;;;;;;:::i;:::-;;;;;;;;;12403:16;12422:21;12432:10;12422:9;:21::i;:::-;12403:40;;12473:8;12462:7;:19;;12454:52;;;;-1:-1:-1::0;;;12454:52:0::1;;;;;;;:::i;:::-;12526:22;:20;:22::i;:::-;12519:4;:29:::0;12561:9:::1;12573:38;12597:13;:11;:13::i;:::-;12574:4;::::0;:17:::1;::::0;12583:7;12574:8:::1;:17::i;:::-;12573:23:::0;::::1;:38::i;:::-;12561:50;;12622:26;12628:10;12640:7;12622:5;:26::i;:::-;12680:5;::::0;12673:38:::1;::::0;-1:-1:-1;;;12673:38:0;;12661:9:::1;::::0;-1:-1:-1;;;;;12680:5:0::1;::::0;12673:23:::1;::::0;:38:::1;::::0;12705:4:::1;::::0;12673:38:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12661:50;;12730:1;12726;:5;12722:61;;;12748:23;12762:8;:1:::0;12768;12762:5:::1;:8::i;:::-;12748:13;:23::i;:::-;;12722:61;12802:5;::::0;12795:41:::1;::::0;-1:-1:-1;;;;;12802:5:0::1;12822:10;12834:1:::0;12795:26:::1;:41::i;:::-;12854:22;:20;:22::i;:::-;12847:4;:29:::0;-1:-1:-1;;6457:13:0;;6441:29;;;-1:-1:-1;6433:73:0;;;;-1:-1:-1;;;6433:73:0;;;;;;;:::i;:::-;12252:632;;:::o;6082:83::-;6148:9;;;;6082:83;:::o;3379:210::-;3459:4;3476:83;3485:12;:10;:12::i;:::-;3499:7;3508:50;3547:10;3508:11;:25;3520:12;:10;:12::i;:::-;-1:-1:-1;;;;;3508:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;3508:25:0;;;:34;;;;;;;;;;;:38;:50::i;13209:110::-;13287:5;;13281:30;;;-1:-1:-1;;;13281:30:0;;;;13254:7;;-1:-1:-1;;;;;13287:5:0;;13281:28;;:30;;;;;;;;;;;;;;13287:5;13281:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13274:37;;13209:110;:::o;2446:119::-;-1:-1:-1;;;;;2539:18:0;2512:7;2539:18;;;;;;;;;;;;2446:119::o;14379:124::-;14432:4;14456:39;14485:9;:7;:9::i;:::-;14456:14;:12;:14::i;:::-;:28;;:39::i;1597:140::-;1425:9;:7;:9::i;:::-;1417:54;;;;-1:-1:-1;;;1417:54:0;;;;;;;:::i;:::-;1680:6:::1;::::0;1659:40:::1;::::0;1696:1:::1;::::0;-1:-1:-1;;;;;1680:6:0::1;::::0;1659:40:::1;::::0;1696:1;;1659:40:::1;1710:6;:19:::0;;-1:-1:-1;;;;;;1710:19:0::1;::::0;;1597:140::o;14511:165::-;14564:4;14581:10;14594:22;:20;:22::i;:::-;14581:35;;14634:34;14654:13;:11;:13::i;:::-;14634:15;:5;14644:4;14634:9;:15::i;:34::-;14627:41;;;14511:165;:::o;13327:344::-;13366:18;13387:11;:9;:11::i;:::-;13430:8;;13366:32;;-1:-1:-1;;;;13430:8:0;;;;13415:23;;;;;;;;:11;:23;;;;;;;;;13411:70;;13455:14;:12;:14::i;:::-;13509:1;13497:9;:7;:9::i;:::-;:13;13493:136;;;13546:12;13531:11;:27;;;;;;;;;13527:91;;;13579:23;13592:9;:7;:9::i;:::-;13579:12;:23::i;:::-;13641:8;:22;;13652:11;;13641:8;-1:-1:-1;;;;13641:22:0;-1:-1:-1;;;13652:11:0;13641:22;;;;;;;;;;;;;13327:344;:::o;1300:79::-;1365:6;;-1:-1:-1;;;;;1365:6:0;1300:79;:::o;1497:94::-;1577:6;;1537:4;;-1:-1:-1;;;;;1577:6:0;1561:12;:10;:12::i;:::-;-1:-1:-1;;;;;1561:22:0;;1554:29;;1497:94;:::o;5989:87::-;6061:7;6054:14;;;;;;;;-1:-1:-1;;6054:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6028:13;;6054:14;;6061:7;;6054:14;;6061:7;6054:14;;;;;;;;;;;;;;;;;;;;;;;;12988:92;13056:5;;13037;;13030:42;;-1:-1:-1;;;;;13037:5:0;;;;13056;-1:-1:-1;;13030:25:0;:42::i;:::-;12988:92::o;12892:88::-;12960:12;12892:88;:::o;3595:261::-;3680:4;3697:129;3706:12;:10;:12::i;:::-;3720:7;3729:96;3768:15;3729:96;;;;;;;;;;;;;;;;;:11;:25;3741:12;:10;:12::i;:::-;-1:-1:-1;;;;;3729:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;3729:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;2571:167::-;2649:4;2666:42;2676:12;:10;:12::i;:::-;2690:9;2701:6;2666:9;:42::i;13088:113::-;13162:5;;13155:38;;-1:-1:-1;;;13155:38:0;;13128:7;;-1:-1:-1;;;;;13162:5:0;;13155:23;;:38;;13187:4;;13155:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11611:633;6345:13;:18;;6362:1;6345:18;;;;;11701:11;11693:54:::1;;;;-1:-1:-1::0;;;11693:54:0::1;;;;;;;:::i;:::-;11765:22;:20;:22::i;:::-;11758:4;:29:::0;11807:5:::1;::::0;11800:66:::1;::::0;-1:-1:-1;;;;;11807:5:0::1;11831:10;11851:4;11858:7:::0;11800:30:::1;:66::i;:::-;11879:14;11912:4;;11920:1;11912:9;11908:231;;;-1:-1:-1::0;11969:4:0::1;:14:::0;;;11947:7;11908:231:::1;;;12070:57;12122:4;12070:47;12113:3;12070:38;12103:4;;12071:26;12083:13;:11;:13::i;:::-;12071:7:::0;;:11:::1;:26::i;12070:38::-;:42:::0;::::1;:47::i;:57::-;12061:66;;11908:231;12156:22;:20;:22::i;:::-;12149:4;:29:::0;12189:25:::1;12195:10;12207:6:::0;12189:5:::1;:25::i;:::-;12225:11;:9;:11::i;:::-;6421:1;6457:13:::0;;6441:12;:29;6433:73;;;;-1:-1:-1;;;6433:73:0;;;;;;;:::i;2744:143::-;-1:-1:-1;;;;;2852:18:0;;;2825:7;2852:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2744:143::o;1743:109::-;1425:9;:7;:9::i;:::-;1417:54;;;;-1:-1:-1;;;1417:54:0;;;;;;;:::i;:::-;1816:28:::1;1835:8;1816:18;:28::i;:::-;1743:109:::0;:::o;11231:20::-;;;-1:-1:-1;;;;;11231:20:0;;:::o;9263:347::-;9359:10;;;9358:62;;-1:-1:-1;9375:39:0;;-1:-1:-1;;;9375:39:0;;-1:-1:-1;;;;;9375:15:0;;;;;:39;;9399:4;;9406:7;;9375:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;9358:62;9350:152;;;;-1:-1:-1;;;9350:152:0;;;;;;;:::i;:::-;9513:89;9532:5;9562:22;;;9586:7;9595:5;9539:62;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;9539:62:0;;;;;;;;;;;;;;-1:-1:-1;;;;;9539:62:0;-1:-1:-1;;;;;;9539:62:0;;;;;;;;;;9513:18;:89::i;:::-;9263:347;;;:::o;7995:317::-;8055:4;8221:20;;8121:66;8261:15;;;;;:42;;;8292:11;8280:8;:23;;8261:42;8253:51;7995:317;-1:-1:-1;;;;7995:317:0:o;798:98::-;878:10;798:98;:::o;5007:338::-;-1:-1:-1;;;;;5101:19:0;;5093:68;;;;-1:-1:-1;;;5093:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5180:21:0;;5172:68;;;;-1:-1:-1;;;5172:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5253:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;5305:32;;;;;5283:6;;5305:32;:::i;:::-;;;;;;;;5007:338;;;:::o;3862:471::-;-1:-1:-1;;;;;3960:20:0;;3952:70;;;;-1:-1:-1;;;3952:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4041:23:0;;4033:71;;;;-1:-1:-1;;;4033:71:0;;;;;;;:::i;:::-;4137;4159:6;4137:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4137:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;4117:17:0;;;:9;:17;;;;;;;;;;;:91;;;;4242:20;;;;;;;:32;;4267:6;4242:24;:32::i;:::-;-1:-1:-1;;;;;4219:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;4290:35;;;;;;;;;;4318:6;;4290:35;:::i;6874:192::-;6960:7;6996:12;6988:6;;;;6980:29;;;;-1:-1:-1;;;6980:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;7032:5:0;;;6874:192::o;7072:250::-;7130:7;7154:6;7150:47;;-1:-1:-1;7184:1:0;7177:8;;7150:47;7221:5;;;7225:1;7221;:5;:1;7245:5;;;;;:10;7237:56;;;;-1:-1:-1;;;7237:56:0;;;;;;;:::i;:::-;7313:1;7072:250;-1:-1:-1;;;7072:250:0:o;7328:132::-;7386:7;7413:39;7417:1;7420;7413:39;;;;;;;;;;;;;;;;;:3;:39::i;4653:348::-;-1:-1:-1;;;;;4729:21:0;;4721:67;;;;-1:-1:-1;;;4721:67:0;;;;;;;:::i;:::-;4822:68;4845:6;4822:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4822:18:0;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;4801:18:0;;:9;:18;;;;;;;;;;:89;4916:12;;:24;;4933:6;4916:16;:24::i;:::-;4901:12;:39;4956:37;;4982:1;;-1:-1:-1;;;;;4956:37:0;;;;;;;4986:6;;4956:37;:::i;:::-;;;;;;;;4653:348;;:::o;6732:136::-;6790:7;6817:43;6821:1;6824;6817:43;;;;;;;;;;;;;;;;;:3;:43::i;13854:216::-;13912:4;13929:14;13946;:12;:14::i;:::-;13929:31;-1:-1:-1;13977:10:0;;13973:66;;14004:23;14019:7;14004:14;:23::i;8867:176::-;8950:85;8969:5;8999:23;;;9024:2;9028:5;8976:58;;;;;;;;;:::i;6545:181::-;6603:7;6635:5;;;6659:6;;;;6651:46;;;;-1:-1:-1;;;6651:46:0;;;;;;;:::i;13679:167::-;13723:14;13740;:12;:14::i;:::-;13723:31;-1:-1:-1;13771:10:0;;13767:72;;13798:29;13813:13;:6;13824:1;13813:10;:13::i;:::-;13798:14;:29::i;14078:140::-;14147:5;;14141:40;;-1:-1:-1;;;14141:40:0;;14184:1;;-1:-1:-1;;;;;14147:5:0;;14141:20;;:40;;14162:10;;14174:6;;14141:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;14133:77;;;;-1:-1:-1;;;14133:77:0;;;;;;;:::i;9051:204::-;9152:95;9171:5;9201:27;;;9230:4;9236:2;9240:5;9178:68;;;;;;;;;;:::i;9152:95::-;9051:204;;;;:::o;4339:308::-;-1:-1:-1;;;;;4415:21:0;;4407:65;;;;-1:-1:-1;;;4407:65:0;;;;;;;:::i;:::-;4500:12;;:24;;4517:6;4500:16;:24::i;:::-;4485:12;:39;-1:-1:-1;;;;;4556:18:0;;:9;:18;;;;;;;;;;;:30;;4579:6;4556:22;:30::i;:::-;-1:-1:-1;;;;;4535:18:0;;:9;:18;;;;;;;;;;;:51;;;;4602:37;;4535:18;;:9;4602:37;;;;4632:6;;4602:37;:::i;1858:229::-;-1:-1:-1;;;;;1932:22:0;;1924:73;;;;-1:-1:-1;;;1924:73:0;;;;;;;:::i;:::-;2034:6;;2013:38;;-1:-1:-1;;;;;2013:38:0;;;;2034:6;;2013:38;;2034:6;;2013:38;2062:6;:17;;-1:-1:-1;;;;;;2062:17:0;-1:-1:-1;;;;;2062:17:0;;;;;;;;;;1858:229::o;10247:453::-;10335:27;10343:5;-1:-1:-1;;;;;10335:25:0;;:27::i;:::-;10327:71;;;;-1:-1:-1;;;10327:71:0;;;;;;;:::i;:::-;10412:12;10426:23;10461:5;-1:-1:-1;;;;;10453:19:0;10473:4;10453:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10411:67;;;;10497:7;10489:52;;;;-1:-1:-1;;;10489:52:0;;;;;;;:::i;:::-;10558:17;;:21;10554:139;;10615:10;10604:30;;;;;;;;;;;;:::i;:::-;10596:85;;;;-1:-1:-1;;;10596:85:0;;;;;;;:::i;7466:191::-;7552:7;7587:12;7580:5;7572:28;;;;-1:-1:-1;;;7572:28:0;;;;;;;;:::i;:::-;;7611:9;7627:1;7623;:5;;;;;;;7466:191;-1:-1:-1;;;;;7466:191:0:o;14226:145::-;14297:5;;14291:41;;-1:-1:-1;;;14291:41:0;;14335:1;;-1:-1:-1;;;;;14297:5:0;;14291:21;;:41;;14313:10;;14325:6;;14291:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;14283:80;;;;-1:-1:-1;;;14283:80:0;;;;;;;:::i;5:130:-1:-;72:20;;-1:-1;;;;;24127:54;;25424:35;;25414:2;;25473:1;;25463:12;555:241;;659:2;647:9;638:7;634:23;630:32;627:2;;;-1:-1;;665:12;627:2;727:53;772:7;748:22;727:53;:::i;803:366::-;;;924:2;912:9;903:7;899:23;895:32;892:2;;;-1:-1;;930:12;892:2;992:53;1037:7;1013:22;992:53;:::i;:::-;982:63;;1100:53;1145:7;1082:2;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;886:283;;;;;:::o;1176:491::-;;;;1314:2;1302:9;1293:7;1289:23;1285:32;1282:2;;;-1:-1;;1320:12;1282:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1372:63;-1:-1;1472:2;1511:22;;72:20;97:33;72:20;97:33;:::i;:::-;1276:391;;1480:63;;-1:-1;;;1580:2;1619:22;;;;344:20;;1276:391::o;1674:366::-;;;1795:2;1783:9;1774:7;1770:23;1766:32;1763:2;;;-1:-1;;1801:12;1763:2;1863:53;1908:7;1884:22;1863:53;:::i;:::-;1853:63;1953:2;1992:22;;;;344:20;;-1:-1;;;1757:283::o;2047:257::-;;2159:2;2147:9;2138:7;2134:23;2130:32;2127:2;;;-1:-1;;2165:12;2127:2;223:6;217:13;25570:5;23904:13;23897:21;25548:5;25545:32;25535:2;;-1:-1;;25581:12;2311:241;;2415:2;2403:9;2394:7;2390:23;2386:32;2383:2;;;-1:-1;;2421:12;2383:2;-1:-1;344:20;;2377:175;-1:-1;2377:175::o;2559:263::-;;2674:2;2662:9;2653:7;2649:23;2645:32;2642:2;;;-1:-1;;2680:12;2642:2;-1:-1;492:13;;2636:186;-1:-1;2636:186::o;11473:271::-;;3369:5;23245:12;3480:52;3525:6;3520:3;3513:4;3506:5;3502:16;3480:52;:::i;:::-;3544:16;;;;;11607:137;-1:-1;;11607:137::o;11751:222::-;-1:-1;;;;;24127:54;;;;3049:37;;11878:2;11863:18;;11849:124::o;11980:349::-;-1:-1;;;;;24127:54;;;;2908:58;;12315:2;12300:18;;11310:37;12143:2;12128:18;;12114:215::o;12336:333::-;-1:-1;;;;;24127:54;;;3049:37;;24127:54;;12655:2;12640:18;;3049:37;12491:2;12476:18;;12462:207::o;12676:444::-;-1:-1;;;;;24127:54;;;3049:37;;24127:54;;;;13023:2;13008:18;;3049:37;13106:2;13091:18;;11310:37;;;;12859:2;12844:18;;12830:290::o;13467:210::-;23904:13;;23897:21;3163:34;;13588:2;13573:18;;13559:118::o;13684:240::-;13820:2;13805:18;;25336:1;25326:12;;25316:2;;25342:9;25316:2;3652:59;;;13791:133;:::o;13931:310::-;;14078:2;14099:17;14092:47;3868:5;23245:12;23684:6;14078:2;14067:9;14063:18;23672:19;3962:52;4007:6;23712:14;14067:9;23712:14;14078:2;3988:5;3984:16;3962:52;:::i;:::-;25235:7;25219:14;-1:-1;;25215:28;4026:39;;;;23712:14;4026:39;;14049:192;-1:-1;;14049:192::o;14248:416::-;14448:2;14462:47;;;4302:2;14433:18;;;23672:19;4338:34;23712:14;;;4318:55;-1:-1;;;4393:12;;;4386:27;4432:12;;;14419:245::o;14671:416::-;14871:2;14885:47;;;4683:2;14856:18;;;23672:19;4719:34;23712:14;;;4699:55;-1:-1;;;4774:12;;;4767:30;4816:12;;;14842:245::o;15094:416::-;15294:2;15308:47;;;5067:2;15279:18;;;23672:19;5103:34;23712:14;;;5083:55;-1:-1;;;5158:12;;;5151:26;5196:12;;;15265:245::o;15517:416::-;15717:2;15731:47;;;5447:2;15702:18;;;23672:19;5483:29;23712:14;;;5463:50;5532:12;;;15688:245::o;15940:416::-;16140:2;16154:47;;;5783:2;16125:18;;;23672:19;-1:-1;;;23712:14;;;5799:45;5863:12;;;16111:245::o;16363:416::-;16563:2;16577:47;;;16548:18;;;23672:19;6150:34;23712:14;;;6130:55;6204:12;;;16534:245::o;16786:416::-;16986:2;17000:47;;;6455:2;16971:18;;;23672:19;-1:-1;;;23712:14;;;6471:43;6533:12;;;16957:245::o;17209:416::-;17409:2;17423:47;;;6784:2;17394:18;;;23672:19;6820:34;23712:14;;;6800:55;-1:-1;;;6875:12;;;6868:25;6912:12;;;17380:245::o;17632:416::-;17832:2;17846:47;;;17817:18;;;23672:19;7199:34;23712:14;;;7179:55;7253:12;;;17803:245::o;18055:416::-;18255:2;18269:47;;;7504:2;18240:18;;;23672:19;-1:-1;;;23712:14;;;7520:43;7582:12;;;18226:245::o;18478:416::-;18678:2;18692:47;;;7833:2;18663:18;;;23672:19;7869:33;23712:14;;;7849:54;7922:12;;;18649:245::o;18901:416::-;19101:2;19115:47;;;8173:2;19086:18;;;23672:19;8209:34;23712:14;;;8189:55;-1:-1;;;8264:12;;;8257:25;8301:12;;;19072:245::o;19324:416::-;19524:2;19538:47;;;8552:2;19509:18;;;23672:19;8588:34;23712:14;;;8568:55;-1:-1;;;8643:12;;;8636:29;8684:12;;;19495:245::o;19747:416::-;19947:2;19961:47;;;8935:2;19932:18;;;23672:19;8971:34;23712:14;;;8951:55;-1:-1;;;9026:12;;;9019:28;9066:12;;;19918:245::o;20170:416::-;20370:2;20384:47;;;9317:2;20355:18;;;23672:19;9353:32;23712:14;;;9333:53;9405:12;;;20341:245::o;20593:416::-;20793:2;20807:47;;;9656:2;20778:18;;;23672:19;9692:34;23712:14;;;9672:55;-1:-1;;;9747:12;;;9740:34;9793:12;;;20764:245::o;21016:416::-;21216:2;21230:47;;;10044:2;21201:18;;;23672:19;10080:33;23712:14;;;10060:54;10133:12;;;21187:245::o;21439:416::-;21639:2;21653:47;;;10384:2;21624:18;;;23672:19;10420:34;23712:14;;;10400:55;-1:-1;;;10475:12;;;10468:46;10533:12;;;21610:245::o;21862:416::-;22062:2;22076:47;;;10784:2;22047:18;;;23672:19;10820:33;23712:14;;;10800:54;10873:12;;;22033:245::o;22285:416::-;22485:2;22499:47;;;11124:2;22470:18;;;23672:19;11160:33;23712:14;;;11140:54;11213:12;;;22456:245::o;22708:222::-;11310:37;;;22835:2;22820:18;;22806:124::o;22937:214::-;24343:4;24332:16;;;;11426:35;;23060:2;23045:18;;23031:120::o;24875:268::-;24940:1;24947:101;24961:6;24958:1;24955:13;24947:101;;;25028:11;;;25022:18;25009:11;;;25002:39;24983:2;24976:10;24947:101;;;25063:6;25060:1;25057:13;25054:2;;;-1:-1;;24940:1;25110:16;;25103:27;24924:219::o;25365:117::-;-1:-1;;;;;24127:54;;25424:35;;25414:2;;25473:1;;25463:12

Swarm Source

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