You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It was tested on anvil using cast that it is possible to send a transaction directly to a precompile. To reproduce, run anvil and select a private key in the provided list. Then run cast send 0x0000000000000000000000000000000000000007 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003 --value 1 --private-key "selected_private_key". You can then verify that this indeed executed the ecmul precompile by running cast run "previous_transaction_hash". This should ouput:
Executing previous transactions from the block.
Traces:
[6000] PRECOMPILE::ecmul{value: 1}(1, 2, 3)
└─ ← 3353031288059533942658390886683067124040920775575537747144343083137631628272 [3.353e75], 19321533766552368860946552437480515441416830039777911637913418824951667761761 [1.932e76]
However, in the case of Kakarot (ignoring the fact that for now only 4/9 precompiles are functionning), the contract that will be called is the starknet address compute using Accounts.compute_starknet_address(to). Meaning Kakarot will fail to call the correct precompile.
The following list of test call a precompile directly. Out of the list, currently only randomStatetest642 is being skipped, meaning the other tests are producing false positives.
Bug Report
Kakarot version f5d013f
Current behavior
It was tested on
anvil
usingcast
that it is possible to send a transaction directly to a precompile. To reproduce, runanvil
and select a private key in the provided list. Then runcast send 0x0000000000000000000000000000000000000007 0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003 --value 1 --private-key "selected_private_key"
. You can then verify that this indeed executed theecmul
precompile by runningcast run "previous_transaction_hash"
. This should ouput:However, in the case of Kakarot (ignoring the fact that for now only 4/9 precompiles are functionning), the contract that will be called is the starknet address compute using
Accounts.compute_starknet_address(to)
. Meaning Kakarot will fail to call the correct precompile.The following list of test call a precompile directly. Out of the list, currently only
randomStatetest642
is being skipped, meaning the other tests are producing false positives.Expected behavior
The precompiles should be correctly called when directly targeted from a transaction.
Additional information
This gives information about issue kkrt-labs/ef-tests#533.
The text was updated successfully, but these errors were encountered: