Ethereum Vault Connector
The Ethereum Vault Connector (EVC) is a foundational layer designed to facilitate the core functionality required for a lending market. It serves as a base building block for various protocols, providing a robust and flexible framework for developers to build upon. The EVC primarily mediates between vaults, contracts that implement the ERC-4626 interface and contain additional logic for interfacing with other vaults. The EVC not only provides a common base ecosystem but also reduces complexity in the core lending/borrowing contracts, allowing them to focus on their differentiating factors.
For more information, visit the EVC website or refer to the whitepaper.
Contracts
.
├── interfaces
│ ├── IERC1271.sol
│ ├── IEthereumVaultConnector.sol
│ └── IVault.sol
├── utils
│ └── EVCUtil.sol
├── Errors.sol
├── EthereumVaultConnector.sol
├── Events.sol
├── ExecutionContext.sol
├── Set.sol
└── TransientStorage.sol
Install
To install Ethereum Vault Connector in a Foundry project:
forge install euler-xyz/ethereum-vault-connector
Usage
The Ethereum Vault Connector comes with a comprehensive set of tests written in Solidity, which can be executed using Foundry.
For a detailed understanding of the Ethereum Vault Connector and considerations for its integration, please refer to the EVC website, the whitepaper. You can find examples of vaults utilizing the Ethereum Vault Connector in the EVC Playground repository. However, these example vaults are not meant for production use as they have not been audited and are intended solely for testing and experimentation purposes.
To install Foundry:
curl -L https://foundry.paradigm.xyz | bash
This will download foundryup. To start Foundry, run:
foundryup
To clone the repo:
git clone https://github.com/euler-xyz/ethereum-vault-connector.git && cd ethereum-vault-connector
Testing
in default
mode
To run the tests in a default
mode:
forge test
with scribble
annotations
To run the tests using scribble
annotations first install scribble:
npm install -g eth-scribble
To instrument the contracts and run the tests:
scribble test/evc/EthereumVaultConnectorScribble.sol --output-mode files --arm && forge test
To remove instrumentation:
scribble test/evc/EthereumVaultConnectorScribble.sol --disarm
in coverage
mode
forge coverage
Safety
This software is experimental and is provided "as is" and "as available".
No warranties are provided and no liability will be accepted for any loss incurred through the use of this codebase.
Always include thorough tests when using the Ethereum Vault Connector to ensure it interacts correctly with your code.
Known limitations
Refer to the whitepaper for a list of known limitations and security considerations.
Contributing
The code is currently in an experimental phase. Feedback or ideas for improving the Ethereum Vault Connector are appreciated. Contributions are welcome from anyone interested in conducting security research, writing more tests including formal verification, improving readability and documentation, optimizing, simplifying, or developing integrations.
License
Licensed under the GPL-2.0-or-later license.