TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.49K subscribers
Post #1388 805
Погружение в EIP-7702. Часть 8

Сегодня разберем скрипт деплоя для нашего теста.

Файл BatchCallAndSponsor.s.sol содержит тестовый скрипт для контракта BatchCallAndSponsor. Он делает деплой контракта, минтит токены и тестирует функции пакетного и спонсорского выполнения. Мы будем использовать этот скрипт для развертывания контракта и тестирования его функций в локальной сети.

function run() external {
// Start broadcasting transactions with Alice's private key.
vm.startBroadcast(ALICE_PK);

// Deploy the delegation contract (Alice will delegate calls to this contract).
implementation = new BatchCallAndSponsor();

// Deploy an ERC-20 token contract where Alice is the minter.
token = new MockERC20();

// // Fund accounts
token.mint(ALICE_ADDRESS, 1000e18);

vm.stopBroadcast();

// Perform direct execution
performDirectExecution();

// Perform sponsored execution
performSponsoredExecution();
}


Для начала запустим локальный блокчейн:

anvil --hardfork prague


В другом терминале установим зависимости проекта и скомпилируем контракты:

forge install
forge build


Теперь можно запускать тесты:

forge test -vvv


В общем, у вас должно получиться следующее:

Ran 4 tests for test/BatchCallAndSponsor.t.sol:BatchCallAndSponsorTest
[PASS] testDirectExecution() (gas: 128386)
Logs:
Sending 1 ETH from Alice to Bob and transferring 100 tokens to Bob in a single transaction

[PASS] testReplayAttack() (gas: 114337)
Logs:
Test replay attack: Reusing the same signature should revert.

[PASS] testSponsoredExecution() (gas: 110461)
Logs:
Sending 1 ETH from Alice to a random address while the transaction is sponsored by Bob

[PASS] testWrongSignature() (gas: 37077)
Logs:
Test wrong signature: Execution should revert with 'Invalid signature'.

Suite result: ok. 4 passed; 0 failed; 0 skipped;


Теперь можно запустить наш скрипт. Тут мы используем команды:

--broadcast: Транслирует транзакции в вашу локальную сеть.
--rpc-url 127.0.0.1:8545: Подключается к вашей локальной сети.
--tc BatchCallAndSponsorScript: Указывает целевой контракт для сценария.

forge script ./script/BatchCallAndSponsor.s.sol --tc BatchCallAndSponsorScript --broadcast --rpc-url 127.0.0.1:8545


Может появиться предупреждающее сообщение, подобное следующему:

Warning: Script contains a transaction to 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 which does not contain any code.
Do you wish to continue?


Это предупреждение ожидаемо, поскольку до применения EIP-7702, у EOA нет кода на блокчейн сети. Просто введите "y", чтобы продолжить.

После завершения работы скрипта вы увидите сообщения журнала, указывающие на то, что выполнение прошло успешно. Транзакции сохраняются в папке broadcast, а все конфиденциальные значения - в папке cache.

ONCHAIN EXECUTION COMPLETE & SUCCESSFUL.

Transactions saved to: /project-path/broadcast/...
Sensitive values saved to: /project-path/cache/...


Вы можете просмотреть сохраненные транзакции, чтобы узнать больше о том, как выполняются транзакции EIP-7702. Например, в последней транзакции спонсируемого выполнения Боб является отправителем, а адрес контракта принадлежит Алисе. Кроме того, эта транзакция включает в себя список authorizationList, содержащий подписанные авторизации.

#eip7702
  • 👍 6
  • 🔥 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 →