# potentially you can user other node versions, but it's only tested on what's currently listed in nvmrc
nvm use
yarn install
cp .env.example .env.local
yarn dev
# builds the app for usage on serverless & containered hosting platforms like vercel
yarn build
# builds the app as a static bundle to be hosted on ipfs
yarn build:static
# setting the environment to 'staging' will enable testnet markets, disabling governance, staking, and production markets
NEXT_PUBLIC_ENV=prod
# you can also disable staking & governance by altering
NEXT_PUBLIC_ENABLE_GOVERNANCE=true
NEXT_PUBLIC_ENABLE_STAKING=true
The integration test suite runs against tenderly forks of various networks. To setup the local environment you need to add environment variables accordingly:
TENDERLY_KEY=<api key>
TENDERLY_ACCOUNT=<account name>
TENDERLY_PROJECT=<project name>
For running the integration test suite you need to run the app. You can either run again yarn dev
which will be a bit more resource intensive as the app will be build on the fly or run against a static build via yarn build:static
& yarn serve:static
.
# open interactive cypress test suite
yarn test:open
# run all tests in headless mode
yarn test:headless
# test a selected markets in headless mode
yarn test:amm|main|polygon|avalanche
You can run the ui against a forked network similar to what the tests do which allows you to play around on the ui without spending actual funds. To enable forks in the ui, you have to run the following commands in console.
localStorage.setItem('forkEnabled', 'true');
localStorage.setItem('forkBaseChainId', 1); // the networkId you are forking
localStorage.setItem('forkNetworkId', '3030'); // the networkId on the fork
localStorage.setItem('forkRPCUrl', <rpcurl>);
As localeStorage is not observed you need to reload after setting the parameters.
Now the market selection should show forked markets for all the markets that run on forkBaseChainId
.
To do actual transactions on the fork you need to setup your wallet to use the same rpcurl
you provided as forkRPCUrl
.
To add a new token to the app, all you have to do is adding a svg token icon inside public/icons/tokens
please make sure the svg name equals the lowercase
onchain symbol
.
If you want a custom name to appear alongside the icon you can alter src/ui-config/reservePatches.ts
accordingly.
Aave uses Crowdin for translation management.
Feel free to reach out to us on discord to become a translator!
We only update strings within the app. Everything else is downloaded from crowdin.
Crowdin Docs for installation of the cli
To upload strings
crowdin upload sources
To download strings
crowdin download
To add a new language first start an issue to check for public interest. If the community decides to go forward with your preferred language follow this pr to add support for a new language.