Contract 0xa4dd2cbddcad2bcd52321af565900616e9b13a95

Contract Overview

Balance:
0 BTT
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xead0c72c1c7ab809f05bce6009e5d0439988a9b2841e28b2dcd6b990a88b30660x6080604071551872022-05-16 11:45:03383 days 2 hrs ago0xa59340a7670c014ac038105ec04495d796169c00 IN  Create: WhitePaperInterestRateModel0 BTT116.6805
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x9146247b64fb64df6c55106097e850940d7182935ac924d2be13f97bbc1e1716145782552022-11-16 0:52:25199 days 13 hrs ago 0x2da83fc00bdb640c12c0fd83208825dc6e17f100 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x6a196dd1d5b0f4f0558bf0a98a4779b51be7dc95e1c6a2f42248757bf1282262110006942022-08-22 15:02:53284 days 23 hrs ago 0x2da83fc00bdb640c12c0fd83208825dc6e17f100 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x98ceb30c66d88170e25bf9cc2744d90d656482640bea45e8d471a4c0e9817623108434262022-08-18 20:56:49288 days 17 hrs ago 0x2da83fc00bdb640c12c0fd83208825dc6e17f100 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x3d461ecf23bd5b1bb2c8c2f94031b6946d1fa65ea736240cc377847ba3da8a9c108388052022-08-18 18:17:59288 days 20 hrs ago 0xaa288edc5b1520e6ca78818aa6b38aa54f2aa00f 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0xafdf15cdfa62e63895b6a74e6db985938f5fbbaa066a05b4d052bffb204d8bfb108332492022-08-18 15:06:59288 days 23 hrs ago 0x31f967e30e51a12d52cf999ac747b40c15c4dc30 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x69e4b05449efd9aa7888f1b5cbecb97d80a06ddef444fbcc29563be13897f035108331462022-08-18 15:03:25288 days 23 hrs ago 0x31f967e30e51a12d52cf999ac747b40c15c4dc30 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0xdd981caec0057dbb4222030ea7161ed0cb4cb4ca9a62e00dcb3fe17f7ff4aafc108318832022-08-18 14:20:03289 days 5 mins ago 0x94daeec1e1a374e7f59e78660c77b6c03cb79cbe 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x6c3434853df00e2fdd06ae41e6a580f383b887a5befc967feaecee365ae72b89108318262022-08-18 14:18:05289 days 7 mins ago 0x31f967e30e51a12d52cf999ac747b40c15c4dc30 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0xc7b609dfa3aa439132f4a443b80c331218ec643bace3ac66dc5df161f1e6fc9c108318092022-08-18 14:17:31289 days 7 mins ago 0xaa288edc5b1520e6ca78818aa6b38aa54f2aa00f 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x1ae70e97122edff5136092556f9ef81229540c65d54e861cb45dcd28827a4939107450252022-08-16 12:34:19291 days 1 hr ago 0x2da83fc00bdb640c12c0fd83208825dc6e17f100 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x942ddb0b626a1bccb6e6eb9000b16bce8dc6ea0949a6fb6440cb83eb49241d66104542742022-08-09 13:59:45298 days 25 mins ago 0xaa288edc5b1520e6ca78818aa6b38aa54f2aa00f 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x181305ff8ac8d8a24912b6266a3cd6c488b6374948a068780eaa382a3af8d5fa104542262022-08-09 13:58:05298 days 27 mins ago 0xaa288edc5b1520e6ca78818aa6b38aa54f2aa00f 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x02b1df72ec579ba51acd57262464d401d68977d3cfcb141c5fd055e3471fcd79104542012022-08-09 13:57:11298 days 28 mins ago 0x31f967e30e51a12d52cf999ac747b40c15c4dc30 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x6e72a29b572e5008008b35073cf015a9f8e0ebfa80c75eef8c4fb19892481389104541572022-08-09 13:55:43298 days 29 mins ago 0x31f967e30e51a12d52cf999ac747b40c15c4dc30 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x14a85d78d9bb226909d655eb8442a46ceef4ab3bb00b4ed2d3f4fe96889e51c5104541372022-08-09 13:54:59298 days 30 mins ago 0x31f967e30e51a12d52cf999ac747b40c15c4dc30 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x0209ba4b55edac5bcc99464fc39cbb0b2fb0154bca42090244f5fe42a83e18be104541072022-08-09 13:53:59298 days 31 mins ago 0x94daeec1e1a374e7f59e78660c77b6c03cb79cbe 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x5e5a6b3cc41f1b72ed95525c49110f83d12c0897514bbaf828c144b241ce42de99850092022-07-28 15:24:11309 days 23 hrs ago 0xcc5142e2d9108eb6e4f74a13480786c692bd87aa 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x2478d540bb6d825f7d35e16072a75e255e8eb089b406d1d7eb717282a08eb24599845442022-07-28 15:06:05309 days 23 hrs ago 0xcc5142e2d9108eb6e4f74a13480786c692bd87aa 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0xcfce440c43e3880575fab2bff7a1749ab28d86b13ce16d0416509ac7b42a43b599844182022-07-28 15:01:45309 days 23 hrs ago 0xec909a1e997b50fd9ab6ca08656cab65c4e6d655 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0xfa37d09e39711331f42ac10d671c6ca474c14b028caed8a70d596a205e6b76a282630452022-06-13 7:40:33355 days 6 hrs ago 0xaa288edc5b1520e6ca78818aa6b38aa54f2aa00f 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x984c57cffcd966c2a981c99f654a73bf61f30d64aa5b992615eae3ec74d5a19582625432022-06-13 7:23:05355 days 7 hrs ago 0xaa288edc5b1520e6ca78818aa6b38aa54f2aa00f 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0xd128d713b1ef2554e02c6bd6a91de7a9ef319e1f601bda3a0dd8043ea82b69e882625282022-06-13 7:22:35355 days 7 hrs ago 0x31f967e30e51a12d52cf999ac747b40c15c4dc30 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x4514db05a3a0d87fabfaa86ae660c8e89c85c1d92fcf4550a41606ba6b934f1c82625172022-06-13 7:21:49355 days 7 hrs ago 0x94daeec1e1a374e7f59e78660c77b6c03cb79cbe 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x01f2fdfe858a6182df7e2a6c73ebf5c8658b33198231a48670869f2f05b7158181597162022-06-10 14:04:58358 days 20 mins ago 0xaa288edc5b1520e6ca78818aa6b38aa54f2aa00f 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
0x1aca232d782396fcd3f0bfd49b000376c51f82aef106a3455ebb422102476ea881597082022-06-10 14:04:42358 days 20 mins ago 0x31f967e30e51a12d52cf999ac747b40c15c4dc30 0xa4dd2cbddcad2bcd52321af565900616e9b13a950 BTT
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WhitePaperInterestRateModel

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at testnet.bttcscan.com on 2022-05-16
*/

