Solidity и смарт-контракты Ethereum, урок #35 | Динамические массивы и мэппинги в storage

preview_player
Показать описание
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами: вы действительно узнаете ОЧЕНЬ много нового.

Помимо этого, вы получите пожизненный бесплатный доступ к платформе, регулярным стримам, семинарам, подкастам и дискуссионным клубам.

2. Выберите один из буткемпов
3. Примените промо-код: KRUK

В этом уроке по Solidity мы поговорим о storage (state): в частности, о том, как в нём представлены данные. Особое внимание уделим динамическим массив и мэппингам и узнаем, как именно размещаются их элементы. Также с помощью getStorageAt мы попробуем самостоятельно читать различные слоты в state, чтобы проверить теорию на практике.

Таймкоды:
00:00 Введение
02:00 Uint в state и слоты
05:15 Используем getStorageAt для чтения слотов
09:30 Как хранится в state динамический массив?
17:15 Как хранится mapping?
24:30 Заключение

Аккаунт Ethereum (ETH), Arbitrum, Polygon, BNB, USDT, TRX, BUSD: 0x719C2d2bcC155c85190f20E1Cc3710F90FAFDa16

Рекомендации по теме
Комментарии
Автор

спасибо вам огромное за труды! на одном дыхании урок за уроком! лучшая подача материала! 🔥

rise
Автор

Спасибо огромное за уроки! Нет желания записать видео про ошибку stack too deep? Очень популярная ошибка, когда пишешь огромные функции или очень много параметров в функцию закидываешь. Был бы бесконечно признателен, надеюсь народ поддержит :D. А так еще раз спасибо!

joYyHack
Автор

Спасибо за урок, очень интересная информация :)

bohdanprog
Автор

А получается если у нас есть динамический массив и его длина занимает 1 Слот, длина ограниченна грубо говоря максимально возможным числом или же нет ограничения и там например будут просто доп слоты для длины массива добавляться

int_not_float
Автор

Может быть в следующем уроке рассмотрим прикладную задачу, например стейкинг токенов с использованием юнисвап или сушисвап... Было бы интересно посмотреть решение реальных задач которые стоят перед разработчиками

АлександрАлександр-рз
Автор

Здравствуйте, а теоретически может возникнуть такая ситуация, что посчитанный хэш будет указывать на номер слота, где уже лежит какая-то информация? Неважно, динамический массив или мэппинг.
Элементы массива должны располагаться последовательно, мы посчитали где будет первый, потом добавляем элементы, и случайно можем наткнуться на слот, который уже занят. Или хэш почитанный от мэппинга наткнётся на какой-нибудь уже занятый слот

БекзодОлимов-яц
Автор

Спасибо! Интересно было бы понять наглядно, почему массивы едят значительно больше газа, чем мэппинги.

chelovak
Автор

спасибо большое за видео, подскажите какой минимум знаний должен быть что бы устроится сейчас солидити девом, к примеру может какие протоколы надо знать, юнисвап и тд, или может нужно иметь 10-20 написаных проэктов типо стэйкингов, токенов, нфт, маркетплейсов.

johnjackson
Автор

Привет, пришла идея такая по рельсам, Rails + AWS S3 и Rails + GraphQL

TheBedelbaev
Автор

Подскажите, пожалуйста!
С слотами, которые идут по порядку - все интуитивно понятно. Но я искал ответ на вопрос, как вот, например, такой слот (eip-1967 proxy) - 1) - он создается с этим адресом динамически? Если нет, то не понятно как он не пересечется с другими и почему именно такой адрес слота?

chelovak
Автор

Все классно, только бутериум как два месяца уже скис

The