TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Из Solidity в AI и дальше

20 Oct 2023, 12:05

Открыть в Telegram Поделиться Пожаловаться

Foundry с 0. Часть 4

Сегодня мы закончим узнавать новые cast команды и пройдем последние три раздела: ABI, конвертация и полезные инструменты.


ABI команды

1. cast abi-encode / cast abi-decode
- шифрует или расшифровывает данные. Например:

cast abi-encode "someFunc(address,uint256)" 0x... 1 234

cast abi-decode "balanceOf(address)(uint256)" 0x000000000000000000000000000000000000000000000000000000000000000a

2. cast 4byte - можно получить функцию по селектору.

cast 4byte 0x8cc5ce99

3. cast 4byte-decode - расшифровать функцию и ее аргументы из calldata:

cast 4byte-decode 0xa9059cbb000000000000000000000000e78388b4ce79068e89bf8aa7f218ef6b9ab0e9d00000000000000000000000000000000000000000000000000174b37380cea000

4. cast 4byte-event - получить функцию event из calldata

cast 4byte-event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

5. cast calldata - создать calldata из функции и аргументов. Например,

cast calldata "someFunc(address,uint256)" 0x... 1

6. cast calldata-decode - расшифровать calldata

cast calldata-decode "transfer(address,uint256)" 0xa9059cbb000000000000000000000000e78388b4ce79068e89bf8aa7f218ef6b9ab0e9d0000000000000000000000000000000000000000000000000008a8e4b1a3d8000

7. cast-pretty-calldata - еще одна команда для расшифровки calldata, например:

cast pretty-calldata 0xa9059cbb000000000000000000000000e78388b4ce79068e89bf8aa7f218ef6b9ab0e9d00000000000000000000000000000000000000000000000000174b37380cea000


8. cast upload-signature / cast sig - получить селектор функции:

cast upload-signature 'function approve(address,uint256)'

можно указывать несколько подряд

9. cast keccak - получить зашифрованные через keccak256 данные.

cast keccak abcsdfg

10. cast compute-address - сгенерировать адрес на основе nonce и адреса деплоера, например:

cast compute-address --nonce 0 --rpc-url yourUrl

11. cast create2 - создать адрес через опкод creat2.

12. cast interface - создать интерфес контракта из ABI:

cast interface -o IWETH.sol 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

Также можно использовать ABI с Etherscan, но для этого придется получать API и использовать дополнительную опцию --etherscan-api-key.

13. cast max-int / cast min-int / cast max-uint - получение максимальных значений uint256 / int256.


Команды для конвертации данных

Здесь очень много разных команд для конвертации, думаю, некоторые из них мы будем использовать при работе с тестами. В данном посте я просто представлю возможности данных cast команд.

Итак, вы можете конвертировать:

1. Бинарные данные в hex;
2. Fixed point number в integer;
3. Расшифровывать RLP данные;
4. UTF8 text в hex;
5. Количество wei в Эфир;
6. Получать адрес из bytes32;
7. Получать строку из bytes32;
8. hex в строку ASCII;
9. Из hex в числа;
10. Из hex в bytes32;
11. Из hex в RLP;
12. Совершать побитовые операции со сдвигом влево-вправо;

Полные список команд можно найти по ссылке:
https://book.getfoundry.sh/reference/cast/cast-shl

Крайне рекомендую попробовать поработать со всеми командами в свободное время, чтобы понять, как это все работает и привыкнуть работать с cast.


Задание

1. Попробовать выполнить 10 разны команд cast.

#foundry #cast #lesson4

548 0 4 8
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot