ETH Price: $2,512.18 (+0.19%)

Contract

0x68225F47813aF66F186b3714Ffe6a91850Bc76B4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
0x61010060134865352021-10-25 12:16:301103 days ago1635164190IN
 Create: ChainlinkAdapter
0 ETH0.0308147255.65569339

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
210946542024-11-01 18:41:118 hrs ago1730486471
0x68225F47...850Bc76B4
0 ETH
210946542024-11-01 18:41:118 hrs ago1730486471
0x68225F47...850Bc76B4
0 ETH
210946542024-11-01 18:41:118 hrs ago1730486471
0x68225F47...850Bc76B4
0 ETH
210946492024-11-01 18:40:118 hrs ago1730486411
0x68225F47...850Bc76B4
0 ETH
210946492024-11-01 18:40:118 hrs ago1730486411
0x68225F47...850Bc76B4
0 ETH
210946492024-11-01 18:40:118 hrs ago1730486411
0x68225F47...850Bc76B4
0 ETH
210946452024-11-01 18:39:238 hrs ago1730486363
0x68225F47...850Bc76B4
0 ETH
210946452024-11-01 18:39:238 hrs ago1730486363
0x68225F47...850Bc76B4
0 ETH
210946452024-11-01 18:39:238 hrs ago1730486363
0x68225F47...850Bc76B4
0 ETH
210339692024-10-24 7:29:358 days ago1729754975
0x68225F47...850Bc76B4
0 ETH
210339692024-10-24 7:29:358 days ago1729754975
0x68225F47...850Bc76B4
0 ETH
210339692024-10-24 7:29:358 days ago1729754975
0x68225F47...850Bc76B4
0 ETH
210339662024-10-24 7:28:598 days ago1729754939
0x68225F47...850Bc76B4
0 ETH
210339662024-10-24 7:28:598 days ago1729754939
0x68225F47...850Bc76B4
0 ETH
210339662024-10-24 7:28:598 days ago1729754939
0x68225F47...850Bc76B4
0 ETH
210339602024-10-24 7:27:478 days ago1729754867
0x68225F47...850Bc76B4
0 ETH
210339602024-10-24 7:27:478 days ago1729754867
0x68225F47...850Bc76B4
0 ETH
210339602024-10-24 7:27:478 days ago1729754867
0x68225F47...850Bc76B4
0 ETH
210339512024-10-24 7:25:598 days ago1729754759
0x68225F47...850Bc76B4
0 ETH
210339512024-10-24 7:25:598 days ago1729754759
0x68225F47...850Bc76B4
0 ETH
210339512024-10-24 7:25:598 days ago1729754759
0x68225F47...850Bc76B4
0 ETH
210339432024-10-24 7:24:238 days ago1729754663
0x68225F47...850Bc76B4
0 ETH
210339432024-10-24 7:24:238 days ago1729754663
0x68225F47...850Bc76B4
0 ETH
210339432024-10-24 7:24:238 days ago1729754663
0x68225F47...850Bc76B4
0 ETH
210339342024-10-24 7:22:358 days ago1729754555
0x68225F47...850Bc76B4
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ChainlinkAdapter

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 6 : ChainlinkAdapter.sol
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity ^0.7.0;

import "../../math/SafeInt256.sol";
import "interfaces/chainlink/AggregatorV2V3Interface.sol";

