Full support on the deployment on Avalanche, for obvious reasons given the success of v2 on the network.
I would probably lean for the deployment of V3 instead of the upgrade, for the following reasons, which I think are important to consider:
- It is technically simpler. Let’s be realistic, at the moment the V2-to-V3 upgrade contract still are a work in progress, and that would delay potentially some time V3 on Avalanche, which is a bit strange given that precisely it is a network “battle proven” in what regards the Aave protocol.
- In terms of UX, the migration should be pretty straightforward for V2 users. The case is technically the same as V1-to-V2 migration, with users being able to migrate their whole positions (collateral/borrowings) or via withdrawal on V2 and deposit on V3 (simple deposits), or via migration of the whole position via flash loans. In the last scenario, flash liquidity is needed to migrate the position, but it should be possible because the users migrating pure deposits (without borrowings) first will “build” the depth of liquidity on V3 to flash from. In addition, there is other flash liquidity sources on Avalanche for what I am aware.
- Another extra point to consider is the presence of “native” USDC and USDT on Avalanche (non USDC.e and USDT.e) (see here and here). If V2 is upgraded to V3, somehow the listed and deposited USDC.e and USDT.e will need to be migrated on the context of Aave. This is not a trivial thing to do. Meanwhile, by going with the V3 deployment method, the solution is as simple as listing only the “native” USDC and USDT versions, and introducing the migration USDC.e → USDC on the migration V2->V3 itself.
In terms of implementation, and considering the cost of operating on Avalanche even if no migration contract would be available on launch, I would say the effort is lower by just deploying V3.