TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.49K subscribers
Post #1425 937
Solidity hints. Часть 27

А вот об этом пункте деплоя контрактов с библиотеками в блокчейн даже я не знал.

Когда компилятор Solidity обрабатывает контракт, использующий библиотеку, он не знает, по какому адресу эта библиотека будет развернута в будущем. В результате скомпилированный байт-код содержит специальные заглушки, которые выглядят как $30bbc0abd4d6364515865950d3e0d10953$. Эти заглушки необходимы, так как на момент компиляции адрес библиотеки неизвестен, и их нужно заменить на реальные адреса после деплоя библиотеки в сеть.

Заглушка формируется как 34-символьный префикс от хеша keccak256 полного имени библиотеки. Например, если библиотека BigInt находится в файле bigint.sol внутри директории libraries, её полное имя будет выглядеть как libraries/bigint.sol:BigInt. Компилятор хеширует это имя и использует часть хеша в качестве временного заполнителя. Это позволяет однозначно идентифицировать библиотеку на этапе линковки.

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

Процесс линковки обычно выполняется с помощью инструментов, таких как Hardhat, Foundry или Remix, которые автоматически находят нужные библиотеки в сети и подставляют их адреса. Вручную это тоже возможно, но требует точного соответствия между именем библиотеки и её адресом. После замены всех плейсхолдеров контракт становится готовым к развертыванию и корректной работе в блокчейне.

#libraries
  • 👍 7
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 →