Contract 0x17bfbdf2d11d8f909775bafc6af43fbf3ba86000

Contract Overview

Balance:
0 BNB
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xf16fa234f454815e51cdb79e0045197c6975e06e8948c6881c95dc3e80a68a7a0x6080604079725072021-04-14 13:41:33158 days 12 hrs ago0xcfb384cc709216cfb81c0fe2ec931aea689bc472 IN  Contract Creation0 BNB0.01106527
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x941b3278254713425b020c0b3e92091536976ef447b799adfcff2c47565c8646122328932021-09-10 2:27:549 days 23 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x47d66e581c693b5ee75ca64b916bb0f81e3adc5870fa199ed1e4bf0042d2fceb122328562021-09-10 2:26:039 days 23 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x57229743d745df5f37b06b63b4897ae92722730ee7bfe2d36fee7527fc7ae1ca122327642021-09-10 2:21:279 days 23 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x80cca3cceb6d210e1bc1dd1cf43efe76816a2cdfbb24f74c8e130797e7cf4e6a122327002021-09-10 2:18:159 days 23 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x80cca3cceb6d210e1bc1dd1cf43efe76816a2cdfbb24f74c8e130797e7cf4e6a122327002021-09-10 2:18:159 days 23 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xcf8d65015e666a5efa8acef61f29e75b391b1fd0cc2ff8e26b9a60df4d1df3a7122140662021-09-09 10:46:2310 days 15 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xcf8d65015e666a5efa8acef61f29e75b391b1fd0cc2ff8e26b9a60df4d1df3a7122140662021-09-09 10:46:2310 days 15 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xf2f0ba4d1be3c595b7db1b9f5f6d633084d5e775bb9062279da07c3a3abbd81d122139862021-09-09 10:42:2310 days 15 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xc65aa00d0404d9f97c1884fd75360c047dca681ee9a6be4a942b1656841cb319122103562021-09-09 7:40:4310 days 18 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xc65aa00d0404d9f97c1884fd75360c047dca681ee9a6be4a942b1656841cb319122103562021-09-09 7:40:4310 days 18 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x126573119221b50e9b5a358daf09537c8d2d6075520070a9eb79be739bb22bf7119799142021-09-01 6:15:4518 days 19 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xe0eb21cbfe7c3f0c64130882d650e5dd281a439159f4421fad5fb6695e0a96eb119798112021-09-01 6:10:3618 days 19 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xa4b292d69330af886dc62bb0c02707f582343f17333a3c0d4f5af4f3e483c25e119549102021-08-31 9:10:0219 days 16 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x3d08a2b36808a5b61d6f778ccc6640efaed84c15479a273133908136b7a7ca7f119548962021-08-31 9:09:2019 days 16 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x900e28372d5045b6907c94c95c28b4576b698b5f65d365c2eac6380641e34f77119540452021-08-31 8:26:4719 days 17 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xd507031db503d5137ad4b227ebe858b4426eb299acfb66326c1652979cf18523119531372021-08-31 7:41:2319 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xf9434aad770d7b39900c8ce392be42b31031951a3fb4a9855a0baeb91d95daf6119531312021-08-31 7:41:0519 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0xf9434aad770d7b39900c8ce392be42b31031951a3fb4a9855a0baeb91d95daf6119531312021-08-31 7:41:0519 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x71e3265d8e0f3bc5ea286db97e349cca59f2b725950fdd29ff8da277e0b42a77119530462021-08-31 7:36:5019 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x71e3265d8e0f3bc5ea286db97e349cca59f2b725950fdd29ff8da277e0b42a77119530462021-08-31 7:36:5019 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x79227ea04b670a0e44c29b76dafaecce497294f6e22702808a792fa3c82a1cfa119526362021-08-31 7:16:2019 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x79227ea04b670a0e44c29b76dafaecce497294f6e22702808a792fa3c82a1cfa119526362021-08-31 7:16:2019 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x068985d97a932826df07a0f6c7c67c58400ca3980fc04036dda2c5179bd589b1119526232021-08-31 7:15:4119 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x5781411a2da635dddd0103a4154c86dffce65686f11196658d0da22f27f2f4ae119524412021-08-31 7:06:3519 days 18 hrs ago 0xba1c7c6e3b1bbb01c21c5fd1421bd11fcdf3d479 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
0x6572e37fe658957c6db9c7d95b3e6202f61c1b5b1c64b478e855e8781bf5352e119524372021-08-31 7:06:2319 days 18 hrs ago 0x25539463a1fb2d3a100d9763395d71e1b8209825 0x17bfbdf2d11d8f909775bafc6af43fbf3ba860000 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Rate

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at BscScan.com on 2021-04-19
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.12;

