ETH Price: $2,746.59 (-0.69%)

Contract

0x1cB453F8d5565643fb20F5d005454DB88dC088Be

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AvKATMorphoPriceFeedOracle

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 50 runs

Other Settings:
cancun EvmVersion
File 1 of 3 : AvKATMorphoPriceFeedOracle.sol
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.28;

import { IOracle } from "@morpho-blue/src/interfaces/IOracle.sol";
import { IPriceFeed } from "../../../interfaces/shared/IPriceFeed.sol";

contract AvKATMorphoPriceFeedOracle is IOracle {
    IPriceFeed public priceFeed;

    address public avKAT;
    address public KAT;

    constructor(address _priceFeed, address _avKAT, address _KAT) {
        priceFeed = IPriceFeed(_priceFeed);
        avKAT = _avKAT;
        KAT = _KAT;
    }

    function price() external view override returns (uint256) {
        return priceFeed.convertTokenBalance(avKAT, KAT, 1e36);
    }
}

File 2 of 3 : IOracle.sol
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.5.0;

/// @title IOracle
/// @author Morpho Labs
/// @custom:contact [email protected]
/// @notice Interface that oracles used by Morpho must implement.
/// @dev It is the user's responsibility to select markets with safe oracles.
interface IOracle {
    /// @notice Returns the price of 1 asset of collateral token quoted in 1 asset of loan token, scaled by 1e36.
    /// @dev It corresponds to the price of 10**(collateral token decimals) assets of collateral token quoted in
    /// 10**(loan token decimals) assets of loan token with `36 + loan token decimals - collateral token decimals`
    /// decimals of precision.
    function price() external view returns (uint256);
}

// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.28;

abstract contract IPriceFeed {
    error TokenPairMissing();

    // Gets token price in USD (WAD)
    function _getTokenBalanceInUSD(address src, uint256 value) internal view virtual returns (uint256);

    // Converts token src to token dst
    function _convertTokenBalance(address src, address dst, uint256 value) internal view virtual returns (uint256) {
        if (src == dst || value == 0) return value;
        revert TokenPairMissing();
    }

    function getTokenBalanceInUSD(address src, uint256 value) external view returns (uint256) {
        return _getTokenBalanceInUSD(src, value);
    }

    // Converts token src to token dst
    function convertTokenBalance(address src, address dst, uint256 value) external view returns (uint256) {
        return _convertTokenBalance(src, dst, value);
    }
}

Settings
{
  "remappings": [
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@spectra-core/src/=lib/spectra-core/src/",
    "@pythnetwork/pyth-sdk-solidity/=node_modules/@pythnetwork/pyth-sdk-solidity/",
    "hardhat/=node_modules/hardhat/",
    "@morpho-blue/=lib/morpho-blue/",
    "ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/",
    "morpho-blue/=lib/morpho-blue/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin-erc20-basic/=lib/spectra-core/lib/openzeppelin-contracts/contracts/token/ERC20/",
    "openzeppelin-erc20-extensions/=lib/spectra-core/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/",
    "openzeppelin-erc20/=lib/spectra-core/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/",
    "openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/",
    "openzeppelin-math/=lib/spectra-core/lib/openzeppelin-contracts/contracts/utils/math/",
    "openzeppelin-proxy/=lib/spectra-core/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/",
    "openzeppelin-utils/=lib/spectra-core/lib/openzeppelin-contracts/contracts/utils/",
    "solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/",
    "spectra-core/=lib/spectra-core/",
    "v3-core/=lib/v3-core/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 50
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "cancun",
  "viaIR": false
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_priceFeed","type":"address"},{"internalType":"address","name":"_avKAT","type":"address"},{"internalType":"address","name":"_KAT","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"KAT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"avKAT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract IPriceFeed","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6080604052348015600e575f5ffd5b50604051610264380380610264833981016040819052602b916085565b5f80546001600160a01b039485166001600160a01b03199182161790915560018054938516938216939093179092556002805491909316911617905560be565b80516001600160a01b03811681146080575f5ffd5b919050565b5f5f5f606084860312156096575f5ffd5b609d84606b565b925060a960208501606b565b915060b560408501606b565b90509250925092565b610199806100cb5f395ff3fe608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806368df23951461004e578063741bef1a1461007e578063a035b1fe14610090578063d15b03a8146100a6575b5f5ffd5b600254610061906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b5f54610061906001600160a01b031681565b6100986100b9565b604051908152602001610075565b600154610061906001600160a01b031681565b5f80546001546002546040516379ae612760e11b81526001600160a01b03928316600482015290821660248201526ec097ce7bc90715b34b9f1000000000604482015291169063f35cc24e90606401602060405180830381865afa158015610123573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610147919061014c565b905090565b5f6020828403121561015c575f5ffd5b505191905056fea26469706673582212200ddb3e4326de0115faec1e7308f67dfd13d5e392e19143873a700d187fe48f6264736f6c634300081c0033000000000000000000000000ab162c41ad27df8614edd43f886857bb2054c23e000000000000000000000000297612c171fc8adce32ac333085a9ee1f2bcc1da000000000000000000000000cd6863bb697d7cee5b7ed8dea7d803374f7e4aa6

Deployed Bytecode

0x608060405234801561000f575f5ffd5b506004361061004a575f3560e01c806368df23951461004e578063741bef1a1461007e578063a035b1fe14610090578063d15b03a8146100a6575b5f5ffd5b600254610061906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b5f54610061906001600160a01b031681565b6100986100b9565b604051908152602001610075565b600154610061906001600160a01b031681565b5f80546001546002546040516379ae612760e11b81526001600160a01b03928316600482015290821660248201526ec097ce7bc90715b34b9f1000000000604482015291169063f35cc24e90606401602060405180830381865afa158015610123573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610147919061014c565b905090565b5f6020828403121561015c575f5ffd5b505191905056fea26469706673582212200ddb3e4326de0115faec1e7308f67dfd13d5e392e19143873a700d187fe48f6264736f6c634300081c0033

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

000000000000000000000000ab162c41ad27df8614edd43f886857bb2054c23e000000000000000000000000297612c171fc8adce32ac333085a9ee1f2bcc1da000000000000000000000000cd6863bb697d7cee5b7ed8dea7d803374f7e4aa6

-----Decoded View---------------
Arg [0] : _priceFeed (address): 0xaB162c41Ad27DF8614eDd43F886857Bb2054C23e
Arg [1] : _avKAT (address): 0x297612c171fc8ADce32ac333085a9Ee1F2BCC1Da
Arg [2] : _KAT (address): 0xCD6863bB697d7CEE5b7Ed8deA7D803374F7e4Aa6

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000ab162c41ad27df8614edd43f886857bb2054c23e
Arg [1] : 000000000000000000000000297612c171fc8adce32ac333085a9ee1f2bcc1da
Arg [2] : 000000000000000000000000cd6863bb697d7cee5b7ed8dea7d803374f7e4aa6


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

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.