S Price: $0.493802 (-2.38%)
    /

    Contract

    0xd4c745E73d6daa5Cf6a9A16BdF09Ec4aef1D6176

    Overview

    S Balance

    Sonic LogoSonic LogoSonic Logo0 S

    S Value

    $0.00

    Multichain Info

    No addresses found
    Transaction Hash
    Method
    Block
    Age
    From
    To
    Amount
    Update Jump Rate...22685802025-01-02 15:29:0989 days ago1735831749IN
    0xd4c745E7...aef1D6176
    0 S0.000077141.32
    VIEW ADVANCED FILTER

    Parent Transaction Hash Block Age From To Amount
    View All Internal Transactions
    Loading...
    Loading

    Contract Source Code Verified (Exact Match)

    Contract Name:
    JumpRateModelV2

    Compiler Version
    v0.8.22+commit.4fc1097e

    Optimization Enabled:
    Yes with 200 runs

    Other Settings:
    paris EvmVersion
    File 1 of 3 : JumpRateModelV2.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BSD-3-Clause
    pragma solidity 0.8.22;
    import "./BaseJumpRateModelV2.sol";
    import "./InterestRateModel.sol";
    /**
    * @title Mach's JumpRateModel Contract V2 for V2 cTokens
    * @author Arr00
    * @notice Supports only for V2 cTokens
    */
    contract JumpRateModelV2 is InterestRateModel, BaseJumpRateModelV2 {
    /**
    * @notice Calculates the current borrow rate per timestamp
    * @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 timestamp as a mantissa (scaled by 1e18)
    */
    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view override returns (uint256) {
    return getBorrowRateInternal(cash, borrows, reserves);
    }
    constructor(
    uint256 baseRatePerYear,
    uint256 multiplierPerYear,
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 3 : BaseJumpRateModelV2.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BSD-3-Clause
    pragma solidity 0.8.22;
    import "./InterestRateModel.sol";
    /**
    * @title Logic for Mach's JumpRateModel Contract V2.
    * @author Compound (modified by Dharma Labs, refactored by Arr00)
    * @notice Version 2 modifies Version 1 by enabling updateable parameters.
    */
    abstract contract BaseJumpRateModelV2 is InterestRateModel {
    event NewInterestParams(
    uint256 baseRatePerTimestamp, uint256 multiplierPerTimestamp, uint256 jumpMultiplierPerTimestamp, uint256 kink
    );
    uint256 private constant BASE = 1e18;
    /**
    * @notice The address of the owner, i.e. the Timelock contract, which can update parameters directly
    */
    address public owner;
    /**
    * @notice The approximate number of timestamps per year that is assumed by the interest rate model
    */
    uint256 public constant timestampsPerYear = 60 * 60 * 24 * 365;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 3 : InterestRateModel.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: BSD-3-Clause
    pragma solidity 0.8.22;
    /**
    * @title Mach's InterestRateModel Interface
    * @author Mach Finance
    */
    abstract 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 timestamp
    * @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 timestamp (as a percentage, and scaled by 1e18)
    */
    function getBorrowRate(uint256 cash, uint256 borrows, uint256 reserves) external view virtual returns (uint256);
    /**
    * @notice Calculates the current supply interest rate per timestamp
    * @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
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    {
    "remappings": [
    "@pythnetwork/pyth-sdk-solidity/=lib/pyth-crosschain/target_chains/ethereum/sdk/solidity/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/",
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/",
    "@api3/contracts/=lib/contracts/contracts/",
    "ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/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/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/",
    "pyth-crosschain/=lib/pyth-crosschain/",
    "solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"
    ],
    "optimizer": {
    "enabled": true,
    "runs": 200
    },
    "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
    },
    "outputSelection": {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    API
    [{"inputs":[{"internalType":"uint256","name":"baseRatePerYear","type":"uint256"},{"internalType":"uint256","name":"multiplierPerYear","type":"uint256"},{"internalType":"uint256","name":"jumpMultiplierPerYear","type":"uint256"},{"internalType":"uint256","name":"kink_","type":"uint256"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"baseRatePerTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"multiplierPerTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"jumpMultiplierPerTimestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"kink","type":"uint256"}],"name":"NewInterestParams","type":"event"},{"inputs":[],"name":"baseRatePerTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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"}],"stateMutability":"view","type":"function"},{"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"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isInterestRateModel","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jumpMultiplierPerTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kink","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"multiplierPerTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timestampsPerYear","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"baseRatePerYear","type":"uint256"},{"internalType":"uint256","name":"multiplierPerYear","type":"uint256"},{"internalType":"uint256","name":"jumpMultiplierPerYear","type":"uint256"},{"internalType":"uint256","name":"kink_","type":"uint256"}],"name":"updateJumpRateModel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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"}],"stateMutability":"pure","type":"function"}]

    608060405234801561001057600080fd5b5060405161079f38038061079f83398101604081905261002f91610151565b600080546001600160a01b0319166001600160a01b038316179055848484848461005b8585858561006a565b505050505050505050506101f9565b670de0b6b3a76400006301e1338061008282876101ac565b61008c91906101d7565b61009691906101d7565b6002556100a7816301e133806101ac565b6100b9670de0b6b3a7640000856101ac565b6100c391906101d7565b600155670de0b6b3a76400006301e133806100de82856101ac565b6100e891906101d7565b6100f291906101d7565b60038190556004829055600254600154604080519283526020830191909152810191909152606081018290527f6960ab234c7ef4b0c9197100f5393cfcde7c453ac910a27bd2000aa1dd4c068d9060800160405180910390a150505050565b600080600080600060a0868803121561016957600080fd5b855160208701516040880151606089015160808a0151939850919650945092506001600160a01b038116811461019e57600080fd5b809150509295509295909350565b80820281158282048414176101d157634e487b7160e01b600052601160045260246000fd5b92915050565b6000826101f457634e487b7160e01b600052601260045260246000fd5b500490565b610597806102086000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806340bc0af41161007157806340bc0af4146101155780636c2df6a71461011e5780636e71e2d8146101275780638da5cb5b1461013a578063b816881614610165578063fd2da3391461017857600080fd5b80630c574861146100ae57806315f24053146100cc5780632037f3e7146100df5780632191f92a146100f457806326c394f71461010c575b600080fd5b6100b96301e1338081565b6040519081526020015b60405180910390f35b6100b96100da366004610488565b610181565b6100f26100ed3660046104b4565b610198565b005b6100fc600181565b60405190151581526020016100c3565b6100b960035481565b6100b960025481565b6100b960015481565b6100b9610135366004610488565b610217565b60005461014d906001600160a01b031681565b6040516001600160a01b0390911681526020016100c3565b6100b96101733660046104b4565b61025a565b6100b960045481565b600061018e8484846102d6565b90505b9392505050565b6000546001600160a01b031633146102055760405162461bcd60e51b815260206004820152602660248201527f6f6e6c7920746865206f776e6572206d61792063616c6c20746869732066756e60448201526531ba34b7b71760d11b606482015260840160405180910390fd5b610211848484846103a1565b50505050565b60008260000361022957506000610191565b8161023484866104fc565b61023e9190610515565b610250670de0b6b3a764000085610528565b61018e919061053f565b60008061026f83670de0b6b3a7640000610515565b9050600061027e8787876102d6565b90506000670de0b6b3a76400006102958484610528565b61029f919061053f565b9050670de0b6b3a7640000816102b68a8a8a610217565b6102c09190610528565b6102ca919061053f565b98975050505050505050565b6000806102e4858585610217565b9050600454811161032557600254670de0b6b3a7640000600154836103099190610528565b610313919061053f565b61031d91906104fc565b915050610191565b6000600254670de0b6b3a76400006001546004546103439190610528565b61034d919061053f565b61035791906104fc565b90506000600454836103699190610515565b905081670de0b6b3a7640000600354836103839190610528565b61038d919061053f565b61039791906104fc565b9350505050610191565b670de0b6b3a76400006301e133806103b98287610528565b6103c3919061053f565b6103cd919061053f565b6002556103de816301e13380610528565b6103f0670de0b6b3a764000085610528565b6103fa919061053f565b600155670de0b6b3a76400006301e133806104158285610528565b61041f919061053f565b610429919061053f565b60038190556004829055600254600154604080519283526020830191909152810191909152606081018290527f6960ab234c7ef4b0c9197100f5393cfcde7c453ac910a27bd2000aa1dd4c068d9060800160405180910390a150505050565b60008060006060848603121561049d57600080fd5b505081359360208301359350604090920135919050565b600080600080608085870312156104ca57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050f5761050f6104e6565b92915050565b8181038181111561050f5761050f6104e6565b808202811582820484141761050f5761050f6104e6565b60008261055c57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e5fbe980d22bfc78d1d7007814fc6a940bc629a18edf2009c0a06b832e9d314364736f6c63430008160033000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000053444835ec5800000000000000000000000000000000000000000000000000000853a0d2313c00000000000000000000000000009a74a959ab5f706c1dff414f580560287fcb7576

    Deployed Bytecode

    0x608060405234801561001057600080fd5b50600436106100a95760003560e01c806340bc0af41161007157806340bc0af4146101155780636c2df6a71461011e5780636e71e2d8146101275780638da5cb5b1461013a578063b816881614610165578063fd2da3391461017857600080fd5b80630c574861146100ae57806315f24053146100cc5780632037f3e7146100df5780632191f92a146100f457806326c394f71461010c575b600080fd5b6100b96301e1338081565b6040519081526020015b60405180910390f35b6100b96100da366004610488565b610181565b6100f26100ed3660046104b4565b610198565b005b6100fc600181565b60405190151581526020016100c3565b6100b960035481565b6100b960025481565b6100b960015481565b6100b9610135366004610488565b610217565b60005461014d906001600160a01b031681565b6040516001600160a01b0390911681526020016100c3565b6100b96101733660046104b4565b61025a565b6100b960045481565b600061018e8484846102d6565b90505b9392505050565b6000546001600160a01b031633146102055760405162461bcd60e51b815260206004820152602660248201527f6f6e6c7920746865206f776e6572206d61792063616c6c20746869732066756e60448201526531ba34b7b71760d11b606482015260840160405180910390fd5b610211848484846103a1565b50505050565b60008260000361022957506000610191565b8161023484866104fc565b61023e9190610515565b610250670de0b6b3a764000085610528565b61018e919061053f565b60008061026f83670de0b6b3a7640000610515565b9050600061027e8787876102d6565b90506000670de0b6b3a76400006102958484610528565b61029f919061053f565b9050670de0b6b3a7640000816102b68a8a8a610217565b6102c09190610528565b6102ca919061053f565b98975050505050505050565b6000806102e4858585610217565b9050600454811161032557600254670de0b6b3a7640000600154836103099190610528565b610313919061053f565b61031d91906104fc565b915050610191565b6000600254670de0b6b3a76400006001546004546103439190610528565b61034d919061053f565b61035791906104fc565b90506000600454836103699190610515565b905081670de0b6b3a7640000600354836103839190610528565b61038d919061053f565b61039791906104fc565b9350505050610191565b670de0b6b3a76400006301e133806103b98287610528565b6103c3919061053f565b6103cd919061053f565b6002556103de816301e13380610528565b6103f0670de0b6b3a764000085610528565b6103fa919061053f565b600155670de0b6b3a76400006301e133806104158285610528565b61041f919061053f565b610429919061053f565b60038190556004829055600254600154604080519283526020830191909152810191909152606081018290527f6960ab234c7ef4b0c9197100f5393cfcde7c453ac910a27bd2000aa1dd4c068d9060800160405180910390a150505050565b60008060006060848603121561049d57600080fd5b505081359360208301359350604090920135919050565b600080600080608085870312156104ca57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561050f5761050f6104e6565b92915050565b8181038181111561050f5761050f6104e6565b808202811582820484141761050f5761050f6104e6565b60008261055c57634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220e5fbe980d22bfc78d1d7007814fc6a940bc629a18edf2009c0a06b832e9d314364736f6c63430008160033

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

    000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000000000000053444835ec5800000000000000000000000000000000000000000000000000000853a0d2313c00000000000000000000000000009a74a959ab5f706c1dff414f580560287fcb7576

    -----Decoded View---------------
    Arg [0] : baseRatePerYear (uint256): 0
    Arg [1] : multiplierPerYear (uint256): 50000000000000000
    Arg [2] : jumpMultiplierPerYear (uint256): 6000000000000000000
    Arg [3] : kink_ (uint256): 600000000000000000
    Arg [4] : owner_ (address): 0x9A74A959Ab5F706c1DFf414F580560287FcB7576

    -----Encoded View---------------
    5 Constructor Arguments found :
    Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
    Arg [1] : 00000000000000000000000000000000000000000000000000b1a2bc2ec50000
    Arg [2] : 00000000000000000000000000000000000000000000000053444835ec580000
    Arg [3] : 0000000000000000000000000000000000000000000000000853a0d2313c0000
    Arg [4] : 0000000000000000000000009a74a959ab5f706c1dff414f580560287fcb7576


    Block Age Transaction Gas Used Reward
    view all blocks ##produced##

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

    Validator Index Block Age Amount
    View All Withdrawals

    Transaction Hash Block Age Value Eth2 PubKey Valid
    View All Deposits
    [ 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.