contract ChainlinkAdapter is AggregatorV2V3Interface {
    using SafeInt256 for int256;
    uint8 public override constant decimals = 18;
    uint256 public override constant version = 1;
    int256 public constant rateDecimals = 10**18;

    string public override description;
    AggregatorV2V3Interface public immutable baseToUSDOracle;
    int256 public immutable baseToUSDDecimals;
    AggregatorV2V3Interface public immutable quoteToUSDOracle;
    int256 public immutable quoteToUSDDecimals;

    constructor (
        AggregatorV2V3Interface baseToUSDOracle_,
        AggregatorV2V3Interface quoteToUSDOracle_,
        string memory description_
    ) {
        description = description_;
        baseToUSDOracle = baseToUSDOracle_;
        quoteToUSDOracle = quoteToUSDOracle_;
        baseToUSDDecimals = int256(10**baseToUSDOracle_.decimals());
        quoteToUSDDecimals = int256(10**quoteToUSDOracle_.decimals());
    }

    function _calculateBaseToQuote() internal view returns (
        uint80 roundId,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint80 answeredInRound
    ) {
        int256 baseToUSD;
        (
            roundId,
            baseToUSD,
            startedAt,
            updatedAt,
            answeredInRound
        ) = baseToUSDOracle.latestRoundData();
        require(baseToUSD > 0, "Chainlink Rate Error");
        (
            /* roundId */,
            int256 quoteToUSD,
            /* uint256 startedAt */,
            /* updatedAt */,
            /* answeredInRound */
        ) = quoteToUSDOracle.latestRoundData();
        require(quoteToUSD > 0, "Chainlink Rate Error");

        // To convert from USDC/USD (base) and ETH/USD (quote) to USDC/ETH we do:
        // (USDC/USD * quoteDecimals * 1e18) / (ETH/USD * baseDecimals)
        answer = baseToUSD
            .mul(quoteToUSDDecimals)
            .mul(rateDecimals)
            .div(quoteToUSD)
            .div(baseToUSDDecimals);
    }

    function latestRoundData() external view override returns (
        uint80 roundId,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint80 answeredInRound
    ) {
        return _calculateBaseToQuote();
    }

    function latestAnswer() external view override returns (int256 answer) {
        (/* */, answer, /* */, /* */, /* */) = _calculateBaseToQuote();
    }

    function latestTimestamp() external view override returns (uint256 updatedAt) {
        (/* */, /* */, /* */, updatedAt, /* */) = _calculateBaseToQuote();
    }

    function latestRound() external view override returns (uint256 roundId) {
        (roundId, /* */, /* */, /* */, /* */) = _calculateBaseToQuote();
    }

    function getRoundData(uint80 _roundId) external view override returns (
        uint80 roundId,
        int256 answer,
        uint256 startedAt,
        uint256 updatedAt,
        uint80 answeredInRound
    ) {
        revert();
    }

    function getAnswer(uint256 roundId) external view override returns (int256) { revert(); }
    function getTimestamp(uint256 roundId) external view override returns (uint256) { revert(); }
}

File 2 of 6 : SafeInt256.sol
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity ^0.7.0;

import "../global/Constants.sol";

library SafeInt256 {
    int256 private constant _INT256_MIN = type(int256).min;

    /// @dev Returns the multiplication of two signed integers, reverting on
    /// overflow.

    /// Counterpart to Solidity's `*` operator.

    /// Requirements:

    /// - Multiplication cannot overflow.

    function mul(int256 a, int256 b) internal pure returns (int256 c) {
        c = a * b;
        if (a == -1) require (b == 0 || c / b == a);
        else require (a == 0 || c / a == b);
    }

    /// @dev Returns the integer division of two signed 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(int256 a, int256 b) internal pure returns (int256 c) {
        require(!(b == -1 && a == _INT256_MIN)); // dev: int256 div overflow
        // NOTE: solidity will automatically revert on divide by zero
        c = a / b;
    }

    function sub(int256 x, int256 y) internal pure returns (int256 z) {
        //  taken from uniswap v3
        require((z = x - y) <= x == (y >= 0));
    }

    function add(int256 x, int256 y) internal pure returns (int256 z) {
        require((z = x + y) >= x == (y >= 0));
    }

    function neg(int256 x) internal pure returns (int256 y) {
        return mul(-1, x);
    }

    function abs(int256 x) internal pure returns (int256) {
        if (x < 0) return neg(x);
        else return x;
    }

    function subNoNeg(int256 x, int256 y) internal pure returns (int256 z) {
        z = sub(x, y);
        require(z >= 0); // dev: int256 sub to negative

        return z;
    }

    /// @dev Calculates x * RATE_PRECISION / y while checking overflows
    function divInRatePrecision(int256 x, int256 y) internal pure returns (int256) {
        return div(mul(x, Constants.RATE_PRECISION), y);
    }

    /// @dev Calculates x * y / RATE_PRECISION while checking overflows
    function mulInRatePrecision(int256 x, int256 y) internal pure returns (int256) {
        return div(mul(x, y), Constants.RATE_PRECISION);
    }

    function toUint(int256 x) internal pure returns (uint256) {
        require(x >= 0);
        return uint256(x);
    }

    function toInt(uint256 x) internal pure returns (int256) {
        require (x <= uint256(type(int256).max)); // dev: toInt overflow
        return int256(x);
    }

    function max(int256 x, int256 y) internal pure returns (int256) {
        return x > y ? x : y;
    }

    function min(int256 x, int256 y) internal pure returns (int256) {
        return x < y ? x : y;
    }
}

