ETH Price: $2,150.86 (+0.83%)

Contract

0x98d1807D4B9AFCE6D133cdC632EEC63B4e3Df9f1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

> 10 Internal Transactions and 6 Token Transfers found.

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Deposit239966112025-12-12 12:41:4799 days ago1765543307
0x98d1807D...B4e3Df9f1
64.6146123 ETH
Transfer239966112025-12-12 12:41:4799 days ago1765543307
0x98d1807D...B4e3Df9f1
32.27589997 ETH
Transfer239966112025-12-12 12:41:4799 days ago1765543307
0x98d1807D...B4e3Df9f1
32.33871233 ETH
Deposit224316902025-05-07 12:13:59318 days ago1746620039
0x98d1807D...B4e3Df9f1
0.54317052 ETH
Transfer224316902025-05-07 12:13:59318 days ago1746620039
0x98d1807D...B4e3Df9f1
0.25290997 ETH
Transfer224316902025-05-07 12:13:59318 days ago1746620039
0x98d1807D...B4e3Df9f1
0.29026054 ETH
Deposit216609812025-01-19 20:40:11425 days ago1737319211
0x98d1807D...B4e3Df9f1
32.5198918 ETH
Transfer216609812025-01-19 20:40:11425 days ago1737319211
0x98d1807D...B4e3Df9f1
32.11972762 ETH
Transfer216609812025-01-19 20:40:11425 days ago1737319211
0x98d1807D...B4e3Df9f1
0.22135571 ETH
Transfer216609812025-01-19 20:40:11425 days ago1737319211
0x98d1807D...B4e3Df9f1
0.17880845 ETH
Deposit210373262024-10-24 18:43:11513 days ago1729795391
0x98d1807D...B4e3Df9f1
3.49465316 ETH
Transfer210373262024-10-24 18:43:11513 days ago1729795391
0x98d1807D...B4e3Df9f1
0.5627963 ETH
Transfer210373262024-10-24 18:43:11513 days ago1729795391
0x98d1807D...B4e3Df9f1
0.15184309 ETH
Transfer210373262024-10-24 18:43:11513 days ago1729795391
0x98d1807D...B4e3Df9f1
0.09172342 ETH
Transfer210373262024-10-24 18:43:11513 days ago1729795391
0x98d1807D...B4e3Df9f1
1.12703133 ETH
Transfer210373262024-10-24 18:43:11513 days ago1729795391
0x98d1807D...B4e3Df9f1
0.80139693 ETH
Transfer210373262024-10-24 18:43:11513 days ago1729795391
0x98d1807D...B4e3Df9f1
0.75986206 ETH
Deposit185760332023-11-15 8:13:59857 days ago1700036039
0x98d1807D...B4e3Df9f1
4.83448898 ETH
Transfer185760332023-11-15 8:13:59857 days ago1700036039
0x98d1807D...B4e3Df9f1
0.42567514 ETH
Transfer185760332023-11-15 8:13:59857 days ago1700036039
0x98d1807D...B4e3Df9f1
0.33861678 ETH
Transfer185760332023-11-15 8:13:59857 days ago1700036039
0x98d1807D...B4e3Df9f1
0.99733714 ETH
Transfer185760332023-11-15 8:13:59857 days ago1700036039
0x98d1807D...B4e3Df9f1
0.94512825 ETH
Transfer185760332023-11-15 8:13:59857 days ago1700036039
0x98d1807D...B4e3Df9f1
1.02079384 ETH
Transfer185760332023-11-15 8:13:59857 days ago1700036039
0x98d1807D...B4e3Df9f1
1.1069378 ETH
Deposit161967522022-12-16 10:46:351191 days ago1671187595
0x98d1807D...B4e3Df9f1
96 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x2afFCD76...A259285c7
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ExternalPositionProxy

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: GPL-3.0

/*
    This file is part of the Enzyme Protocol.
    (c) Enzyme Council <council@enzyme.finance>
    For the full license information, please view the LICENSE
    file that was distributed with this source code.
*/

pragma solidity 0.6.12;

import "../vault/interfaces/IExternalPositionVault.sol";
import "./IExternalPosition.sol";
import "./IExternalPositionProxy.sol";

