> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Прокси-контракты

> Импортируйте прокси-контракты в Tenderly, просматривайте их реализацию и историю адресов назначения, а также преобразуйте нестандартные контракты в прокси.

<Note>
  При симуляции транзакции с прокси-контрактом Tenderly покажет все функции как прокси, так и контракта, на который он делегирует вызовы, чтобы упростить [отладку и редактирование кода](/debugger/overview).
</Note>

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2016.17.04.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=aeea939cb83ff93c6ab1b4cd8bdcea0d" alt="" width="2880" height="1306" data-path="images/Screenshot 2021-10-14 at 16.17.04.webp" />

Прокси-контракт по сути содержит только одну переменную — адрес назначения для пересылки вашей транзакции. Они используются для упрощения версионирования контрактов или исправления ошибок: если вы хотите изменить свой смарт-контракт, вы можете выполнить новое развёртывание, не беспокоясь о зависимостях, и изменить лишь адрес назначения в прокси-контракте на новый обновлённый контракт.

Вы можете импортировать любой контракт через стандартный процесс:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2016.23.09.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=fd02bef92cebc285a2e36c341f44b965" alt="" width="2880" height="1306" data-path="images/Screenshot 2021-10-14 at 16.23.09.webp" />

Tenderly автоматически определит прокси-контракт и предложит добавить его последнюю реализацию:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2016.24.23.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=0c0f6cc012c13fc439e397527d17ad0b" alt="" width="2880" height="1230" data-path="images/Screenshot 2021-10-14 at 16.24.23.webp" />

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2016.25.05.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=c591dfc680eac559f90d84a2f5334bc6" alt="" width="2880" height="1230" data-path="images/Screenshot 2021-10-14 at 16.25.05.webp" />

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2016.25.42.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=5e172dbf4a714e0ddc35f47b6a9b7544" alt="" width="2880" height="1230" data-path="images/Screenshot 2021-10-14 at 16.25.42.webp" />

Вы также сможете увидеть все предыдущие (исторические) адреса назначения, которые были заданы для вашего прокси-контракта:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2016.26.29.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=3c275cad2a346440fa5a6b2de81bc686" alt="" width="2880" height="1230" data-path="images/Screenshot 2021-10-14 at 16.26.29.webp" />

Кроме того, если ваш контракт должен использоваться как прокси, но не соответствует текущим отраслевым стандартам, вы можете преобразовать любой контракт в прокси-контракт:

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202021-10-14%20at%2016.28.13.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=b6bc4a32c37215bbcf6ecad6e7c576ab" alt="" width="2880" height="1230" data-path="images/Screenshot 2021-10-14 at 16.28.13.webp" />

Если вы импортируете прокси-контракт, который не соответствует одному из двух отраслевых стандартов, автоматически определяемых Tenderly (EIP-1967 и EIP-1167), вы теперь можете легко преобразовать этот прокси-контракт так, чтобы он распознавался Tenderly.

Если вы используете другой стандарт, отличный от упомянутых выше, вы можете указать view-функцию, определённую в вашем контракте, которая возвращает адрес реализации. Также вы можете вручную задать [слот](https://docs.soliditylang.org/en/v0.8.11/internals/layout_in_storage.html#layout-of-state-variables-in-storage) хранилища, содержащий адрес реализации, чтобы преобразовать этот контракт в прокси.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202022-04-14%20at%2013.42.06.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=baf27e8d2ec58c54d5a678e9feaecdcb" alt="" width="2556" height="977" data-path="images/Screenshot 2022-04-14 at 13.42.06.webp" />

Tenderly отобразит все функции без параметров, возвращающие `address` в качестве возвращаемого типа, чтобы вы могли выбрать функцию, возвращающую адрес реализации для проксируемого контракта. Также вы можете выбрать аккаунт, от имени которого будет отправлена эта транзакция — это важно, если у выбранной функции прокси-контракта есть определённые правила выполнения (например, адреса, с которых её можно вызывать).

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202022-04-14%20at%2013.45.17.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=b6f06b95e94a9043320c93f1c102e7d5" alt="" width="2556" height="977" data-path="images/Screenshot 2022-04-14 at 13.45.17.webp" />

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/Screenshot%202022-04-14%20at%2013.50.05.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=3e8bb80f25d8ae4f87ee1fca78c85042" alt="" width="2556" height="977" data-path="images/Screenshot 2022-04-14 at 13.50.05.webp" />

Вы по-прежнему можете использовать хеш слота реализации для импорта прокси-контрактов, включив переключатель `use storage slot`, если такой способ вам предпочтительнее.
