# a.DI for DAO OPS
### Как работает
[LIP-24](https://github.com/lidofinance/lido-improvement-proposals/blob/feat/lip-24/LIPS/lip-24.md).
Сетап: `Agent` -> `Ethereum bridge` -> `BSC bridge` -> `Executor`
Классический форвардер, без рокетсаенса. Гонится коллдата для вызова на `Executor`, который может взаимодействовать с чем угодно на стороне BSC. Сам по себе a.DI под капотом использует несколько бриджей и механизм консенсуса, чтобы не попадать в вендор лок.
Контракт `Executor` не upgradable, будет необходимость изменить только если поменяется адрес агента (то есть никогда).
Контракты бриджа работают через `TransparentProxy`, админами которых на стороне Ethereum является `Agent`, на стороне BSC - `Executor`. То есть апгрейд при необходимости будем гнать через `Executor`.
### Тестнет
[Раздеплоено](https://github.com/lidofinance/aave-delivery-infrastructure/blob/2a883777c02487571adfc08fbf362d57134a493f/deployments/addresses.json) на Сеплоия + Бинанс-тестнет. Овнер контрактов: `Agent` на Сеполии (+ `Executor`).
[Деплой план](https://www.notion.so/a-DI-governance-forwarder-to-BSC-chain-deploy-plan-1141ba98e7ef4376a1d868e96ba365fd).
Скрипты можно гнать на сетапе Foundry (который написан ааве (нам не очень подходит)), можно гнать на Python. [Пример](https://github.com/lidofinance/scripts/blob/cross-chain-executor-test/scripts/vote_2024_05_08_sepolia.py) в нашей репке scripts.
### Как работает у ааве
В нашем случае гонится коллдата на `Executor` и действие выполняется с него (он держит все необходимые роли).
В случае ааве ребята деплоят одноразовый смарт контракт на л2, а через бридж гонят этому контракту выдачу ролей и разрешение на пермишенлесс выполнение. В их случае это просто экономнее по газу, хотя по смыслу то же самое. Посмотреть можно [здесь](https://docs.aave.com/developers/deployed-contracts/governance).