/// @title ExternalPositionProxy Contract
/// @author Enzyme Council <security@enzyme.finance>
/// @notice A proxy for all external positions, modified from EIP-1822
contract ExternalPositionProxy is IExternalPositionProxy {
    uint256 private immutable EXTERNAL_POSITION_TYPE;
    address private immutable VAULT_PROXY;

    /// @dev Needed to receive ETH on external positions
    receive() external payable {}

    constructor(
        address _vaultProxy,
        uint256 _typeId,
        address _constructLib,
        bytes memory _constructData
    ) public {
        VAULT_PROXY = _vaultProxy;
        EXTERNAL_POSITION_TYPE = _typeId;

        (bool success, bytes memory returnData) = _constructLib.delegatecall(_constructData);

        require(success, string(returnData));
    }

    // solhint-disable-next-line no-complex-fallback
    fallback() external payable {
        address contractLogic = IExternalPositionVault(getVaultProxy())
            .getExternalPositionLibForType(getExternalPositionType());
        assembly {
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(
                sub(gas(), 10000),
                contractLogic,
                0x0,
                calldatasize(),
                0,
                0
            )
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)
            switch success
                case 0 {
                    revert(0, retSz)
                }
                default {
                    return(0, retSz)
                }
        }
    }

    /// @notice Delegates call to IExternalPosition.receiveCallFromVault
    /// @param _data The bytes data variable to be decoded at the External Position
    function receiveCallFromVault(bytes calldata _data) external {
        require(
            msg.sender == getVaultProxy(),
            "receiveCallFromVault: Only the vault can make this call"
        );
        address contractLogic = IExternalPositionVault(getVaultProxy())
            .getExternalPositionLibForType(getExternalPositionType());
        (bool success, bytes memory returnData) = contractLogic.delegatecall(
            abi.encodeWithSelector(IExternalPosition.receiveCallFromVault.selector, _data)
        );

        require(success, string(returnData));
    }

    ///////////////////
    // STATE GETTERS //
    ///////////////////

    /// @notice Gets the `EXTERNAL_POSITION_TYPE` variable
    /// @return externalPositionType_ The `EXTERNAL_POSITION_TYPE` variable value
    function getExternalPositionType()
        public
        view
        override
        returns (uint256 externalPositionType_)
    {
        return EXTERNAL_POSITION_TYPE;
    }

    /// @notice Gets the `VAULT_PROXY` variable
    /// @return vaultProxy_ The `VAULT_PROXY` variable value
    function getVaultProxy() public view override returns (address vaultProxy_) {
        return VAULT_PROXY;
    }
}

// SPDX-License-Identifier: GPL-3.0

/*
    This file is part of the Enzyme Protocol.

    (c) Enzyme Council <council@enzyme.finance>

    For the full license information, please view the LICENSE
    file that was distributed with this source code.
*/

pragma solidity 0.6.12;

/// @title IExternalPositionVault interface
/// @author Enzyme Council <security@enzyme.finance>
/// Provides an interface to get the externalPositionLib for a given type from the Vault
interface IExternalPositionVault {
    function getExternalPositionLibForType(uint256) external view returns (address);
}

// SPDX-License-Identifier: GPL-3.0

/*
    This file is part of the Enzyme Protocol.
    (c) Enzyme Council <council@enzyme.finance>
    For the full license information, please view the LICENSE
    file that was distributed with this source code.
*/

pragma solidity 0.6.12;

/// @title IExternalPosition Contract
/// @author Enzyme Council <security@enzyme.finance>
interface IExternalPosition {
    function getDebtAssets() external returns (address[] memory, uint256[] memory);

    function getManagedAssets() external returns (address[] memory, uint256[] memory);

    function init(bytes memory) external;

    function receiveCallFromVault(bytes memory) external;
}

// SPDX-License-Identifier: GPL-3.0

/*
    This file is part of the Enzyme Protocol.
    (c) Enzyme Council <council@enzyme.finance>
    For the full license information, please view the LICENSE
    file that was distributed with this source code.
*/

pragma solidity 0.6.12;

/// @title IExternalPositionProxy interface
/// @author Enzyme Council <security@enzyme.finance>
/// @notice An interface for publicly accessible functions on the ExternalPositionProxy
interface IExternalPositionProxy {
    function getExternalPositionType() external view returns (uint256);

