TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.49K subscribers
Post #622 410
Про внешние контракты в Foundry

И еще один момент для проведения тестов. Мне сегодня попался контракт для аудита, в котором был внешний контракт токена, т.е. уже задеплоенный в mainnet.

Требовалось сделать форк mainnet к себе в рабочую среду и уже оттуда проводить тесты.

Для форка потребуется зарегистрировать на Alchemy или Infura и получить специальную ссылку, которую позже записать в .env файл, например, под переменной ETH_RPC_URL.

Но сейчас не об этом.

В общем, у меня была переменная:

IMainToken internal  _token;

которая в SetUp функции определялась внешним контрактом:

_token = IMainToken (0x84385v475473...);

и импортировалась из файла интерфейса:

import { IMainToken} from "./utils/IMainToken.sol";

И вот для доступа к этому внешнему контракту и требовался форк. Но можно сделать и без него только с локальной сетью.

Нужно просто скопировать задеплоенный контракт, сохранить его в папке проекта и затем импортировать:

import { MainToken} from "./utils/MainToken.sol";

далее можно через

ptoken = new MainToken();

создать объект и работать с ним.

Однако, если в связанных с IMainToken других файлах есть обращения к токену, то они могут выкидывать ошибку при попытке провести тест. Поэтому потребуется немного доработать:

Оставить оба импорта:

import { MainToken} from "./utils/MainToken.sol";
import { IMainToken} from "./utils/IMainToken.sol";

Затем создать новый контракт токена:

ptoken = new MainToken();

и уже к к токену в файле определить созданный контракт:

_token = address(ptoken);

Тогда все будет работать. Проверил на двух проектах. Надеюсь и вам поможет.

#foundry
  • 👍 2
More from @solidityset
  1. Sep 22, 2026Какой язык программирования учить сейчас? На днях в Твиттере увидел небольшой пост о разви…
  2. Sep 18, 2026Интересная модель Jev Буквально пару дней назад в Твиттере многие начали обсуждение новой…
  3. Sep 14, 2026Графы повсюду Если вы также следите за новостями в мире ИИ, то наверняка уже все чаще встр…
  4. Sep 10, 2026GTA6, Cyberleek, блокчейн и безопасность Увидел несколько постов (тут и тут) про Cyberleek…
  5. Sep 9, 2026Работа с чистой энергией Дисклеймер Сегодня ава и название канала, наконец, поменялись. Я…
  6. Sep 9, 2026Channel name was changed to «Из Solidity в AI и дальше»
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →