Coinbase/Basefee Receipt Anchor

coinbase-basefee-receipt-anchor · receipt-attestation · 346 B runtime · registry-info

scores

source

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract BasefeeReceiptAnchor {
    event Attested(
        bytes32 indexed workHash,
        address coinbase,
        uint256 basefee,
        uint256 blockNumber,
        address origin,
        bytes32 receiptId
    );

    function attest(bytes32 workHash) external returns (bytes32 receiptId) {
        address origin = tx.origin;
        address coinbase = block.coinbase;
        uint256 basefee = block.basefee;
        uint256 blockNumber = block.number;

        receiptId = keccak256(abi.encodePacked(workHash, origin, blockNumber, coinbase));

        emit Attested(workHash, coinbase, basefee, blockNumber, origin, receiptId);
    }
}