ℹ️ Important: This repo is no longer maintained; we invite all people learning Solidity to head to Cyfrin Updraft! The 100% free #1 smart contract education platform on earth. Developed with love by Patrick & Cyfrin <3
Put down collateral, Borrow, and repay a loan from Aave! Use this to short assets and accrue interest.
You can see a web3 version of this here.
In our aave_borrow.py
script, we do the following:
- Approve our
ETH
to be swapped forWETH
- Swap an
amount
ofETH
forWETH
- Using
deposit_to_aave
we deposit theWETH
as collateral - We use that collateral to borrow
DAI
withborrow_erc20
- Then, we pay it back!
- We can view the txs on etherscan to see what's going on under the hood.
You'll need python installed. If working with a virtual environment, you can run:
pip install -r requirements.txt
Or, ideally you use pipx:
pip install --user pipx
pipx ensurepath
# restart your terminal
pipx install eth-brownie
You'll need the following environment variables. You can set them all in your .env
file:
export WEB3_INFURA_PROJECT_ID=YourProjectID
export PRIVATE_KEY="0xasdfasdfasdfasd..."
PRIVATE_KEY
: Your Private Key from your Wallet. *Note: If using metamask, you'll have to add a 0x to the start of your private key.WEB3_INFURA_PROJECT_ID
: Your connection to the blockchain. You can get a URL from a service like Infura]. Right now it is hard coded to work with infura, but you can modify it however you want usingbrownie networks modify
.
This doesn't auto-pull in your .env
file at the start, so you have to set your environment variables at the start.
And last, be sure to check the aave_dai_token if you're using a testnet DAI token. Aave sometimes changes the token they use on testnet to keep liquidity, please check here for reference. Also, feel free to check the Aave docs as well, to learn more about the tools we are using.
-
Get some WETH
brownie run scripts/get_weth.py --network kovan
- Run the script!
brownie run scripts/aave_borrow.py --network kovan
Optional for running locally:
If you want to run locally, you can install ganache-cli
and yarn
. Here is where you can install yarn.
yarn global add ganache-cli
Then, you can run ganache-cli --fork YOUR_INFURA_URL_HERE
, or just brownie run <YOUR_SCRIPT> --network mainnet-fork
- Get some WETH, borrow, and repay!
brownie run scripts/aave_borrow.py