File 3 of 6 : AggregatorV2V3Interface.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0;

import "./AggregatorInterface.sol";
import "./AggregatorV3Interface.sol";

interface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface
{
}

File 4 of 6 : Constants.sol
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity ^0.7.0;

/// @title All shared constants for the Notional system should be declared here.
library Constants {
    // Return code for cTokens that represents no error
    uint256 internal constant COMPOUND_RETURN_CODE_NO_ERROR = 0;
    uint8 internal constant CETH_DECIMAL_PLACES = 8;

    // Token precision used for all internal balances, TokenHandler library ensures that we
    // limit the dust amount caused by precision mismatches
    int256 internal constant INTERNAL_TOKEN_PRECISION = 1e8;

    // ETH will be initialized as the first currency
    uint256 internal constant ETH_CURRENCY_ID = 1;
    uint8 internal constant ETH_DECIMAL_PLACES = 18;
    int256 internal constant ETH_DECIMALS = 1e18;
    // Used to prevent overflow when converting decimal places to decimal precision values via
    // 10**decimalPlaces. This is a safe value for int256 and uint256 variables. We apply this
    // constraint when storing decimal places in governance.
    uint256 internal constant MAX_DECIMAL_PLACES = 36;

    // Address of the reserve account
    address internal constant RESERVE = address(0);
    // NOTE: this address is hardcoded in the library, must update this on deployment
    address constant NOTE_TOKEN_ADDRESS = 0xCFEAead4947f0705A14ec42aC3D44129E1Ef3eD5;

    // Most significant bit
    bytes32 internal constant MSB =
        0x8000000000000000000000000000000000000000000000000000000000000000;

    // Basis for percentages
    int256 internal constant PERCENTAGE_DECIMALS = 100;
    // Max number of traded markets, also used as the maximum number of assets in a portfolio array
    uint256 internal constant MAX_TRADED_MARKET_INDEX = 7;
    // Max number of fCash assets in a bitmap, this is based on the gas costs of calculating free collateral
    // for a bitmap portfolio
    uint256 internal constant MAX_BITMAP_ASSETS = 20;
    uint256 internal constant FIVE_MINUTES = 300;

    // Internal date representations, note we use a 6/30/360 week/month/year convention here
    uint256 internal constant DAY = 86400;
    // We use six day weeks to ensure that all time references divide evenly
    uint256 internal constant WEEK = DAY * 6;
    uint256 internal constant MONTH = WEEK * 5;
    uint256 internal constant QUARTER = MONTH * 3;
    uint256 internal constant YEAR = QUARTER * 4;
    
    // These constants are used in DateTime.sol
    uint256 internal constant DAYS_IN_WEEK = 6;
    uint256 internal constant DAYS_IN_MONTH = 30;
    uint256 internal constant DAYS_IN_QUARTER = 90;

    // Offsets for each time chunk denominated in days
    uint256 internal constant MAX_DAY_OFFSET = 90;
    uint256 internal constant MAX_WEEK_OFFSET = 360;
    uint256 internal constant MAX_MONTH_OFFSET = 2160;
    uint256 internal constant MAX_QUARTER_OFFSET = 7650;

    // Offsets for each time chunk denominated in bits
    uint256 internal constant WEEK_BIT_OFFSET = 90;
    uint256 internal constant MONTH_BIT_OFFSET = 135;
    uint256 internal constant QUARTER_BIT_OFFSET = 195;

    // This is a constant that represents the time period that all rates are normalized by, 360 days
    uint256 internal constant IMPLIED_RATE_TIME = 360 * DAY;
    // Number of decimal places that rates are stored in, equals 100%
    int256 internal constant RATE_PRECISION = 1e9;
    // One basis point in RATE_PRECISION terms
    uint256 internal constant BASIS_POINT = uint256(RATE_PRECISION / 10000);
    // Used to when calculating the amount to deleverage of a market when minting nTokens
    uint256 internal constant DELEVERAGE_BUFFER = 300 * BASIS_POINT;
    // Used for scaling cash group factors
    uint256 internal constant FIVE_BASIS_POINTS = 5 * BASIS_POINT;
    // Used for residual purchase incentive and cash withholding buffer
    uint256 internal constant TEN_BASIS_POINTS = 10 * BASIS_POINT;

    // This is the ABDK64x64 representation of RATE_PRECISION
    // RATE_PRECISION_64x64 = ABDKMath64x64.fromUint(RATE_PRECISION)
    int128 internal constant RATE_PRECISION_64x64 = 0x3b9aca000000000000000000;
    int128 internal constant LOG_RATE_PRECISION_64x64 = 382276781265598821176;
    // Limit the market proportion so that borrowing cannot hit extremely high interest rates
    int256 internal constant MAX_MARKET_PROPORTION = RATE_PRECISION * 96 / 100;

    uint8 internal constant FCASH_ASSET_TYPE = 1;
    // Liquidity token asset types are 1 + marketIndex (where marketIndex is 1-indexed)
    uint8 internal constant MIN_LIQUIDITY_TOKEN_INDEX = 2;
    uint8 internal constant MAX_LIQUIDITY_TOKEN_INDEX = 8;

    // Used for converting bool to bytes1, solidity does not have a native conversion
    // method for this
    bytes1 internal constant BOOL_FALSE = 0x00;
    bytes1 internal constant BOOL_TRUE = 0x01;

    // Account context flags
    bytes1 internal constant HAS_ASSET_DEBT = 0x01;
    bytes1 internal constant HAS_CASH_DEBT = 0x02;
    bytes2 internal constant ACTIVE_IN_PORTFOLIO = 0x8000;
    bytes2 internal constant ACTIVE_IN_BALANCES = 0x4000;
    bytes2 internal constant UNMASK_FLAGS = 0x3FFF;
    uint16 internal constant MAX_CURRENCIES = uint16(UNMASK_FLAGS);

    // Equal to 100% of all deposit amounts for nToken liquidity across fCash markets.
    int256 internal constant DEPOSIT_PERCENT_BASIS = 1e8;

    // nToken Parameters: there are offsets in the nTokenParameters bytes6 variable returned
    // in nTokenHandler. Each constant represents a position in the byte array.
    uint8 internal constant LIQUIDATION_HAIRCUT_PERCENTAGE = 0;
    uint8 internal constant CASH_WITHHOLDING_BUFFER = 1;
    uint8 internal constant RESIDUAL_PURCHASE_TIME_BUFFER = 2;
    uint8 internal constant PV_HAIRCUT_PERCENTAGE = 3;
    uint8 internal constant RESIDUAL_PURCHASE_INCENTIVE = 4;

    // Liquidation parameters
    // Default percentage of collateral that a liquidator is allowed to liquidate, will be higher if the account
    // requires more collateral to be liquidated
    int256 internal constant DEFAULT_LIQUIDATION_PORTION = 40;
    // Percentage of local liquidity token cash claim delivered to the liquidator for liquidating liquidity tokens
    int256 internal constant TOKEN_REPO_INCENTIVE_PERCENT = 30;

    // Pause Router liquidation enabled states
    bytes1 internal constant LOCAL_CURRENCY_ENABLED = 0x01;
    bytes1 internal constant COLLATERAL_CURRENCY_ENABLED = 0x02;
    bytes1 internal constant LOCAL_FCASH_ENABLED = 0x04;
    bytes1 internal constant CROSS_CURRENCY_FCASH_ENABLED = 0x08;
}