library SafeMath {
  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    require(c / a == b, 'INVALID_MUL');
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0, 'INVALID_DIV'); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a, 'INVALID_SUB');
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a, 'INVALID_ADD');
    return c;
  }
}
contract TimeLock {

    enum Functions { 
        TRANSFER_OWNER_SHIP,
        CHANGE_RISK_FREE_RATE, 
        CHANGE_KICK,
        CHANGE_MAX_BORROW_RATE
    } 

    using SafeMath for uint256;
  
    address public owner;

    mapping(Functions => LockTransaction) public lockTransactionOf;

    uint256 public constant GRACE_PERIOD = 30 days;
    uint256 public constant MINIMUM_DELAY = 3 days;
    uint256 public constant MAXIMUM_DELAY = 30 days;
    uint256 public DELAY;

    struct LockTransaction {
        bool queued;
        uint256 executeTime;
    }

    modifier onlyOwner()
    {
        require(msg.sender == owner, 'ONLY_OWNER');
        _;
    }

    modifier isQueued(Functions _fn) 
    {
        LockTransaction memory _lock = lockTransactionOf[_fn];
        require(_lock.queued == true, "TLConf::01");
        require(_lock.executeTime <= block.timestamp, "TLConf::02");
        require(_lock.executeTime.add(GRACE_PERIOD) >= block.timestamp, "TLConf::03");
        _;
    }

    event onQueuedTransaction(Functions _fn, uint256 _executeTime);
    event onCancelTransaction(Functions _fn);

    constructor() public {
        owner = msg.sender;
    }

    function setDelay(uint delay_) public onlyOwner {
        require(delay_ >= MINIMUM_DELAY , 'INVALID_MINIMUM_DELAY');
        require(delay_ <= MAXIMUM_DELAY, 'INVALID_MAXIMUM_DELAY');
        DELAY = delay_;
    }

    function cancelTransaction(Functions _fn) public onlyOwner 
    {
        /*------------------------- declare ------------------------------------*/
        LockTransaction storage _lock = lockTransactionOf[_fn];
        /*------------------------- handle -------------------------------------*/
        _lock.queued = false;
        /*------------------------- response -------------------------------------*/
        emit onCancelTransaction(_fn);
    }

    function queuedTransaction(Functions _fn) public onlyOwner 
    {
        /*------------------------- declare ------------------------------------*/
        LockTransaction storage _lock = lockTransactionOf[_fn];
        /*------------------------- handle -------------------------------------*/
        _lock.executeTime = block.timestamp.add(DELAY);
        _lock.queued = true;
        /*------------------------- response -------------------------------------*/
        emit onQueuedTransaction(_fn, _lock.executeTime);
    }

    function transferOwnership(address _owner) public onlyOwner isQueued(Functions.TRANSFER_OWNER_SHIP) 
    {
        /*------------------------- declare ------------------------------------*/
        LockTransaction storage _lock = lockTransactionOf[Functions.TRANSFER_OWNER_SHIP];
        /*------------------------- validate -----------------------------------*/
        require(_owner != address(0), "INVALID_ADDRESS");
        /*------------------------- handle -------------------------------------*/
        owner = _owner;
        _lock.queued = false;
    }
}


