testdeploy-v3
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

Test V3 Deployments

This Node.js repository contains the configuration and deployment scripts for the Test V3 protocol core and periphery contracts. The repository makes use of hardhat and hardhat-deploy tools to facilitate the deployment of Test V3 protocol.

Requirements

Getting Started

  1. Install Node.JS dependencies:

    npm i
    
  2. Compile contracts before running any other command, to generate Typechain TS typings:

    npm run compile
    

How to deploy Test V3 in testnet network

To deploy Test V3 in a Testnet network, copy the .env.example into a .env file, and fill the environment variables MNEMONIC, and ALCHEMY_KEY.

cp .env.example .env

Edit the .env file to fill the environment variables MNEMONIC, ALCHEMY_KEY and MARKET_NAME. You can check all possible pool configurations in this file.

nano .env

Run the deployments scripts and specify which network & test market configs you wish to deploy.

HARDHAT_NETWORK=goerli npx hardhat deploy

How to deploy Test V3 in fork network

You can use the environment variable FORK with the network name to deploy into a fork.

FORK=main MARKET_NAME=Aave npx hardhat deploy

How to integrate in your Hardhat project

You can install the @aave/deploy-v3 package in your Hardhat project to be able to import deployments with hardhat-deploy and build on top of Test in local or testnet network.

To make it work, you must install the following packages in your project:

npm i --save-dev @aave/deploy-v3 @aave/core-v3 @aave/periphery-v3

Then, proceed to load the deploy scripts adding the externals field in your Hardhat config file at hardhat.config.js|ts.

# Content of hardhat.config.ts file

export default hardhatConfig: HardhatUserConfig = {
   {...},
   external: {
    contracts: [
      {
        artifacts: 'node_modules/@aave/deploy-v3/artifacts',
        deploy: 'node_modules/@aave/deploy-v3/dist/deploy',
      },
    ],
  },
}

After all is configured, you can run npx hardhat deploy to run the scripts or you can also run it programmatically in your tests using fixtures:

import {getPoolAddressesProvider} from '@aave/deploy-v3';

describe('Tests', () => {
   before(async () => {
      // Set the MARKET_NAME env var
      process.env.MARKET_NAME = "Aave"

      // Deploy Test V3 contracts before running tests
      await hre.deployments.fixture(['market', 'periphery-post']);`
   })

   it('Get Pool address from AddressesProvider', async () => {
      const addressesProvider = await getPoolAddressesProvider();

      const poolAddress = await addressesProvider.getPool();

      console.log('Pool', poolAddress);
   })
})

How to verify your contract deployments

npx hardhat --network XYZ etherscan-verify --api-key YZX

Project Structure

Path Description
deploy/ Main deployment scripts dir location
├─ 00-core/ Core deployment, only needed to run once per network.
├─ 01-periphery_pre/ Periphery contracts deployment, only need to run once per network.
├─ 02-market/ Market deployment scripts, depends of Core and Periphery deployment.
├─ 03-periphery_post/ Periphery contracts deployment after market is deployed.
deployments/ Artifacts location of the deployments, contains the addresses, the abi, solidity input metadata and the constructor parameters.
markets/ Directory to configure Test markets
tasks/ Hardhat tasks to setup and review market configs
helpers/ Utility helpers to manage configs and deployments

Readme

Keywords

none

Package Sidebar

Install

npm i testdeploy-v3

Weekly Downloads

2

Version

1.0.1

License

none

Unpacked Size

61.1 MB

Total Files

2072

Last publish

Collaborators

  • abdul07