// File: contracts/InterestRateModel.sol

pragma solidity ^0.5.16;

/**
  * @title Aquarius's InterestRateModel Interface
  * @author Aquarius
  */
contract InterestRateModel {
    /// @notice Indicator that this is an InterestRateModel contract (for inspection)
    bool public constant isInterestRateModel = true;

    /**
      * @notice Calculates the current borrow interest rate per block
      * @param cash The total amount of cash the market has
      * @param borrows The total amount of borrows the market has outstanding
      * @param reserves The total amount of reserves the market has
      * @return The borrow rate per block (as a percentage, and scaled by 1e18)
      */
    function getBorrowRate(uint cash, uint borrows, uint reserves) external view returns (uint);

    /**
      * @notice Calculates the current supply interest rate per block
      * @param cash The total amount of cash the market has
      * @param borrows The total amount of borrows the market has outstanding
      * @param reserves The total amount of reserves the market has
      * @param reserveFactorMantissa The current reserve factor the market has
      * @return The supply rate per block (as a percentage, and scaled by 1e18)
      */
    function getSupplyRate(uint cash, uint borrows, uint reserves, uint reserveFactorMantissa) external view returns (uint);

}

// File: contracts/SafeMath.sol

pragma solidity ^0.5.16;

// From https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/math/Math.sol
// Subject to the MIT license.

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting with custom message on overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, errorMessage);

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction underflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on underflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot underflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, errorMessage);

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers.
     * Reverts with custom message on division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

// File: contracts/WhitePaperInterestRateModel.sol

pragma solidity ^0.5.16;



/**
  * @title Aquarius's WhitePaperInterestRateModel Contract
  * @author Aquarius
  * @notice The parameterized model described in section 2.4 of the original Aquarius Protocol whitepaper
  */