contract Rate is TimeLock {
	
  uint256 public version = 300;
  using SafeMath for uint256;

  uint256 public KICK = 80 * 1e10; // 1e12 (8 / 100) * 1e10
  uint256 public MAX_BORROW_RATE = 25 * 1e10; // 25%	
  uint256 public RISK_FREE_RATE = 15384615384; // 100% = 1e12;
  uint256 public constant ONE_PERCENT = 1e12;

  function changeRiskFreeRate(uint256 _value) public onlyOwner isQueued(Functions.CHANGE_RISK_FREE_RATE) 
  {
     /*------------------------- declare ------------------------------------*/
        LockTransaction storage _lock = lockTransactionOf[Functions.CHANGE_RISK_FREE_RATE];
        /*------------------------- validate -----------------------------------*/
        require(_value > 0, "INVALID::AMOUNT");
        /*------------------------- handle -------------------------------------*/
        RISK_FREE_RATE = _value;
        _lock.queued = false;
        /*------------------------- response -------------------------------------*/
  }

  function changeKick(uint256 _value) public onlyOwner isQueued(Functions.CHANGE_KICK) 
  {
     /*------------------------- declare ------------------------------------*/
        LockTransaction storage _lock = lockTransactionOf[Functions.CHANGE_KICK];
        /*------------------------- validate -----------------------------------*/
        require(_value >= 0 && _value <= 1e12, "INVALID::AMOUNT");
        /*------------------------- handle -------------------------------------*/
        KICK = _value;
        _lock.queued = false;
        /*------------------------- response -------------------------------------*/
  }

  function changeMaxBorrowRate(uint256 _value) public onlyOwner isQueued(Functions.CHANGE_MAX_BORROW_RATE) 
  {
     /*------------------------- declare ------------------------------------*/
        LockTransaction storage _lock = lockTransactionOf[Functions.CHANGE_MAX_BORROW_RATE];
        /*------------------------- validate -----------------------------------*/
        require(_value > 0, "INVALID::AMOUNT");
        /*------------------------- handle -------------------------------------*/
        MAX_BORROW_RATE = _value;
        _lock.queued = false;
        /*------------------------- response -------------------------------------*/
  }
	// ----------------------------------------------------------------------------
  /**
	* Load::calUtilizationRate
  * @notice calculate the utilization rate
  */
  function calUtilizationRate(uint256 _totalDemand, uint256 _totalSupply) public pure returns (uint256) {
    if (_totalSupply <= 0) {
      return 0;
    }
    return _totalDemand.mul(1e12).div(_totalSupply); 
  }
 	/**
	* Load::calBorrowRate
  * @notice calculate the current borrow rate 
  * borrowing interest rate = rf(1 + 2 * utilisation rate ) / 1e12;
  * risk free rate:10000
  */
	function calBorrowRate(uint256 _totalDemand, uint256 _totalSupply) public view returns(uint256) {
    
		uint256 _utilizationRate = calUtilizationRate(_totalDemand, _totalSupply);

    uint256 baseRate = RISK_FREE_RATE
                        .mul((_utilizationRate.mul(2)).add(ONE_PERCENT))
                        .div(ONE_PERCENT); 

    if (_utilizationRate <= KICK) {
      return baseRate;
    } 
    /**
    * 
      rate = (max - _normalRate) * _utilizationRate / (1 - kick) + ( - max * kick + normalRate) / (1 - kick)
    */
    uint256 _normalRate = RISK_FREE_RATE
                            .mul((KICK.mul(2)).add(ONE_PERCENT))
                            .div(ONE_PERCENT); 

    if (MAX_BORROW_RATE <= _normalRate) {
      return _normalRate;
    }
    uint256 _rate = (MAX_BORROW_RATE.sub(_normalRate))
                      .mul(_utilizationRate)
                      .div(ONE_PERCENT.sub(KICK));

    uint256 _subRate =  (
                          (MAX_BORROW_RATE.mul(KICK))
                            .sub(_normalRate.mul(ONE_PERCENT) 
                        )
                        .div(ONE_PERCENT.sub(KICK)));

    return _rate.sub(_subRate);
	}
}

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum TimeLock.Functions","name":"_fn","type":"uint8"}],"name":"onCancelTransaction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"enum TimeLock.Functions","name":"_fn","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"_executeTime","type":"uint256"}],"name":"onQueuedTransaction","type":"event"},{"inputs":[],"name":"DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"KICK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_BORROW_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ONE_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RISK_FREE_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalDemand","type":"uint256"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"name":"calBorrowRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_totalDemand","type":"uint256"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"name":"calUtilizationRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"enum TimeLock.Functions","name":"_fn","type":"uint8"}],"name":"cancelTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"changeKick","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"changeMaxBorrowRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"changeRiskFreeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum TimeLock.Functions","name":"","type":"uint8"}],"name":"lockTransactionOf","outputs":[{"internalType":"bool","name":"queued","type":"bool"},{"internalType":"uint256","name":"executeTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum TimeLock.Functions","name":"_fn","type":"uint8"}],"name":"queuedTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405261012c60035564ba43b74000600455643a35294400600555640394fe99d860065534801561003157600080fd5b50600080546001600160a01b03191633179055611135806100536000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806386fb1624116100ad578063bbba68b611610071578063bbba68b614610266578063c1a287e214610205578063e177246e146102a1578063e70dd625146102be578063f2fde38b146102de5761012c565b806386fb16241461020d5780638da5cb5b1461022a578063a548105d1461024e578063b1b43ae514610256578063bb2eb4d21461025e5761012c565b806354fd4d50116100f457806354fd4d50146101cd57806360ff87a4146101d557806369b41170146101f55780637a0c5ebf146101fd5780637d645fab146102055761012c565b8063012dab3a146101315780630799caa0146101505780632603678b1461016a57806334bcbd6e14610187578063391c8b2e146101aa575b600080fd5b61014e6004803603602081101561014757600080fd5b5035610304565b005b610158610504565b60408051918252519081900360200190f35b61014e6004803603602081101561018057600080fd5b503561050a565b6101586004803603604081101561019d57600080fd5b508035906020013561070a565b610158600480360360408110156101c057600080fd5b5080359060200135610841565b61015861086c565b61014e600480360360208110156101eb57600080fd5b503560ff16610872565b610158610960565b610158610966565b61015861096c565b61014e6004803603602081101561022357600080fd5b5035610973565b610232610b7b565b604080516001600160a01b039092168252519081900360200190f35b610158610b8a565b610158610b90565b610158610b97565b6102866004803603602081101561027c57600080fd5b503560ff16610ba0565b60408051921515835260208301919091528051918290030190f35b61014e600480360360208110156102b757600080fd5b5035610bbf565b61014e600480360360208110156102d457600080fd5b503560ff16610cb0565b61014e600480360360208110156102f457600080fd5b50356001600160a01b0316610d7d565b6000546001600160a01b03163314610350576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b600361035a6110e8565b6001600083600381111561036a57fe5b600381111561037557fe5b815260208082019290925260409081016000208151808301909252805460ff16151580835260019182015493830193909352909250146103e9576040805162461bcd60e51b815260206004820152600a602482015269544c436f6e663a3a303160b01b604482015290519081900360640190fd5b428160200151111561042f576040805162461bcd60e51b815260206004820152600a6024820152692a2621b7b7331d1d181960b11b604482015290519081900360640190fd5b602081015142906104439062278d00610fa0565b1015610483576040805162461bcd60e51b815260206004820152600a602482015269544c436f6e663a3a303360b01b604482015290519081900360640190fd5b600360005260016020527f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b836104f2576040805162461bcd60e51b815260206004820152600f60248201526e125395905312510e8e905353d55395608a1b604482015290519081900360640190fd5b6005939093555050805460ff19169055565b60045481565b6000546001600160a01b03163314610556576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b60016105606110e8565b6001600083600381111561057057fe5b600381111561057b57fe5b815260208082019290925260409081016000208151808301909252805460ff16151580835260019182015493830193909352909250146105ef576040805162461bcd60e51b815260206004820152600a602482015269544c436f6e663a3a303160b01b604482015290519081900360640190fd5b4281602001511115610635576040805162461bcd60e51b815260206004820152600a6024820152692a2621b7b7331d1d181960b11b604482015290519081900360640190fd5b602081015142906106499062278d00610fa0565b1015610689576040805162461bcd60e51b815260206004820152600a602482015269544c436f6e663a3a303360b01b604482015290519081900360640190fd5b600160008190526020527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f836106f8576040805162461bcd60e51b815260206004820152600f60248201526e125395905312510e8e905353d55395608a1b604482015290519081900360640190fd5b6006939093555050805460ff19169055565b6000806107178484610841565b9050600061074b64e8d4a5100061074561073c82610736876002610fe8565b90610fa0565b60065490610fe8565b90611045565b9050600454821161075f57915061083b9050565b600061078c64e8d4a5100061074561073c64e8d4a510006107366002600454610fe890919063ffffffff16565b905080600554116107a157925061083b915050565b60006107df6107c060045464e8d4a5100061109d90919063ffffffff16565b610745866107d98660055461109d90919063ffffffff16565b90610fe8565b9050600061082761080060045464e8d4a5100061109d90919063ffffffff16565b6107456108128664e8d4a51000610fe8565b60045460055461082191610fe8565b9061109d565b9050610833828261109d565b955050505050505b92915050565b60008082116108525750600061083b565b610865826107458564e8d4a51000610fe8565b9392505050565b60035481565b6000546001600160a01b031633146108be576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6000600160008360038111156108d057fe5b60038111156108db57fe5b8152602001908152602001600020905061090060025442610fa090919063ffffffff16565b6001808301829055825460ff19161782556040517f2750180134a7141597efe494a023e1de200534e6bdbf4d68443c20731701c7c39184918083600381111561094557fe5b81526020018281526020019250505060405180910390a15050565b60025481565b60055481565b62278d0081565b6000546001600160a01b031633146109bf576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b60026109c96110e8565b600160008360038111156109d957fe5b60038111156109e457fe5b815260208082019290925260409081016000208151808301909252805460ff1615158083526001918201549383019390935290925014610a58576040805162461bcd60e51b815260206004820152600a602482015269544c436f6e663a3a303160b01b604482015290519081900360640190fd5b4281602001511115610a9e576040805162461bcd60e51b815260206004820152600a6024820152692a2621b7b7331d1d181960b11b604482015290519081900360640190fd5b60208101514290610ab29062278d00610fa0565b1015610af2576040805162461bcd60e51b815260206004820152600a602482015269544c436f6e663a3a303360b01b604482015290519081900360640190fd5b600260005260016020527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f64e8d4a51000841115610b69576040805162461bcd60e51b815260206004820152600f60248201526e125395905312510e8e905353d55395608a1b604482015290519081900360640190fd5b6004939093555050805460ff19169055565b6000546001600160a01b031681565b60065481565b6203f48081565b64e8d4a5100081565b6001602081905260009182526040909120805491015460ff9091169082565b6000546001600160a01b03163314610c0b576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6203f480811015610c5b576040805162461bcd60e51b8152602060048201526015602482015274494e56414c49445f4d494e494d554d5f44454c415960581b604482015290519081900360640190fd5b62278d00811115610cab576040805162461bcd60e51b8152602060048201526015602482015274494e56414c49445f4d4158494d554d5f44454c415960581b604482015290519081900360640190fd5b600255565b6000546001600160a01b03163314610cfc576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b600060016000836003811115610d0e57fe5b6003811115610d1957fe5b815260208101919091526040908101600020805460ff1916815590519091507f8601523a44261067758b7786fcd66c33669bd716969a7f6bff9bb0f70f8bbf7190839080826003811115610d6957fe5b815260200191505060405180910390a15050565b6000546001600160a01b03163314610dc9576040805162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b604482015290519081900360640190fd5b6000610dd36110e8565b60016000836003811115610de357fe5b6003811115610dee57fe5b815260208082019290925260409081016000208151808301909252805460ff1615158083526001918201549383019390935290925014610e62576040805162461bcd60e51b815260206004820152600a602482015269544c436f6e663a3a303160b01b604482015290519081900360640190fd5b4281602001511115610ea8576040805162461bcd60e51b815260206004820152600a6024820152692a2621b7b7331d1d181960b11b604482015290519081900360640190fd5b60208101514290610ebc9062278d00610fa0565b1015610efc576040805162461bcd60e51b815260206004820152600a602482015269544c436f6e663a3a303360b01b604482015290519081900360640190fd5b6000805260016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb496001600160a01b038416610f73576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0395909516949094179093555050805460ff19169055565b600082820183811015610865576040805162461bcd60e51b815260206004820152600b60248201526a1253959053125117d0511160aa1b604482015290519081900360640190fd5b600082610ff75750600061083b565b8282028284828161100457fe5b0414610865576040805162461bcd60e51b815260206004820152600b60248201526a1253959053125117d3555360aa1b604482015290519081900360640190fd5b6000808211611089576040805162461bcd60e51b815260206004820152600b60248201526a24a72b20a624a22fa224ab60a91b604482015290519081900360640190fd5b600082848161109457fe5b04949350505050565b6000828211156110e2576040805162461bcd60e51b815260206004820152600b60248201526a24a72b20a624a22fa9aaa160a91b604482015290519081900360640190fd5b50900390565b60408051808201909152600080825260208201529056fea26469706673582212209191f2c27fa8e44cad99e5173d582e162e7e9cccc9b95b43ce52abeb76bb4f8f64736f6c634300060c0033

