Skip to content

The Ethereum Vault Connector (EVC) is a mediator between Vaults that may have borrowing functionality.

License

Notifications You must be signed in to change notification settings

hats-finance/Euler-CTF-0x8899a84b1807c78db09c1ccd0812946d18986151

 
 

Repository files navigation

Audit Competition for Euler-CTF

This repository is for the audit competition for the Euler-CTF. To participate, submit your findings only by using the on-chain submission process on https://app.hats.finance/vulnerability .

How to participate

Good luck!

We look forward to seeing your findings.


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.

The Ethereum Vault Connector is currently undergoing security audits and should not be used in production.

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.

About

The Ethereum Vault Connector (EVC) is a mediator between Vaults that may have borrowing functionality.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Solidity 89.7%
  • Ruby 9.5%
  • Other 0.8%