File 5 of 6 : AggregatorInterface.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0;

interface AggregatorInterface {
  function latestAnswer() external view returns (int256);
  function latestTimestamp() external view returns (uint256);
  function latestRound() external view returns (uint256);
  function getAnswer(uint256 roundId) external view returns (int256);
  function getTimestamp(uint256 roundId) external view returns (uint256);

  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);
  event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);
}

File 6 of 6 : AggregatorV3Interface.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0;

interface AggregatorV3Interface {

  function decimals() external view returns (uint8);
  function description() external view returns (string memory);
  function version() external view returns (uint256);

  // getRoundData and latestRoundData should both raise "No data present"
  // if they do not have data to report, instead of returning unset values
  // which could be misinterpreted as actual reported values.
  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract AggregatorV2V3Interface","name":"baseToUSDOracle_","type":"address"},{"internalType":"contract AggregatorV2V3Interface","name":"quoteToUSDOracle_","type":"address"},{"internalType":"string","name":"description_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"current","type":"int256"},{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updatedAt","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":true,"internalType":"address","name":"startedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"startedAt","type":"uint256"}],"name":"NewRound","type":"event"},{"inputs":[],"name":"baseToUSDDecimals","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseToUSDOracle","outputs":[{"internalType":"contract AggregatorV2V3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"name":"getAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"answer","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRound","outputs":[{"internalType":"uint256","name":"roundId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestTimestamp","outputs":[{"internalType":"uint256","name":"updatedAt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quoteToUSDDecimals","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quoteToUSDOracle","outputs":[{"internalType":"contract AggregatorV2V3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateDecimals","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

61010060405234801561001157600080fd5b50604051610a56380380610a568339818101604052606081101561003457600080fd5b8151602083015160408085018051915193959294830192918464010000000082111561005f57600080fd5b90830190602082018581111561007457600080fd5b825164010000000081118282018810171561008e57600080fd5b82525081516020918201929091019080838360005b838110156100bb5781810151838201526020016100a3565b50505050905090810190601f1680156100e85780820380516001836020036101000a031916815260200191505b506040525050815161010291506000906020840190610210565b506001600160601b0319606084811b821660805283901b1660c0526040805163313ce56760e01b815290516001600160a01b0385169163313ce567916004808301926020929190829003018186803b15801561015d57600080fd5b505afa158015610171573d6000803e3d6000fd5b505050506040513d602081101561018757600080fd5b505160ff16600a0a60a0526040805163313ce56760e01b815290516001600160a01b0384169163313ce567916004808301926020929190829003018186803b1580156101d257600080fd5b505afa1580156101e6573d6000803e3d6000fd5b505050506040513d60208110156101fc57600080fd5b505160ff16600a0a60e052506102b1915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282610246576000855561028c565b82601f1061025f57805160ff191683800117855561028c565b8280016001018555821561028c579182015b8281111561028c578251825591602001919060010190610271565b5061029892915061029c565b5090565b5b80821115610298576000815560010161029d565b60805160601c60a05160c05160601c60e051610756610300600039806102da52806106605250806103175280610554525080610411528061062d5250806102b1528061045f52506107566000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c8063668a0f0211610097578063b5ab58dc11610066578063b5ab58dc14610276578063b633620c14610276578063d836d4ae14610293578063feaf968c1461029b576100f5565b8063668a0f02146101765780637284e4161461017e5780638205bf6a146101fb5780639a6fc8f514610203576100f5565b806344f8f24d116100d357806344f8f24d1461015657806350d25bcd1461015e57806354fd4d5014610166578063653ea66f1461016e576100f5565b80631a3480b5146100fa5780631aafcce314610114578063313ce56714610138575b600080fd5b6101026102a3565b60408051918252519081900360200190f35b61011c6102af565b604080516001600160a01b039092168252519081900360200190f35b6101406102d3565b6040805160ff9092168252519081900360200190f35b6101026102d8565b6101026102fc565b610102610310565b61011c610315565b610102610339565b61018661035a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101026103e8565b61022c6004803603602081101561021957600080fd5b503569ffffffffffffffffffff166103fb565b604051808669ffffffffffffffffffff1681526020018581526020018481526020018381526020018269ffffffffffffffffffff1681526020019550505050505060405180910390f35b6101026004803603602081101561028c57600080fd5b5035610408565b61010261040f565b61022c610433565b670de0b6b3a764000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b601281565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610306610454565b5091949350505050565b600181565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610343610454565b505069ffffffffffffffffffff9092169392505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103e05780601f106103b5576101008083540402835291602001916103e0565b820191906000526020600020905b8154815290600101906020018083116103c357829003601f168201915b505050505081565b60006103f2610454565b50949350505050565b6000806000806000806000fd5b6000806000fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000806000610443610454565b945094509450945094509091929394565b6000806000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156104b657600080fd5b505afa1580156104ca573d6000803e3d6000fd5b505050506040513d60a08110156104e057600080fd5b50805160208201516040830151606084015160809094015192995096509194509250905060008113610550576040805162461bcd60e51b815260206004820152601460248201527321b430b4b73634b735902930ba329022b93937b960611b604482015290519081900360640190fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156105ab57600080fd5b505afa1580156105bf573d6000803e3d6000fd5b505050506040513d60a08110156105d557600080fd5b5060200151905060008113610628576040805162461bcd60e51b815260206004820152601460248201527321b430b4b73634b735902930ba329022b93937b960611b604482015290519081900360640190fd5b6106907f000000000000000000000000000000000000000000000000000000000000000061068a8381670de0b6b3a7640000610684887f000000000000000000000000000000000000000000000000000000000000000061069b565b9061069b565b906106ef565b955050509091929394565b8181026000198314156106cb578115806106bd5750828282816106ba57fe5b05145b6106c657600080fd5b6106e9565b8215806106e05750818382816106dd57fe5b05145b6106e957600080fd5b92915050565b6000816000191480156107055750600160ff1b83145b1561070f57600080fd5b81838161071857fe5b05939250505056fea2646970667358221220fd42910da907dcff74d5edd5a0f388b2a821ff30564361a202336240a334259664736f6c634300070600330000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f60000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000234e6f74696f6e616c20555344432f45544820436861696e6c696e6b20416461707465720000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c8063668a0f0211610097578063b5ab58dc11610066578063b5ab58dc14610276578063b633620c14610276578063d836d4ae14610293578063feaf968c1461029b576100f5565b8063668a0f02146101765780637284e4161461017e5780638205bf6a146101fb5780639a6fc8f514610203576100f5565b806344f8f24d116100d357806344f8f24d1461015657806350d25bcd1461015e57806354fd4d5014610166578063653ea66f1461016e576100f5565b80631a3480b5146100fa5780631aafcce314610114578063313ce56714610138575b600080fd5b6101026102a3565b60408051918252519081900360200190f35b61011c6102af565b604080516001600160a01b039092168252519081900360200190f35b6101406102d3565b6040805160ff9092168252519081900360200190f35b6101026102d8565b6101026102fc565b610102610310565b61011c610315565b610102610339565b61018661035a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101c05781810151838201526020016101a8565b50505050905090810190601f1680156101ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101026103e8565b61022c6004803603602081101561021957600080fd5b503569ffffffffffffffffffff166103fb565b604051808669ffffffffffffffffffff1681526020018581526020018481526020018381526020018269ffffffffffffffffffff1681526020019550505050505060405180910390f35b6101026004803603602081101561028c57600080fd5b5035610408565b61010261040f565b61022c610433565b670de0b6b3a764000081565b7f0000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f681565b601281565b7f0000000000000000000000000000000000000000000000000000000005f5e10081565b6000610306610454565b5091949350505050565b600181565b7f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b841981565b6000610343610454565b505069ffffffffffffffffffff9092169392505050565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103e05780601f106103b5576101008083540402835291602001916103e0565b820191906000526020600020905b8154815290600101906020018083116103c357829003601f168201915b505050505081565b60006103f2610454565b50949350505050565b6000806000806000806000fd5b6000806000fd5b7f0000000000000000000000000000000000000000000000000000000005f5e10081565b6000806000806000610443610454565b945094509450945094509091929394565b6000806000806000807f0000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f66001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156104b657600080fd5b505afa1580156104ca573d6000803e3d6000fd5b505050506040513d60a08110156104e057600080fd5b50805160208201516040830151606084015160809094015192995096509194509250905060008113610550576040805162461bcd60e51b815260206004820152601460248201527321b430b4b73634b735902930ba329022b93937b960611b604482015290519081900360640190fd5b60007f0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b84196001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b1580156105ab57600080fd5b505afa1580156105bf573d6000803e3d6000fd5b505050506040513d60a08110156105d557600080fd5b5060200151905060008113610628576040805162461bcd60e51b815260206004820152601460248201527321b430b4b73634b735902930ba329022b93937b960611b604482015290519081900360640190fd5b6106907f0000000000000000000000000000000000000000000000000000000005f5e10061068a8381670de0b6b3a7640000610684887f0000000000000000000000000000000000000000000000000000000005f5e10061069b565b9061069b565b906106ef565b955050509091929394565b8181026000198314156106cb578115806106bd5750828282816106ba57fe5b05145b6106c657600080fd5b6106e9565b8215806106e05750818382816106dd57fe5b05145b6106e957600080fd5b92915050565b6000816000191480156107055750600160ff1b83145b1561070f57600080fd5b81838161071857fe5b05939250505056fea2646970667358221220fd42910da907dcff74d5edd5a0f388b2a821ff30564361a202336240a334259664736f6c63430007060033

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

0000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f60000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000234e6f74696f6e616c20555344432f45544820436861696e6c696e6b20416461707465720000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : baseToUSDOracle_ (address): 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6
Arg [1] : quoteToUSDOracle_ (address): 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
Arg [2] : description_ (string): Notional USDC/ETH Chainlink Adapter

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000008fffffd4afb6115b954bd326cbe7b4ba576818f6
Arg [1] : 0000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000023
Arg [4] : 4e6f74696f6e616c20555344432f45544820436861696e6c696e6b2041646170
Arg [5] : 7465720000000000000000000000000000000000000000000000000000000000


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

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

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