| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Deposit | 23996611 | 99 days ago | 64.6146123 ETH | ||||
| Transfer | 23996611 | 99 days ago | 32.27589997 ETH | ||||
| Transfer | 23996611 | 99 days ago | 32.33871233 ETH | ||||
| Deposit | 22431690 | 318 days ago | 0.54317052 ETH | ||||
| Transfer | 22431690 | 318 days ago | 0.25290997 ETH | ||||
| Transfer | 22431690 | 318 days ago | 0.29026054 ETH | ||||
| Deposit | 21660981 | 425 days ago | 32.5198918 ETH | ||||
| Transfer | 21660981 | 425 days ago | 32.11972762 ETH | ||||
| Transfer | 21660981 | 425 days ago | 0.22135571 ETH | ||||
| Transfer | 21660981 | 425 days ago | 0.17880845 ETH | ||||
| Deposit | 21037326 | 513 days ago | 3.49465316 ETH | ||||
| Transfer | 21037326 | 513 days ago | 0.5627963 ETH | ||||
| Transfer | 21037326 | 513 days ago | 0.15184309 ETH | ||||
| Transfer | 21037326 | 513 days ago | 0.09172342 ETH | ||||
| Transfer | 21037326 | 513 days ago | 1.12703133 ETH | ||||
| Transfer | 21037326 | 513 days ago | 0.80139693 ETH | ||||
| Transfer | 21037326 | 513 days ago | 0.75986206 ETH | ||||
| Deposit | 18576033 | 857 days ago | 4.83448898 ETH | ||||
| Transfer | 18576033 | 857 days ago | 0.42567514 ETH | ||||
| Transfer | 18576033 | 857 days ago | 0.33861678 ETH | ||||
| Transfer | 18576033 | 857 days ago | 0.99733714 ETH | ||||
| Transfer | 18576033 | 857 days ago | 0.94512825 ETH | ||||
| Transfer | 18576033 | 857 days ago | 1.02079384 ETH | ||||
| Transfer | 18576033 | 857 days ago | 1.1069378 ETH | ||||
| Deposit | 16196752 | 1191 days ago | 96 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
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);
}{
"optimizer": {
"enabled": true,
"runs": 200,
"details": {
"yul": false
}
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
0x60c060405234801561001057600080fd5b5060405161077e38038061077e8339818101604052608081101561003357600080fd5b81516020830151604080850151606086018051925194969395919493918201928464010000000082111561006657600080fd5b90830190602082018581111561007b57600080fd5b825164010000000081118282018810171561009557600080fd5b82525081516020918201929091019080838360005b838110156100c25781810151838201526020016100aa565b50505050905090810190601f1680156100ef5780820380516001836020036101000a031916815260200191505b50604052505050836001600160a01b031660a0816001600160a01b031660601b81525050826080818152505060006060836001600160a01b0316836040518082805190602001908083835b602083106101595780518252601f19909201916020918201910161013a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146101b9576040519150601f19603f3d011682016040523d82523d6000602084013e6101be565b606091505b509150915081819061024e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102135781810151838201526020016101fb565b50505050905090810190601f1680156102405780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050505060805160a05160601c61050361027b600039806101c35250806101e752506105036000f3fe6080604052600436106100385760003560e01c806312bc0a44146100ea578063c980918714610111578063e5c23a97146101425761003f565b3661003f57005b60006100496101c1565b6001600160a01b03166375d8bb0e61005f6101e5565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561009357600080fd5b505afa1580156100a7573d6000803e3d6000fd5b505050506040513d60208110156100bd57600080fd5b505190503660008037600080366000846127105a03f43d806000803e8180156100e557816000f35b816000fd5b3480156100f657600080fd5b506100ff6101e5565b60408051918252519081900360200190f35b34801561011d57600080fd5b506101266101c1565b604080516001600160a01b039092168252519081900360200190f35b34801561014e57600080fd5b506101bf6004803603602081101561016557600080fd5b81019060208101813564010000000081111561018057600080fd5b82018360208201111561019257600080fd5b803590602001918460018302840111640100000000831117156101b457600080fd5b509092509050610209565b005b7f000000000000000000000000000000000000000000000000000000000000000090565b7f000000000000000000000000000000000000000000000000000000000000000090565b6102116101c1565b6001600160a01b0316336001600160a01b0316146102605760405162461bcd60e51b81526004018080602001828103825260378152602001806104976037913960400191505060405180910390fd5b600061026a6101c1565b6001600160a01b03166375d8bb0e6102806101e5565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102b457600080fd5b505afa1580156102c8573d6000803e3d6000fd5b505050506040513d60208110156102de57600080fd5b5051604051602060248201908152604482018590529192506000916060916001600160a01b0385169163e5c23a9760e01b9188918891819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b03166001600160e01b0319909916989098178852915182519297909650869550935090915081905083835b602083106103995780518252601f19909201916020918201910161037a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146103f9576040519150601f19603f3d011682016040523d82523d6000602084013e6103fe565b606091505b509150915081819061048e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561045357818101518382015260200161043b565b50505050905090810190601f1680156104805780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050505056fe7265636569766543616c6c46726f6d5661756c743a204f6e6c7920746865207661756c742063616e206d616b6520746869732063616c6ca2646970667358221220bde61788034e5b718c72d545b684debc52940a46fa12898481ef83f83212901964736f6c634300060c003300000000000000000000000023d3285bfe4fd42965a821f3aecf084f5bd40ef40000000000000000000000000000000000000000000000000000000000000008000000000000000000000000cdede9d4775854d41b4af20ccb563b96c8226830000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000444ddf47d40000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100385760003560e01c806312bc0a44146100ea578063c980918714610111578063e5c23a97146101425761003f565b3661003f57005b60006100496101c1565b6001600160a01b03166375d8bb0e61005f6101e5565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561009357600080fd5b505afa1580156100a7573d6000803e3d6000fd5b505050506040513d60208110156100bd57600080fd5b505190503660008037600080366000846127105a03f43d806000803e8180156100e557816000f35b816000fd5b3480156100f657600080fd5b506100ff6101e5565b60408051918252519081900360200190f35b34801561011d57600080fd5b506101266101c1565b604080516001600160a01b039092168252519081900360200190f35b34801561014e57600080fd5b506101bf6004803603602081101561016557600080fd5b81019060208101813564010000000081111561018057600080fd5b82018360208201111561019257600080fd5b803590602001918460018302840111640100000000831117156101b457600080fd5b509092509050610209565b005b7f00000000000000000000000023d3285bfe4fd42965a821f3aecf084f5bd40ef490565b7f000000000000000000000000000000000000000000000000000000000000000890565b6102116101c1565b6001600160a01b0316336001600160a01b0316146102605760405162461bcd60e51b81526004018080602001828103825260378152602001806104976037913960400191505060405180910390fd5b600061026a6101c1565b6001600160a01b03166375d8bb0e6102806101e5565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102b457600080fd5b505afa1580156102c8573d6000803e3d6000fd5b505050506040513d60208110156102de57600080fd5b5051604051602060248201908152604482018590529192506000916060916001600160a01b0385169163e5c23a9760e01b9188918891819060640184848082843760008382015260408051601f909201601f1990811690940182810390940182529283526020810180516001600160e01b03166001600160e01b0319909916989098178852915182519297909650869550935090915081905083835b602083106103995780518252601f19909201916020918201910161037a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d80600081146103f9576040519150601f19603f3d011682016040523d82523d6000602084013e6103fe565b606091505b509150915081819061048e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561045357818101518382015260200161043b565b50505050905090810190601f1680156104805780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505050505056fe7265636569766543616c6c46726f6d5661756c743a204f6e6c7920746865207661756c742063616e206d616b6520746869732063616c6ca2646970667358221220bde61788034e5b718c72d545b684debc52940a46fa12898481ef83f83212901964736f6c634300060c0033
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.