├── .env.example ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .solhint.json ├── .solhintignore ├── LICENSE ├── README.md ├── contracts ├── Lending.sol ├── Options.sol ├── RewardToken.sol ├── Staking.sol ├── Swap.sol ├── amm │ └── uniswap-v1 │ │ ├── Exchange.sol │ │ ├── Factory.sol │ │ └── Token.sol ├── stablecoins │ ├── CentralizedStableCoin.sol │ ├── endogenousAnchoredCoin │ │ └── AlgorithmicStableCoin.sol │ ├── endogenousFloatingCoin │ │ └── Fpi.sol │ ├── exogenousAnchoredCoin │ │ ├── DSCEngine.sol │ │ └── DecentralizedStableCoin.sol │ └── exogenousFloatingCoin │ │ ├── FCEngine.sol │ │ └── FloatingCoin.sol └── test │ ├── MockERC20.sol │ └── MockV3Aggregator.sol ├── deploy ├── 00-deploy-mocks.js ├── 01-deploy-reward-token.js ├── 02-deploy-staking.js ├── 03-deploy-lending.js ├── 04-deploy-options.js ├── 05-deploy-centralized-stablecoins.js ├── 05-deploy-stablecoins.js └── 06-deploy-decentralized-stablecoin.js ├── docs └── uniswap-v1 │ ├── README.md │ ├── constant-product.png │ ├── equa1.png │ ├── equa2.png │ ├── equa3.png │ ├── equa4.png │ ├── equa5.png │ ├── equa6.png │ ├── equa7.png │ └── equations.tex ├── hardhat.config.js ├── helper-functions.js ├── helper-hardhat-config.js ├── package.json ├── scripts └── sample-script.js ├── test ├── amm │ └── uniswap-v1 │ │ ├── Exchange.test.js │ │ └── Token.test.js └── unit │ ├── centralizedStablecoin.test.js │ ├── lending.test.js │ ├── options.test.js │ ├── stablecoins │ ├── centralizedStableCoin.test.js │ └── decentralizedStableCoin.test.js │ └── staking.test.js ├── utils ├── move-blocks.js └── move-time.js └── yarn.lock /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/.env.example -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/.prettierrc -------------------------------------------------------------------------------- /.solhint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/.solhint.json -------------------------------------------------------------------------------- /.solhintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | contracts/test -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/README.md -------------------------------------------------------------------------------- /contracts/Lending.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/Lending.sol -------------------------------------------------------------------------------- /contracts/Options.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/Options.sol -------------------------------------------------------------------------------- /contracts/RewardToken.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/RewardToken.sol -------------------------------------------------------------------------------- /contracts/Staking.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/Staking.sol -------------------------------------------------------------------------------- /contracts/Swap.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/Swap.sol -------------------------------------------------------------------------------- /contracts/amm/uniswap-v1/Exchange.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/amm/uniswap-v1/Exchange.sol -------------------------------------------------------------------------------- /contracts/amm/uniswap-v1/Factory.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/amm/uniswap-v1/Factory.sol -------------------------------------------------------------------------------- /contracts/amm/uniswap-v1/Token.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/amm/uniswap-v1/Token.sol -------------------------------------------------------------------------------- /contracts/stablecoins/CentralizedStableCoin.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/stablecoins/CentralizedStableCoin.sol -------------------------------------------------------------------------------- /contracts/stablecoins/endogenousAnchoredCoin/AlgorithmicStableCoin.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/stablecoins/endogenousAnchoredCoin/AlgorithmicStableCoin.sol -------------------------------------------------------------------------------- /contracts/stablecoins/endogenousFloatingCoin/Fpi.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/stablecoins/endogenousFloatingCoin/Fpi.sol -------------------------------------------------------------------------------- /contracts/stablecoins/exogenousAnchoredCoin/DSCEngine.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/stablecoins/exogenousAnchoredCoin/DSCEngine.sol -------------------------------------------------------------------------------- /contracts/stablecoins/exogenousAnchoredCoin/DecentralizedStableCoin.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/stablecoins/exogenousAnchoredCoin/DecentralizedStableCoin.sol -------------------------------------------------------------------------------- /contracts/stablecoins/exogenousFloatingCoin/FCEngine.sol: -------------------------------------------------------------------------------- 1 | // TODO.... -------------------------------------------------------------------------------- /contracts/stablecoins/exogenousFloatingCoin/FloatingCoin.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/stablecoins/exogenousFloatingCoin/FloatingCoin.sol -------------------------------------------------------------------------------- /contracts/test/MockERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/test/MockERC20.sol -------------------------------------------------------------------------------- /contracts/test/MockV3Aggregator.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/contracts/test/MockV3Aggregator.sol -------------------------------------------------------------------------------- /deploy/00-deploy-mocks.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/deploy/00-deploy-mocks.js -------------------------------------------------------------------------------- /deploy/01-deploy-reward-token.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/deploy/01-deploy-reward-token.js -------------------------------------------------------------------------------- /deploy/02-deploy-staking.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/deploy/02-deploy-staking.js -------------------------------------------------------------------------------- /deploy/03-deploy-lending.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/deploy/03-deploy-lending.js -------------------------------------------------------------------------------- /deploy/04-deploy-options.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/deploy/04-deploy-options.js -------------------------------------------------------------------------------- /deploy/05-deploy-centralized-stablecoins.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/deploy/05-deploy-centralized-stablecoins.js -------------------------------------------------------------------------------- /deploy/05-deploy-stablecoins.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/deploy/05-deploy-stablecoins.js -------------------------------------------------------------------------------- /deploy/06-deploy-decentralized-stablecoin.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/deploy/06-deploy-decentralized-stablecoin.js -------------------------------------------------------------------------------- /docs/uniswap-v1/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/README.md -------------------------------------------------------------------------------- /docs/uniswap-v1/constant-product.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/constant-product.png -------------------------------------------------------------------------------- /docs/uniswap-v1/equa1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/equa1.png -------------------------------------------------------------------------------- /docs/uniswap-v1/equa2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/equa2.png -------------------------------------------------------------------------------- /docs/uniswap-v1/equa3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/equa3.png -------------------------------------------------------------------------------- /docs/uniswap-v1/equa4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/equa4.png -------------------------------------------------------------------------------- /docs/uniswap-v1/equa5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/equa5.png -------------------------------------------------------------------------------- /docs/uniswap-v1/equa6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/equa6.png -------------------------------------------------------------------------------- /docs/uniswap-v1/equa7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/equa7.png -------------------------------------------------------------------------------- /docs/uniswap-v1/equations.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/docs/uniswap-v1/equations.tex -------------------------------------------------------------------------------- /hardhat.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/hardhat.config.js -------------------------------------------------------------------------------- /helper-functions.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/helper-functions.js -------------------------------------------------------------------------------- /helper-hardhat-config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/helper-hardhat-config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/package.json -------------------------------------------------------------------------------- /scripts/sample-script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/scripts/sample-script.js -------------------------------------------------------------------------------- /test/amm/uniswap-v1/Exchange.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/test/amm/uniswap-v1/Exchange.test.js -------------------------------------------------------------------------------- /test/amm/uniswap-v1/Token.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/test/amm/uniswap-v1/Token.test.js -------------------------------------------------------------------------------- /test/unit/centralizedStablecoin.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/test/unit/centralizedStablecoin.test.js -------------------------------------------------------------------------------- /test/unit/lending.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/test/unit/lending.test.js -------------------------------------------------------------------------------- /test/unit/options.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/test/unit/options.test.js -------------------------------------------------------------------------------- /test/unit/stablecoins/centralizedStableCoin.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/test/unit/stablecoins/centralizedStableCoin.test.js -------------------------------------------------------------------------------- /test/unit/stablecoins/decentralizedStableCoin.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/test/unit/stablecoins/decentralizedStableCoin.test.js -------------------------------------------------------------------------------- /test/unit/staking.test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/test/unit/staking.test.js -------------------------------------------------------------------------------- /utils/move-blocks.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/utils/move-blocks.js -------------------------------------------------------------------------------- /utils/move-time.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/utils/move-time.js -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smartcontractkit/defi-minimal/HEAD/yarn.lock --------------------------------------------------------------------------------