Holesky Testnet

Contract

0x1d39cB4382DFF536DC2Be4EEf9D99d5f9Cd76697

Overview

ETH Balance

0 ETH

Multichain Info

N/A
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
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
rETH_Burner

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
shanghai EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 4 : rETH_Burner.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;

import {SelfDestruct} from "../common/SelfDestruct.sol";

import {IRocketTokenRETH} from "../../interfaces/burners/rETH/IRocketTokenRETH.sol";
import {IrETH_Burner} from "../../interfaces/burners/rETH/IrETH_Burner.sol";

contract rETH_Burner is IrETH_Burner {
    /**
     * @inheritdoc IrETH_Burner
     */
    address public immutable COLLATERAL;

    constructor(
        address collateral
    ) {
        COLLATERAL = collateral;
    }

    /**
     * @inheritdoc IrETH_Burner
     */
    function triggerBurn(
        uint256 amount
    ) external {
        IRocketTokenRETH(COLLATERAL).burn(amount);

        uint256 ethToBurn = address(this).balance;
        new SelfDestruct{value: ethToBurn}();

        emit TriggerBurn(msg.sender, amount, ethToBurn);
    }

    receive() external payable {}
}

File 2 of 4 : SelfDestruct.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;

contract SelfDestruct {
    constructor() payable {
        selfdestruct(payable(address(this)));
    }
}

File 3 of 4 : IRocketTokenRETH.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IRocketTokenRETH {
    // Calculate the amount of ETH backing an amount of rETH
    function getEthValue(
        uint256 _rethAmount
    ) external view returns (uint256);

    // Calculate the amount of rETH backed by an amount of ETH
    function getRethValue(
        uint256 _ethAmount
    ) external view returns (uint256);

    // Get the total amount of collateral available
    // Includes rETH contract balance & excess deposit pool balance
    function getTotalCollateral() external view returns (uint256);

    // Mint rETH
    // Only accepts calls from the RocketDepositPool contract
    function mint(uint256 _ethAmount, address _to) external;

    // Burn rETH for ETH
    function burn(
        uint256 _rethAmount
    ) external;
}

File 4 of 4 : IrETH_Burner.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IrETH_Burner {
    /**
     * @notice Emitted when a burn is triggered.
     * @param caller caller of the function
     * @param assetAmount amount of collateral that was withdrawn
     * @param ethAmount amount of ETH that was burned
     */
    event TriggerBurn(address indexed caller, uint256 assetAmount, uint256 ethAmount);

    /**
     * @notice Get an address of the collateral.
     */
    function COLLATERAL() external view returns (address);

    /**
     * @notice Trigger a claim and a burn of ETH.
     * @param amount amount of collateral to burn
     */
    function triggerBurn(
        uint256 amount
    ) external;
}

Settings
{
  "remappings": [
    "forge-std/=lib/forge-std/src/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@symbioticfi/core/=lib/core/",
    "core/=lib/core/",
    "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "viaIR": true,
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"collateral","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint256","name":"assetAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"}],"name":"TriggerBurn","type":"event"},{"inputs":[],"name":"COLLATERAL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"triggerBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a034606b57601f61026938819003918201601f19168301916001600160401b03831184841017606f57808492602094604052833981010312606b57516001600160a01b0381168103606b576080526040516101e590816100848239608051818181604f0152609c0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040818152600436101561001e575b5050361561001c575f80fd5b005b5f915f3560e01c9081630bc8cbcf1461008257506324bbab8b03610010573461007e578160031936011261007e57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5080fd5b919050346101a85760203660031901126101a857600435917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101a857816024815f8094630852cd8d60e31b83528860048401525af1801561019e5761016e575b5047815160038082019082821067ffffffffffffffff83111761015a579082916101ad8339039082f01561015057907ff04af4aa419dbccb13024c7e3c652ec214ad43e79b4e23f36741bbe27580868191815193845260208401523392a280f35b81513d85823e3d90fd5b634e487b7160e01b87526041600452602487fd5b90925067ffffffffffffffff811161018a5782525f915f6100ef565b634e487b7160e01b5f52604160045260245ffd5b82513d5f823e3d90fd5b5f80fdfe30fffea2646970667358221220e459ba3eabadf8c9a621392f9658d27c39fc38aa845a52997bfb62a0882e368864736f6c634300081900330000000000000000000000007322c24752f79c05ffd1e2a6fcb97020c1c264f1

Deployed Bytecode

0x60806040818152600436101561001e575b5050361561001c575f80fd5b005b5f915f3560e01c9081630bc8cbcf1461008257506324bbab8b03610010573461007e578160031936011261007e57517f0000000000000000000000007322c24752f79c05ffd1e2a6fcb97020c1c264f16001600160a01b03168152602090f35b5080fd5b919050346101a85760203660031901126101a857600435917f0000000000000000000000007322c24752f79c05ffd1e2a6fcb97020c1c264f16001600160a01b0316803b156101a857816024815f8094630852cd8d60e31b83528860048401525af1801561019e5761016e575b5047815160038082019082821067ffffffffffffffff83111761015a579082916101ad8339039082f01561015057907ff04af4aa419dbccb13024c7e3c652ec214ad43e79b4e23f36741bbe27580868191815193845260208401523392a280f35b81513d85823e3d90fd5b634e487b7160e01b87526041600452602487fd5b90925067ffffffffffffffff811161018a5782525f915f6100ef565b634e487b7160e01b5f52604160045260245ffd5b82513d5f823e3d90fd5b5f80fdfe30fffea2646970667358221220e459ba3eabadf8c9a621392f9658d27c39fc38aa845a52997bfb62a0882e368864736f6c63430008190033

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

0000000000000000000000007322c24752f79c05ffd1e2a6fcb97020c1c264f1

-----Decoded View---------------
Arg [0] : collateral (address): 0x7322c24752f79c05FFD1E2a6FCB97020C1C264F1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007322c24752f79c05ffd1e2a6fcb97020c1c264f1


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits

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.