Forkchoice Ethereum Mainnet

Address Contract Partially Verified

Address 0xe0dB8a1348637B8b7b8720578B08b8800124Fb0c
Balance 0 ETH
Nonce 1
Code Size 140 bytes
Indexed Transactions 0 (1 on-chain, 1.5% indexed)
External Etherscan · Sourcify

Contract Bytecode

140 bytes
Copy Bytecode
0x608060405236600a57005b60317f0000000000000000000000004d4c961de7140e642b7217f221b73e859e3a64826033565b005b3660008037600080366000845af43d6000803e8080156051573d6000f35b3d6000fdfea2646970667358221220bcad68a2e23512b5c474f1f9c35678bf73e82533d18c46f4bd47bfdefc7b049564736f6c63430008120033

Verified Source Code Partial Match

Compiler: v0.8.18+commit.87f61d96 EVM: paris Optimization: Yes (1000000 runs)
Agent.sol 50 lines
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.0;

/// @title A user's agent contract created by the router
/// @notice A proxy for delegating calls to the immutable agent implementation contract
contract Agent {
    address internal immutable _implementation;

    /// @dev Create an initialized agent
    constructor(address implementation) {
        _implementation = implementation;
        (bool ok, ) = implementation.delegatecall(abi.encodeWithSignature('initialize()'));
        require(ok);
    }

    receive() external payable {}

    /// @notice Delegate all function calls to `_implementation`
    fallback() external payable {
        _delegate(_implementation);
    }

    /// @notice Delegate the call to `_implementation`
    /// @dev Referenced from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.8.1/contracts/proxy/Proxy.sol#L22
    /// @param implementation The address of the implementation contract that this agent delegates calls to
    function _delegate(address implementation) internal {
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }
}

Recent Transactions

This address has 1 on-chain transactions, but only 1.5% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →