TGViewer
Born on Web3 Born on Web3 @bornweb3 · 209 subscribers
Post #46 145
#Day23/24 😱

изучено: internal vs external calls, msg.sender/msg.value в цепочке вызовов, factory pattern и создания контакта из контракта

📕 выжимка изученого:

🟠internal vs external calls
в solidity контракты могут вызывать функции внутри себя или вызывать другие контракты

internal call это внутренний вызов функции внутри того же контракта. Он работает как обычный вызов функции в коде и выполняется быстрее, потому что не создаётся новый вызов в EVM

external call это когда контракт вызывает функцию другого контракта. В этом случае происходит отдельный вызов через EVM и передаются данные между контрактами

простой пример: есть контракт кошелька и контракт токена. Если контракт кошелька вызывает функцию перевода в контракте токена, это уже external call

важно понимать что external calls могут быть опаснее, потому что в этот момент управление временно передаётся другому контракту
🟠msg.sender и msg.value в цепочке вызовов
msg.sender это адрес того кто непосредственно вызвал функцию

msg.value это количество ETH которое было отправлено вместе с вызовом

интересный момент появляется когда контракты вызывают друг друга

например пользователь вызывает контракт обменника, а этот контракт внутри вызывает контракт токена чтобы перевести монеты

для контракта токена:
msg.sender будет контракт обменника, а не пользователь

то есть msg.sender всегда показывает последнего участника в цепочке вызовов

это важно учитывать при написании логики доступа и проверок внутри контрактов
🟠factory pattern
factory pattern это паттерн при котором один контракт создаёт другие контракты

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

это часто используется например для:
>создания новых пулов
>создания новых DAO
>создания новых NFT коллекций
>создания персональных контрактов для пользователей

простой принцип работы:
есть контракт Factory. Пользователь вызывает функцию create. После этого Factory деплоит новый контракт прямо из своего кода

например это может быть фабрика которая создаёт новый NFT контракт для каждого проекта или новый пул ликвидности

в итоге один контракт может создавать много одинаковых контрактов, а также хранить список всех созданных.

главная идея этого паттерна в том, чтобы удобно масштабировать систему и управлять созданием новых контрактов через один центр


Gn 🤑
More from @bornweb3
  1. May 31, 2026НЕ КАЧАЕШЬ TWITTER?! - БОЛВАН 😳 X стал тем местом, где сейчас крутятся миллионы и это без…
  2. Apr 30, 2026Roadmap web3-разработчика 👅 я никуда не пропал и обучение не забросил. Просто старый форм…
  3. Apr 23, 2026КАК НАЙТИ РАБОТУ В WEB3?! 😑 только тсс, очень секретная инфа.. - каналы по вакансиям: оди…
  4. Apr 20, 2026БЕЗ ЭТОГО ТЫ ПРОСТО НЕ ВЫЖИВЕШЬ В WEB3!!! 💥 а именно - без качественного инфополя, которо…
  5. Apr 19, 2026Все уже не будет прежним - всё меняется! как я скучал… вроде бы отсутствовал полторы недел…
  6. Apr 18, 2026Я тут! Я готов! Начинаем плотнейший ворк! 🫴 от всего перезагрузился, отдохнул, и врываюсь…
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 →