contract WhitePaperInterestRateModel is InterestRateModel {
    using SafeMath for uint;

    event NewInterestParams(uint baseRatePerBlock, uint multiplierPerBlock);

    /**
     * @notice The approximate number of blocks per year that is assumed by the interest rate model
     */
    uint public constant blocksPerYear = 15512500;

    /**
     * @notice The multiplier of utilization rate that gives the slope of the interest rate
     */
    uint public multiplierPerBlock;

    /**
     * @notice The base interest rate which is the y-intercept when utilization rate is 0
     */
    uint public baseRatePerBlock;

    /**
     * @notice Construct an interest rate model
     * @param baseRatePerYear The approximate target base APR, as a mantissa (scaled by 1e18)
     * @param multiplierPerYear The rate of increase in interest rate wrt utilization (scaled by 1e18)
     */
    constructor(uint baseRatePerYear, uint multiplierPerYear) public {
        baseRatePerBlock = baseRatePerYear.div(blocksPerYear);
        multiplierPerBlock = multiplierPerYear.div(blocksPerYear);

        emit NewInterestParams(baseRatePerBlock, multiplierPerBlock);
    }

    /**
     * @notice Calculates the utilization rate of the market: `borrows / (cash + borrows - reserves)`
     * @param cash The amount of cash in the market
     * @param borrows The amount of borrows in the market
     * @param reserves The amount of reserves in the market (currently unused)
     * @return The utilization rate as a mantissa between [0, 1e18]
     */
    function utilizationRate(uint cash, uint borrows, uint reserves) public pure returns (uint) {
        // Utilization rate is 0 when there are no borrows
        if (borrows == 0) {
            return 0;
        }

        return borrows.mul(1e18).div(cash.add(borrows).sub(reserves));
    }

    /**
     * @notice Calculates the current borrow rate per block, with the error code expected by the market
     * @param cash The amount of cash in the market
     * @param borrows The amount of borrows in the market
     * @param reserves The amount of reserves in the market
     * @return The borrow rate percentage per block as a mantissa (scaled by 1e18)
     */
    function getBorrowRate(uint cash, uint borrows, uint reserves) public view returns (uint) {
        uint ur = utilizationRate(cash, borrows, reserves);
        return ur.mul(multiplierPerBlock).div(1e18).add(baseRatePerBlock);
    }

    /**
     * @notice Calculates the current supply rate per block
     * @param cash The amount of cash in the market
     * @param borrows The amount of borrows in the market
     * @param reserves The amount of reserves in the market
     * @param reserveFactorMantissa The current reserve factor for the market
     * @return The supply rate percentage per block as a mantissa (scaled by 1e18)
     */
    function getSupplyRate(uint cash, uint borrows, uint reserves, uint reserveFactorMantissa) public view returns (uint) {
        uint oneMinusReserveFactor = uint(1e18).sub(reserveFactorMantissa);
        uint borrowRate = getBorrowRate(cash, borrows, reserves);
        uint rateToPool = borrowRate.mul(oneMinusReserveFactor).div(1e18);
        return utilizationRate(cash, borrows, reserves).mul(rateToPool).div(1e18);
    }
}

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"baseRatePerYear","type":"uint256"},{"internalType":"uint256","name":"multiplierPerYear","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"baseRatePerBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"multiplierPerBlock","type":"uint256"}],"name":"NewInterestParams","type":"event"},{"constant":true,"inputs":[],"name":"baseRatePerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blocksPerYear","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"}],"name":"getBorrowRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"},{"internalType":"uint256","name":"reserveFactorMantissa","type":"uint256"}],"name":"getSupplyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isInterestRateModel","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"multiplierPerBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"cash","type":"uint256"},{"internalType":"uint256","name":"borrows","type":"uint256"},{"internalType":"uint256","name":"reserves","type":"uint256"}],"name":"utilizationRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}]

608060405234801561001057600080fd5b506040516106da3803806106da8339818101604052604081101561003357600080fd5b508051602091820151909161005690839062ecb3b4906102ee6100bc821b17901c565b6001556100718162ecb3b46100bc602090811b6102ee17901c565b600081905560015460408051918252602082019290925281517ff35fa19c15e9ba782633a5df62a98b20217151addc68e3ff2cd623a48d37ec27929181900390910190a150506101ad565b600061010483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061010b60201b60201c565b9392505050565b600081836101975760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561015c578181015183820152602001610144565b50505050905090810190601f1680156101895780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816101a357fe5b0495945050505050565b61051e806101bc6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638726bb891161005b5780638726bb8914610102578063a385fb961461010a578063b816881614610112578063f14039de146101415761007d565b806315f24053146100825780632191f92a146100bd5780636e71e2d8146100d9575b600080fd5b6100ab6004803603606081101561009857600080fd5b5080359060208101359060400135610149565b60408051918252519081900360200190f35b6100c56101a3565b604080519115158252519081900360200190f35b6100ab600480360360608110156100ef57600080fd5b50803590602081013590604001356101a8565b6100ab6101fa565b6100ab610200565b6100ab6004803603608081101561012857600080fd5b5080359060208101359060408101359060600135610207565b6100ab610286565b6000806101578585856101a8565b905061019860015461018c670de0b6b3a76400006101806000548661028c90919063ffffffff16565b9063ffffffff6102ee16565b9063ffffffff61033016565b9150505b9392505050565b600181565b6000826101b75750600061019c565b6101f26101da836101ce878763ffffffff61033016565b9063ffffffff61038a16565b61018085670de0b6b3a764000063ffffffff61028c16565b949350505050565b60005481565b62ecb3b481565b600080610222670de0b6b3a76400008463ffffffff61038a16565b90506000610231878787610149565b90506000610251670de0b6b3a7640000610180848663ffffffff61028c16565b905061027a670de0b6b3a76400006101808361026e8c8c8c6101a8565b9063ffffffff61028c16565b98975050505050505050565b60015481565b60008261029b575060006102e8565b828202828482816102a857fe5b04146102e55760405162461bcd60e51b81526004018080602001828103825260218152602001806104c96021913960400191505060405180910390fd5b90505b92915050565b60006102e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506103cc565b6000828201838110156102e5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006102e583836040518060400160405280601f81526020017f536166654d6174683a207375627472616374696f6e20756e646572666c6f770081525061046e565b600081836104585760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561041d578181015183820152602001610405565b50505050905090810190601f16801561044a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161046457fe5b0495945050505050565b600081848411156104c05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561041d578181015183820152602001610405565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a72315820c1f5857ac78a1b1b9d3f0b14bbb203486e91fe782c13aa03ad9135e6e747dd3b64736f6c6343000511003200000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000016345785d8a0000

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

