TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.49K subscribers
Post #908 753
Foundry с 0. Часть 3

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


Account команды

На данный момент существуют 6 команд cast для работы с аккаунтами:

1. cast balance - позволяет узнать количество нативных токенов сети на аккаунте в wei. Тут, кстати, можно уточнить номер блока, на момент которого был тот или иной баланс. Полная команда выглядит так:

cast balance account --block blockNum --rpc-url RpcUrl

2. cast storage - крутая команда, чтобы получить значения в storage контракта. Можно уточнить слот, в котором лежит значение, и скастовать информацию только из него. Например для WETH контракта:

cast storage 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 0

или просто

cast storage 0x5Af0D9827E0c53E4799BB226655A1de152A425a5

3. cast proof - получение storage proof аккаунта. Не очень понял, что каких целей это может потребоваться. С этой командой вы получить proof таких полей как: accountProof, account address, account balance, codeHash, nonce, storageHash, storageProof, storageProof.key, storageProof.proof, storageProof.value.

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

4. cast nonce - тут все просто, получаем nonce аккаeнта, команда предельно простая:

cast nonce account

5. cast code - получение байткода контракта. Пример с Weth:

cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2

6. cast codesize - получение runtime bytecode size контракта.

P.S. В большинстве команд, где запросы идут в сеть, нужно добавлять свою rpc-url!

Теперь несколько слов о командах для работы с кошельком.


Wallet команды

1. cast wallet new
- создать новый кошелек: адрес и приватный ключ.

2. cast wallet address - конвертация приватного ключа в адрес кошелька. Интересная команда, которая принимает достаточно большое количество опций для генерации адреса: на основе приватного ключа, mnemonic derivation path, mnemonic passphrase, обычного mnemonic. При этом вы также можете указывать, где хранится ключ, который нужно использовать для генерации адреса.

Самая простая команда звучит так:

cast wallet address --private-key PRIVATE_KEY

весь список опция можно найти тут:

https://book.getfoundry.sh/reference/cast/cast-wallet-address

3. cast wallet sign - с ней вы можете подписать сообщение с вашего кошелька. Также, помимо приватных ключей, можно использовать mnemonic опции. Простая команда выглядит так:

cast wallet sign --private-key PRIV_KEY "hello"

4. cast wallet verify - раз можно подписать сообщение, то есть возможность и проверки этого действия. С этой командой можно проверить адресата подписанного сообщения. Команда:

cast wallet verify --address account --address addressMessageSignature

5. cast wallet vanity - интересная команда, которая позволяет сгенерировать адрес по специальным критериям: с определенным окончанием или началом, или nonce. Выглядит так:

cast wallet vanity --ends-with beef

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

Далее несколько команд для работы с транзакциями.


Transaction команды

Для начала пройдемся по командам, которые позволяют получать информацию о проведенных транзакциях:

1. cast receipt - получения "чека" о транзакции. Потребуется указать хэш транзакции:

cast receipt TX_HASH

2. cast tx - похожая на первую и выдает информацию о транзакции.

cast tx TX_HASH

3. cast-estimate - с ней можно оценить стоимость проведения транзакции по газу. Также можно указать, если с ней потребуется переслать нативную валюту, типа Эфира. Команда немного сложнее предыдущих и выглядит так:

cast estimate 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 --value 0.1ether "deposit()" --rpc-url rpcUrl

0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 - адрес контракта, куда пойдет вызов, value - количество отправляемого с транзакцией Эфира, deposit - функция, которую будем вызывать.

Вместо deposit - вы можете вставить calldata с селектором вызываемой функции и аргументами для нее.
  • 👍 7
  • ❤ 1
  • 🔥 1
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 →