Deployed ByteCode Sourcemap

4237:4072:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5869:659;;;;;;;;;;;;;;;;-1:-1:-1;5869:659:0;;:::i;:::-;;4337:31;;;:::i;:::-;;;;;;;;;;;;;;;;4566:655;;;;;;;;;;;;;;;;-1:-1:-1;4566:655:0;;:::i;7100:1206::-;;;;;;;;;;;;;;;;-1:-1:-1;7100:1206:0;;;;;;;:::i;6700:217::-;;;;;;;;;;;;;;;;-1:-1:-1;6700:217:0;;;;;;;:::i;4271:28::-;;;:::i;3110:538::-;;;;;;;;;;;;;;;;-1:-1:-1;3110:538:0;;;;:::i;1659:20::-;;;:::i;4398:42::-;;;:::i;1605:47::-;;;:::i;5227:636::-;;;;;;;;;;;;;;;;-1:-1:-1;5227:636:0;;:::i;1399:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1399:20:0;;;;;;;;;;;;;;4453:43;;;:::i;1552:46::-;;;:::i;4517:42::-;;;:::i;1428:62::-;;;;;;;;;;;;;;;;-1:-1:-1;1428:62:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2413:218;;;;;;;;;;;;;;;;-1:-1:-1;2413:218:0;;:::i;2639:463::-;;;;;;;;;;;;;;;;-1:-1:-1;2639:463:0;;;;:::i;3656:572::-;;;;;;;;;;;;;;;;-1:-1:-1;3656:572:0;-1:-1:-1;;;;;3656:572:0;;:::i;5869:659::-;1838:5;;-1:-1:-1;;;;;1838:5:0;1824:10;:19;1816:42;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;;;;5940:32:::1;1936:28;;:::i;:::-;1967:17;:22;1985:3;1967:22;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;1967:22:0;1936:53;;;;::::1;::::0;;;;;::::1;;;;::::0;;;;;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;2008:20:0::1;2000:43;;;::::0;;-1:-1:-1;;;2000:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2000:43:0;;;;;;;;;;;;;::::1;;2083:15;2062:5;:17;;;:36;;2054:59;;;::::0;;-1:-1:-1;;;2054:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2054:59:0;;;;;;;;;;;;;::::1;;2132:17;::::0;::::1;::::0;2171:15:::1;::::0;2132:35:::1;::::0;1538:7:::1;2132:21;:35::i;:::-;:54;;2124:77;;;::::0;;-1:-1:-1;;;2124:77:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2124:77:0;;;;;;;;;;;;;::::1;;6120:32:::2;6070:29;6102:51:::0;:17:::2;:51;::::0;;6256:10;6248:38:::2;;;::::0;;-1:-1:-1;;;6248:38:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;6248:38:0;;;;;;;;;;;;;::::2;;6381:15;:24:::0;;;;-1:-1:-1;;6416:20:0;;-1:-1:-1;;6416:20:0::2;::::0;;5869:659::o;4337:31::-;;;;:::o;4566:655::-;1838:5;;-1:-1:-1;;;;;1838:5:0;1824:10;:19;1816:42;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;;;;4636:31:::1;1936:28;;:::i;:::-;1967:17;:22;1985:3;1967:22;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;1967:22:0;1936:53;;;;::::1;::::0;;;;;::::1;;;;::::0;;;;;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;2008:20:0::1;2000:43;;;::::0;;-1:-1:-1;;;2000:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2000:43:0;;;;;;;;;;;;;::::1;;2083:15;2062:5;:17;;;:36;;2054:59;;;::::0;;-1:-1:-1;;;2054:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2054:59:0;;;;;;;;;;;;;::::1;;2132:17;::::0;::::1;::::0;2171:15:::1;::::0;2132:35:::1;::::0;1538:7:::1;2132:21;:35::i;:::-;:54;;2124:77;;;::::0;;-1:-1:-1;;;2124:77:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2124:77:0;;;;;;;;;;;;;::::1;;4797:17:::2;4765:29;4797:50:::0;;;::::2;::::0;;4950:10;4942:38:::2;;;::::0;;-1:-1:-1;;;4942:38:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;4942:38:0;;;;;;;;;;;;;::::2;;5075:14;:23:::0;;;;-1:-1:-1;;5109:20:0;;-1:-1:-1;;5109:20:0::2;::::0;;4566:655::o;7100:1206::-;7187:7;7207:24;7234:46;7253:12;7267;7234:18;:46::i;:::-;7207:73;-1:-1:-1;7289:16:0;7308:131;4555:4;7308:88;7353:42;4555:4;7354:23;7207:73;7375:1;7354:20;:23::i;:::-;7353:29;;:42::i;:::-;7308:14;;;:44;:88::i;:::-;:118;;:131::i;:::-;7289:150;;7473:4;;7453:16;:24;7449:62;;7495:8;-1:-1:-1;7488:15:0;;-1:-1:-1;7488:15:0;7449:62;7653:19;7675:127;4555:4;7675:80;7724:30;4555:4;7725:11;7734:1;7725:4;;:8;;:11;;;;:::i;7675:127::-;7653:149;;7835:11;7816:15;;:30;7812:71;;7864:11;-1:-1:-1;7857:18:0;;-1:-1:-1;;7857:18:0;7812:71;7889:13;7905:131;8014:21;8030:4;;4555;8014:15;;:21;;;;:::i;:::-;7905:80;7968:16;7906:32;7926:11;7906:15;;:19;;:32;;;;:::i;:::-;7905:62;;:80::i;:131::-;7889:147;;8045:16;8094:171;8243:21;8259:4;;4555;8243:15;;:21;;;;:::i;:::-;8094:118;8156:28;:11;4555:4;8156:15;:28::i;:::-;8115:4;;8095:15;;:25;;:19;:25::i;:::-;8094:61;;:118::i;:171::-;8045:221;-1:-1:-1;8282:19:0;:5;8045:221;8282:9;:19::i;:::-;8275:26;;;;;;;7100:1206;;;;;:::o;6700:217::-;6793:7;6829:1;6813:12;:17;6809:48;;-1:-1:-1;6848:1:0;6841:8;;6809:48;6870:40;6897:12;6870:22;:12;6887:4;6870:16;:22::i;:40::-;6863:47;6700:217;-1:-1:-1;;;6700:217:0:o;4271:28::-;;;;:::o;3110:538::-;1838:5;;-1:-1:-1;;;;;1838:5:0;1824:10;:19;1816:42;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;;;;3270:29:::1;3302:17;:22;3320:3;3302:22;;;;;;;;;;;;;;;;;;;;;;;;;;;3270:54;;3439:26;3459:5;;3439:15;:19;;:26;;;;:::i;:::-;3419:17;::::0;;::::1;:46:::0;;;3476:19;;-1:-1:-1;;3476:19:0::1;;::::0;;3597:43:::1;::::0;::::1;::::0;3617:3;;3597:43;3617:3;3597:43:::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;1869:1;3110:538:::0;:::o;1659:20::-;;;;:::o;4398:42::-;;;;:::o;1605:47::-;1645:7;1605:47;:::o;5227:636::-;1838:5;;-1:-1:-1;;;;;1838:5:0;1824:10;:19;1816:42;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;;;;5289:21:::1;1936:28;;:::i;:::-;1967:17;:22;1985:3;1967:22;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;1967:22:0;1936:53;;;;::::1;::::0;;;;;::::1;;;;::::0;;;;;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;2008:20:0::1;2000:43;;;::::0;;-1:-1:-1;;;2000:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2000:43:0;;;;;;;;;;;;;::::1;;2083:15;2062:5;:17;;;:36;;2054:59;;;::::0;;-1:-1:-1;;;2054:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2054:59:0;;;;;;;;;;;;;::::1;;2132:17;::::0;::::1;::::0;2171:15:::1;::::0;2132:35:::1;::::0;1538:7:::1;2132:21;:35::i;:::-;:54;;2124:77;;;::::0;;-1:-1:-1;;;2124:77:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2124:77:0;;;;;;;;;;;;;::::1;;5458:21:::2;5408:29;5440:40:::0;:17:::2;:40;::::0;;5608:4:::2;5598:14:::0;::::2;;5575:57;;;::::0;;-1:-1:-1;;;5575:57:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;5575:57:0;;;;;;;;;;;;;::::2;;5727:4;:13:::0;;;;-1:-1:-1;;5751:20:0;;-1:-1:-1;;5751:20:0::2;::::0;;5227:636::o;1399:20::-;;;-1:-1:-1;;;;;1399:20:0;;:::o;4453:43::-;;;;:::o;1552:46::-;1592:6;1552:46;:::o;4517:42::-;4555:4;4517:42;:::o;1428:62::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2413:218::-;1838:5;;-1:-1:-1;;;;;1838:5:0;1824:10;:19;1816:42;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;;;;1592:6:::1;2480;:23;;2472:58;;;::::0;;-1:-1:-1;;;2472:58:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2472:58:0;;;;;;;;;;;;;::::1;;1645:7;2549:6;:23;;2541:57;;;::::0;;-1:-1:-1;;;2541:57:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2541:57:0;;;;;;;;;;;;;::::1;;2609:5;:14:::0;2413:218::o;2639:463::-;1838:5;;-1:-1:-1;;;;;1838:5:0;1824:10;:19;1816:42;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;;;;2799:29:::1;2831:17;:22;2849:3;2831:22;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;;;;;;;;-1:-1:-1;2831:22:0;2948:20;;-1:-1:-1;;2948:20:0::1;::::0;;3070:24;;2831:22;;-1:-1:-1;3070:24:0::1;::::0;3090:3;;3070:24;3090:3;3070:24:::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;1869:1;2639:463:::0;:::o;3656:572::-;1838:5;;-1:-1:-1;;;;;1838:5:0;1824:10;:19;1816:42;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;-1:-1:-1;;;1816:42:0;;;;;;;;;;;;;;;3725:29:::1;1936:28;;:::i;:::-;1967:17;:22;1985:3;1967:22;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;1967:22:0;1936:53;;;;::::1;::::0;;;;;::::1;;;;::::0;;;;;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;2008:20:0::1;2000:43;;;::::0;;-1:-1:-1;;;2000:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2000:43:0;;;;;;;;;;;;;::::1;;2083:15;2062:5;:17;;;:36;;2054:59;;;::::0;;-1:-1:-1;;;2054:59:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2054:59:0;;;;;;;;;;;;;::::1;;2132:17;::::0;::::1;::::0;2171:15:::1;::::0;2132:35:::1;::::0;1538:7:::1;2132:21;:35::i;:::-;:54;;2124:77;;;::::0;;-1:-1:-1;;;2124:77:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;2124:77:0;;;;;;;;;;;;;::::1;;3857:29:::2;3889:48:::0;;:17:::2;:48;::::0;;-1:-1:-1;;;;;4040:20:0;::::2;4032:48;;;::::0;;-1:-1:-1;;;4032:48:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;4032:48:0;;;;;;;;;;;;;::::2;;4175:5;:14:::0;;-1:-1:-1;;;;;;4175:14:0::2;-1:-1:-1::0;;;;;4175:14:0;;;::::2;::::0;;;::::2;::::0;;;-1:-1:-1;;4200:20:0;;-1:-1:-1;;4200:20:0::2;::::0;;3656:572::o;1031:149::-;1089:7;1117:5;;;1137:6;;;;1129:30;;;;;-1:-1:-1;;;1129:30:0;;;;;;;;;;;;-1:-1:-1;;;1129:30:0;;;;;;;;;;;;;;151:196;209:7;229:6;225:37;;-1:-1:-1;253:1:0;246:8;;225:37;280:5;;;284:1;280;:5;:1;300:5;;;;;:10;292:34;;;;;-1:-1:-1;;;292:34:0;;;;;;;;;;;;-1:-1:-1;;;292:34:0;;;;;;;;;;;;;;434:283;492:7;520:1;516;:5;508:29;;;;;-1:-1:-1;;;508:29:0;;;;;;;;;;;;-1:-1:-1;;;508:29:0;;;;;;;;;;;;;;;596:9;612:1;608;:5;;;;;;;434:283;-1:-1:-1;;;;434:283:0:o;835:129::-;893:7;922:1;917;:6;;909:30;;;;;-1:-1:-1;;;909:30:0;;;;;;;;;;;;-1:-1:-1;;;909:30:0;;;;;;;;;;;;;;;-1:-1:-1;953:5:0;;;835:129::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://9191f2c27fa8e44cad99e5173d582e162e7e9cccc9b95b43ce52abeb76bb4f8f
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading