Solidity. Смарт контракты и аудит
2.62K subscribers
246 photos
7 videos
18 files
550 links
Обучение Solidity. Уроки, аудит, разбор кода и популярных сервисов
Download Telegram
6. Простое взаимодействие с загруженными контрактами

Также вы можете делать форк Ethereum и взаимодействовать с контрактами, которые уже были загружены в блокчейн. Для этого потребуется rpc-ссылка, которую можно получить, например, в сервисе Infura и выполнить команду:

!fork yourRpcLink

можно также указать номер блока для форка:

!fork yourRpcLink 000000000

Далее, к примеру, можно написать так:

interface IERC20 { function balanceOf(address holder) external virtual returns(uint256);}

и присвоить его в переменную с реальным контрактом:

IERC20 usdc = IERC(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48); 

и теперь вы можете делать вызов на контракт на эту функцию:

usdc.balanceOf(...)

где в скобках указать интересующий адрес, как если бы это было в контракте!

7. Сохранение и загрузка сессий

Если вы хотите сохранить некоторые свои наработки в chisel, то можете выполнить команду !save для сохранения сессии, и позже загрузить ее через команду !load.

!clear поможет очистить память chisel от предыдущих операций.

8. Работа с памятью

Есть также три прекрасные команды !memdump, !stackdump и !rawstack для работы с памятью.

Так например, написав небольшой контракт или выполнив abi.encode можно посмотреть, как это будет располагаться в memory или стеке через соответствующую команду, что может быть очень полезно при дебаггинге или изучении работы памяти.

Заключение

Это то, что удалось узнать за пару дней изучения chisel. Вполне возможно, что "наворотов" и сценариев использования программы куда больше.

Мне он понравился тем, что можно быстро проверять побитовые операции и работать с памятью. Думаю, порой буду обращаться к нему.

А вы, что думаете про chisel?

#foundry #chisel #lesson5
👍9🔥1