
Product
A New Overview in our Dashboard
We redesigned Socket's first logged-in page to display rich and insightful visualizations about your repositories protected against supply chain threats.
@bgd-labs/aave-address-book
Advanced tools
This repository contains an up-to-date registry of all addresses of the Aave ecosystem's smart contracts, for its usage in Solidity codebases.
This repository contains an up-to-date registry of all addresses of the Aave ecosystem's smart contracts, for its usage in Solidity codebases.
The goal is for Solidity developers to have the most integrated environment possible when they want to develop on top of Aave, by just importing a package with all the necessary addresses to interact with.
You can find a searchable version of the address book on https://search.onaave.com/.
With Foundry installed and being in a Git repository:
forge install bgd-labs/aave-address-book
Import a pool specific collection of addresses & interfaces:
import {AaveV2Ethereum} from "aave-address-book/AaveV2Ethereum.sol";
import {AaveV3Avalanche} from "aave-address-book/AaveV3Avalanche.sol";
Import addresses and interfaces to interact with Governance:
import {AaveGovernanceV2} from "aave-address-book/AaveGovernanceV2.sol";
import {IGovernanceCore} from "aave-address-book/GovernanceV3.sol";
Import miscellaneous network addresses and interfaces relevant to the aave protocol:
import {Misc<Network>} from "aave-address-book/Aave<Network>.sol";
While there is a index import available in "aave-address-book/AaveAddressBook.sol", we only recommend using it in tests.
Foundry currently does not eliminate unused code for verification.
This results in rather gigantic verifications when using the index file import from aave-address-book/AaveAddressBook.sol.
For production code we therefore recommend to use pool specific libraries (Aave[Version][Network][?SubPool]
) exported from aave-address-book
like AaveV2Ethereum
for the V2
Ethereum
pool.
npm i @bgd-labs/aave-address-book
import * as pools from "@bgd-labs/aave-address-book"; // wildcard import
import { AaveV2Avalanche } from "@bgd-labs/aave-address-book"; // import specific pool
// all variables available on solidity version are available in javascript as well
console.log(AaveV2Avalanche.POOL_ADDRESSES_PROVIDER);
// "0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb"
// in addition the chainId of the respective addresses is exported alongside
console.log(AaveV2Avalanche.CHAIN_ID);
// 43114
The library is generated based on the scripts/generateAddresses.ts
and scripts/generateABIs.ts
scripts. You can regenerate the files by running npm run start
.
forge update
forge build
forge test
To list a new pool in the address book, you simply need to add a new pool in the respective pools config and run npm run generate:addresses
.
a) Adding an address that can be obtained via onchain calls so it doesn't need to be hardcoded on the configs:
To achieve an addition here you need to add the address to the respective v2 type and/or v3 type and adjust the generator scripts accordingly. New types should be added to the AaveV2 and AaveV3 files.
b) Adding an address that cannot be obtained via onchain calls so it needs to be manually maintained:
To achieve an addition here, you need to alter the additionalAddresses section on the pool type and add your address to the respective pools. Additional addresses will currently be exported as type address
. There's currently no possibility to define a custom type.
In any case you need to run npm run generate:addresses
afterwards and commit the altered artifacts.
.env
file an entry of ETHERSCAN_API_KEY
with a mainnet API key on it.snowscan.io
This repository will try to use public rpcs.
For some networks they are not very reliable though, therefore you can set RPC_<NETWORK>
in your .env to use a private rpc.
Check https://github.com/bgd-labs/aave-address-book/blob/main/scripts/clients.ts#L39 for the chain naming convention.
Alternatively you can provide an ALCHEMY_API_KEY
which will use alchemy as a fallback if no exact RPC is specified.
To install the Aave Search extension for Raycast:
Store
and select the Store commandAave Search
or navigate directly to the extension page.⌘ + ↵
to install the extensionOnce installed, you can use the extension by typing aave
in Raycast.
FAQs
This repository contains an up-to-date registry of all addresses of the Aave ecosystem's smart contracts, for its usage in Solidity codebases.
The npm package @bgd-labs/aave-address-book receives a total of 5,389 weekly downloads. As such, @bgd-labs/aave-address-book popularity was classified as popular.
We found that @bgd-labs/aave-address-book demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
We redesigned Socket's first logged-in page to display rich and insightful visualizations about your repositories protected against supply chain threats.
Product
Automatically fix and test dependency updates with socket fix—a new CLI tool that turns CVE alerts into safe, automated upgrades.
Security News
CISA denies CVE funding issues amid backlash over a new CVE foundation formed by board members, raising concerns about transparency and program governance.