    function getVaultProxy() external view returns (address);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200,
    "details": {
      "yul": false
    }
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_vaultProxy","type":"address"},{"internalType":"uint256","name":"_typeId","type":"uint256"},{"internalType":"address","name":"_constructLib","type":"address"},{"internalType":"bytes","name":"_constructData","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"getExternalPositionType","outputs":[{"internalType":"uint256","name":"externalPositionType_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVaultProxy","outputs":[{"internalType":"address","name":"vaultProxy_","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"receiveCallFromVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

0x60c060405234801561001057600080fd5b5060405161077e38038061077e8339818101604052608081101561003357600080fd5b81516020830151604080850151606086018051925194969395919493918201928464010000000082111561006657600080fd5b90830190602082018581111561007b57600080fd5b825164010000000081118282018810171561009557600080fd5b82525081516020918201929091019080838360005b838110156100c25781810151838201526020016100aa565b50505050905090810190601f1680156100ef5780820380516001836020036101000a031916815260200191505b50604052505050836001600160a01b031660a0816001600160a01b031660601b81525050826080818152505060006060836001600160a01b0316836040518082805190602001908083835b602083106101595780518252601f19909201916020918201910161013a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101b9576040519150601f19603f3d011682016040523d82523d6000602084013e6101be565b606091505b509150915081819061024e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102135781810151838201526020016101fb565b50505050905090810190601f1680156102405780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050505060805160a05160601c61050361027b600039806101c35250806101e752506105036000f3fe6080604052600436106100385760003560e01c806312bc0a44146100ea578063c980918714610111578063e5c23a97146101425761003f565b3661003f57005b60006100496101c1565b6001600160a01b03166375d8bb0e61005f6101e5565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561009357600080fd5b505afa1580156100a7573d6000803e3d6000fd5b505050506040513d60208110156100bd57600080fd5b505190503660008037600080366000846127105a03f43d806000803e8180156100e557816000f35b816000fd5b3480156100f657600080fd5b506100ff6101e5565b60408051918252519081900360200190f35b34801561011d57600080fd5b506101266101c1565b604080516001600160a01b039092168252519081900360200190f35b34801561014e57600080fd5b506101bf6004803603602081101561016557600080fd5b81019060208101813564010000000081111561018057600080fd5b82018360208201111561019257600080fd5b803590602001918460018302840111640100000000831117156101b457600080fd5b509092509050610209565b005b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6102116101c1565b6001600160a01b0316336001600160a01b0316146102605760405162461bcd60e51b81526004018080602001828103825260378152602001806104976037913960400191505060405180910390fd5b600061026a6101c1565b6001600160a01b03166375d8bb0e6102806101e5565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102b457600080fd5b505afa1580156102c8573d6000803e3d6000fd5b505050506040513d60208110156102de57600080fd5b5051604051602060248201908152604482018590529192506000916060916001600160a01b0385169163e5c23a9760e01b9188918891819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b03166001600160e01b0319909916989098178852915182519297909650869550935090915081905083835b602083106103995780518252601f19909201916020918201910161037a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146103f9576040519150601f19603f3d011682016040523d82523d6000602084013e6103fe565b606091505b509150915081819061048e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561045357818101518382015260200161043b565b50505050905090810190601f1680156104805780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050505056fe7265636569766543616c6c46726f6d5661756c743a204f6e6c7920746865207661756c742063616e206d616b6520746869732063616c6ca2646970667358221220bde61788034e5b718c72d545b684debc52940a46fa12898481ef83f83212901964736f6c634300060c003300000000000000000000000023d3285bfe4fd42965a821f3aecf084f5bd40ef40000000000000000000000000000000000000000000000000000000000000008000000000000000000000000cdede9d4775854d41b4af20ccb563b96c8226830000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000444ddf47d40000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100385760003560e01c806312bc0a44146100ea578063c980918714610111578063e5c23a97146101425761003f565b3661003f57005b60006100496101c1565b6001600160a01b03166375d8bb0e61005f6101e5565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561009357600080fd5b505afa1580156100a7573d6000803e3d6000fd5b505050506040513d60208110156100bd57600080fd5b505190503660008037600080366000846127105a03f43d806000803e8180156100e557816000f35b816000fd5b3480156100f657600080fd5b506100ff6101e5565b60408051918252519081900360200190f35b34801561011d57600080fd5b506101266101c1565b604080516001600160a01b039092168252519081900360200190f35b34801561014e57600080fd5b506101bf6004803603602081101561016557600080fd5b81019060208101813564010000000081111561018057600080fd5b82018360208201111561019257600080fd5b803590602001918460018302840111640100000000831117156101b457600080fd5b509092509050610209565b005b7f00000000000000000000000023d3285bfe4fd42965a821f3aecf084f5bd40ef490565b7f000000000000000000000000000000000000000000000000000000000000000890565b6102116101c1565b6001600160a01b0316336001600160a01b0316146102605760405162461bcd60e51b81526004018080602001828103825260378152602001806104976037913960400191505060405180910390fd5b600061026a6101c1565b6001600160a01b03166375d8bb0e6102806101e5565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102b457600080fd5b505afa1580156102c8573d6000803e3d6000fd5b505050506040513d60208110156102de57600080fd5b5051604051602060248201908152604482018590529192506000916060916001600160a01b0385169163e5c23a9760e01b9188918891819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b03166001600160e01b0319909916989098178852915182519297909650869550935090915081905083835b602083106103995780518252601f19909201916020918201910161037a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146103f9576040519150601f19603f3d011682016040523d82523d6000602084013e6103fe565b606091505b509150915081819061048e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561045357818101518382015260200161043b565b50505050905090810190601f1680156104805780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050505056fe7265636569766543616c6c46726f6d5661756c743a204f6e6c7920746865207661756c742063616e206d616b6520746869732063616c6ca2646970667358221220bde61788034e5b718c72d545b684debc52940a46fa12898481ef83f83212901964736f6c634300060c0033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.