Skip to content

Latest commit

 

History

History
68 lines (50 loc) · 3.06 KB

README.md

File metadata and controls

68 lines (50 loc) · 3.06 KB

Savings Vault

This repository contains the smart contracts for integration with the Notional protocol. Savings Vault is implemented according to the ERC4626 standard.

Environment

Scripts & tests depend on several environment variables to work, as well as external services for some additional functionality.

Providing environment vars

You will need to create an .env file in the root folder and provides values for variables according to the .env.example file.

cp .env.example .env

Getting Started

In case you don't have `Foundry installed make sure to follow the steps described in the following link.

  • Use Foundry:
forge install
forge build
  • Use Hardhat:
npm install
npx hardhat compile

Features

  • Write / run tests with either Hardhat or Foundry:
forge test
# or
npx hardhat test
  • Install libraries with Foundry which work with Hardhat.
forge install rari-capital/solmate # Already in this repo, just an example

Update dependencies

forge update

Notes

Whenever you install new libraries using Foundry, make sure to update your remappings.txt file by running forge remappings > remappings.txt. This is required because we use hardhat-preprocessor and the remappings.txt file to allow Hardhat to resolve libraries you install with Foundry.

The openzeppelin-contract-upgradeable library has been set to commit 54803be6 since there were some changes to how ERC4626Upgradeable contract handles the decimals of underlying asset in later versions. In case this library is updated, be aware that some tests are going to be failing.

Licensing

The primary license for Phuture Savings Vault V1 is the Business Source License 1.1 (BUSL-1.1), see LICENSE_PHUTURE.

Exceptions