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.
.
├── interfaces
│ ├── IERC1271.sol
│ ├── IEthereumVaultConnector.sol
│ └── IVault.sol
├── utils
│ └── EVCUtil.sol
├── Errors.sol
├── EthereumVaultConnector.sol
├── Events.sol
├── ExecutionContext.sol
├── Set.sol
└── TransientStorage.sol
To install Ethereum Vault Connector in a Foundry project:
forge install euler-xyz/ethereum-vault-connectorThe 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 | bashThis will download foundryup. To start Foundry, run:
foundryupTo clone the repo:
git clone https://github.com/euler-xyz/ethereum-vault-connector.git && cd ethereum-vault-connectorTo run the tests in a default mode:
forge testTo run the tests using scribble annotations first install scribble:
npm install -g eth-scribbleTo instrument the contracts and run the tests:
scribble test/evc/EthereumVaultConnectorScribble.sol --output-mode files --arm && forge testTo remove instrumentation:
scribble test/evc/EthereumVaultConnectorScribble.sol --disarmforge coverageThis 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.
Refer to the whitepaper for a list of known limitations and security considerations.
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.
Licensed under the GPL-2.0-or-later license.