00000000000000000000000000000000000000000000000000470de4df820000000000000000000000000000000000000000000000000000016345785d8a0000

-----Decoded View---------------
Arg [0] : baseRatePerYear (uint256): 20000000000000000
Arg [1] : multiplierPerYear (uint256): 100000000000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000470de4df820000
Arg [1] : 000000000000000000000000000000000000000000000000016345785d8a0000


Deployed ByteCode Sourcemap

8323:3356:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8323:3356:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10588:235;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10588:235:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;277:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;9903:297;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9903:297:0;;;;;;;;;;;;:::i;8784:30::-;;;:::i;8619:45::-;;;:::i;11246:430::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;11246:430:0;;;;;;;;;;;;;;;;;:::i;8932:28::-;;;:::i;10588:235::-;10672:4;10689:7;10699:40;10715:4;10721:7;10730:8;10699:15;:40::i;:::-;10689:50;;10757:58;10798:16;;10757:36;10788:4;10757:26;10764:18;;10757:2;:6;;:26;;;;:::i;:::-;:30;:36;:30;:36;:::i;:::-;:40;:58;:40;:58;:::i;:::-;10750:65;;;10588:235;;;;;;:::o;277:47::-;320:4;277:47;:::o;9903:297::-;9989:4;10070:12;10066:53;;-1:-1:-1;10106:1:0;10099:8;;10066:53;10138:54;10160:31;10182:8;10160:17;:4;10169:7;10160:17;:8;:17;:::i;:::-;:21;:31;:21;:31;:::i;:::-;10138:17;:7;10150:4;10138:17;:11;:17;:::i;:54::-;10131:61;9903:297;-1:-1:-1;;;;9903:297:0:o;8784:30::-;;;;:::o;8619:45::-;8656:8;8619:45;:::o;11246:430::-;11358:4;;11404:37;11409:4;11419:21;11404:37;:14;:37;:::i;:::-;11375:66;;11452:15;11470:38;11484:4;11490:7;11499:8;11470:13;:38::i;:::-;11452:56;-1:-1:-1;11519:15:0;11537:47;11579:4;11537:37;11452:56;11552:21;11537:37;:14;:37;:::i;:47::-;11519:65;;11602:66;11663:4;11602:56;11647:10;11602:40;11618:4;11624:7;11633:8;11602:15;:40::i;:::-;:44;:56;:44;:56;:::i;:66::-;11595:73;11246:430;-1:-1:-1;;;;;;;;11246:430:0:o;8932:28::-;;;;:::o;4177:471::-;4235:7;4480:6;4476:47;;-1:-1:-1;4510:1:0;4503:8;;4476:47;4547:5;;;4551:1;4547;:5;:1;4571:5;;;;;:10;4563:56;;;;-1:-1:-1;;;4563:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4639:1;-1:-1:-1;4177:471:0;;;;;:::o;5835:132::-;5893:7;5920:39;5924:1;5927;5920:39;;;;;;;;;;;;;;;;;:3;:39::i;2423:181::-;2481:7;2513:5;;;2537:6;;;;2529:46;;;;;-1:-1:-1;;;2529:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3316:137;3374:7;3401:44;3405:1;3408;3401:44;;;;;;;;;;;;;;;;;:3;:44::i;6455:345::-;6541:7;6643:12;6636:5;6628:28;;;;-1:-1:-1;;;6628:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6628:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6667:9;6683:1;6679;:5;;;;;;;6455:345;-1:-1:-1;;;;;6455:345:0:o;3742:192::-;3828:7;3864:12;3856:6;;;;3848:29;;;;-1:-1:-1;;;3848:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3848:29:0;-1:-1:-1;;;3900:5:0;;;3742:192::o

Swarm Source

bzzr://c1f5857ac78a1b1b9d3f0b14bbb203486e91fe782c13aa03ad9135e6e747dd3b
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading