This repository was archived by the owner on Jul 22, 2024. It is now read-only.
Commit e9ecfc0
Add documentations to syscalls/business_logic_syscall_handler module (#887)
* added comments to syscalls/business_logic_syscall_handler.rs
* added syscall information
* Update src/syscalls/business_logic_syscall_handler.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Add comments to origin/Document-transactionl1_handler module (#888)
* added comments to origin/Document-transactionl1_handler-module
* modified comments
* Test multi syscall (#687)
* create multy syscall
* remove the replace syscall, it failed because the contract adress didn't match
* added library call_syscall
* wip
* wip
* wip
* wip
* work in progress
* remove .sjon files from starknet_programs
* finished implemented all the syscalls
* reorder code, create one call to syscall
* fix pull bug
* Update tests/multi_syscall_test.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update starknet_programs/cairo1/multi_syscall_test.cairo
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update starknet_programs/cairo1/contract_a.cairo
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update tests/multi_syscall_test.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* added test syscall for deploy
* make format changes
* corrected make clippy error
* get_caller_address and get_contract_address return a adress
* failed of get_contract_address
* failed of get_contract_address
* wip
* modify the selector entrypoint_selector to be function specific
* wip
* wip
* wip
* add input to cairo functions
* coorect format problem
* wip
* wip
* wip
* remove format problem
* Fix sierra class hash calculation (#886)
* reproduce bug
* use pythonic formatter
* rename test
* fix test
* cargo fmt
* Fail with an Err transactions whose calculated fee exceed `max_fee` (#892)
* Make tx fail when actual_fee exceeds max_fee
* Changed test
* Formatting
* Fix logic
* Leave fail only without charging
* Change test
* Fix test broken by better fee calc
* Fixed test fee
* Update fee on test_deploy_account
* Remove comment
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix test_get_nonce_at (#910)
* Fix test_get_nonce_at
* Rely on another contract
* fix get_sorted_events bug (#912)
* fix get_sorted_events bug
* fmt
* fix clippy
---------
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
* Added documentations to syscalls/deprecated_syscall_handler module (#883)
* added comments to file syscalls/deprecated_syscall_handler-module'
* Update src/syscalls/deprecated_syscall_handler.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update src/syscalls/deprecated_syscall_handler.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* wip
* Modify the tests
* fixed clippy errors
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
Co-authored-by: SantiagoPittella <pittellasantiago@gmail.com>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
* Parse internal calls (#915)
* Added comments to core/contract_address module (#900)
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
* Add more transaction tests and fee investigation (#914)
* add function for getting tx and refactor tests
* improve imports
* separe tests into 2 groups
* fix test
* add comments
* format
* cargo clippy
* add details to every test
* add fee discrepancy to test doc
* cargo fmt
* improve imports
* added safety element
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
Co-authored-by: SantiagoPittella <pittellasantiago@gmail.com>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
Co-authored-by: Santiago Pittella <87827390+SantiagoPittella@users.noreply.github.com>
* remove transactionalstatereader as it is not needed as-is (#1054)
* Add cairo native (#943)
* Added cairo native flag
* Added cairo_native as dependency
* Partial progress
* Progress
* Partial progress
* Point to newly created branch on cairo native
* Use updated version of cairo native and make test pass
* Run test with storage_write and storage_read with cairo native
* Tidy up code
* Start unhardcoding stuff
* Handle return values
* Tidy up code a little
* Added sierra programs cache
* Add impl for emit_event and send_l1_message
* Fix tests
* Install LLVM on CI
* Test
* Test CI
* Fix lint step
* Save work in progress
* Unhardcode calldata and entry point
* Unhardcode more stuff
* Fix test
* Add basic implementation for call_contract
* Add call to get_name to integration test
* Make call_contract impl compile
* Fix test
* Pass the correct amount of builtins for every function
* Improve test legibility
* Write call_contract test skeleton
* Finish writing test, still bugs to fix
* implement get_execution_info, make increase_allowance work
* More debugging
* Basic test for call_contract working
* More progress on testing ERC20
* More progress on test
* Add caller and callee contracts
* Fix call_contract test after merge
* Fix callee address in tests
* Polish some details
* Remove use_cairo_native from TransactionExecutionContext
* Write test skeleton
* Add test contracts
* Fix tests
* Readd deleted contracts
* Echo contract test passing
* Update cairo compiler to version 2.2.0
* Calling another contract with events test is passing
* Fix failing tests
* Remove internal_calls field TODO in CallInfo returned by native_execute
* Add event_emitter contract
* Add cairo vm execution to the erc20 test for comparison
* Add simple implementation for panics in native execution
* Add some documentation in code
* Assert equality between events, accessed_storage_keys and l1_l2 messages between native and vm runs
* Add event_emitter contract
* Remove print
* Remove comments
* Move native syscall handler to its own file
* Add felt decode to string when program panics
* Make cairo native an optional dependency behind a feature
* Move execution result to cairo native
* Add a README section explaining how to setup cairo native
* Fix some clippy issues
* Fix test compilation
* CI test
* Revert "CI test"
This reverts commit 4631e5e56a46cd0d751ea3a7d10db3541f2fde3d.
* CI test
* Test
* Test
* Address comment about multiple cfgs
* Remove unnecessary clone
* Test
* Test
* Switch to special workflow for native integration tests
* Fix workflow
* Fix stuff after merge.
* Fix clippy warnings.
* Fix after merge.
* Fix comments.
* Fix `Makefile`.
* Remove unused import.
* Use transactional state.
* update cairo native to llvm 17 and remove nightly requirement
* update ci
* upd ci
* try to fix ci
* use ubuntu on native
* try to fix ci
* not needed?
* fix ci
* update cairo native
* fix nightly usage
* try to fix ci
* dont need a transactional state reader, simply clone the state reader
* try to fix ci
* format
* fix again
* fix if
* values
* force rebuild
* make cache track cairo 2 version to trigger rebuilds
* try no restore key
* update readme
* fix tests on ci
* update cairo native commit
* fix more tests on ci
* fix cairo native interface
* try ci without cache
* setup rustup home
* make param passing to cairo native not obscure
* try
* try again
* remove large packages
* remove large dirs
* remove android too
* polly is needed
* needs sudo
* fix cov
* fix test for now
* format
* cleanup ci file
* use pyenv if available
* nightly not needed in readme
* add .sierra as generated to gitattributes
* fix gitattributes
* add casm too
---------
Co-authored-by: Javier Chatruc <jrchatruc@gmail.com>
Co-authored-by: Mariano Nicolini <mariano.nicolini.91@gmail.com>
Co-authored-by: Esteve Soler Arderiu <esteve.soler@fratilia.com>
Co-authored-by: Edgar Luque <git@edgarluque.com>
* add test to check cairo 2 account contract deploy panic failing properly (#1045)
* add test for account contract execution with panic
* clippy
* update cairo native to latest revision, u128 gas, mut self (#1082)
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix `get_execution_info` syscall (#1081)
* Mark read-only segments
* Move call
* Remove debug prints
* Remove fn
* Add test case
* Add comment
* Restore newlines
* Add function comment
* Fix test values
* Undo changes to makefile
* Undo changes to makefile
* clippy
* cairo-native: implement testing syscalls (#1084)
* cleanup erc20 test (#1087)
* Fix `get_onchain_data_segment_length` (#1085)
* Fix get_onchain_data_segment_length
* Update test values
* Update test values
* fmt
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Check that running a declare v1 yields a higher fee than simulating it without validation (#1076)
* Reorder DeployAccount::apply
* Revert "Reorder DeployAccount::apply"
This reverts commit 11b0c39cd9cdd92f5211930e9f36f3840a978ae9.
* Add test
* Add test
* clippy + fmt
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* implement display and debug trait for Address (#1080)
* implement display and debug trait for Address
* hexa fmt
* Add recursive calls tests using `library_call` & `call_contract` syscalls (#1072)
* Add recursive library call test
* Add test programs
* Change base changes
* Add recursive test for call_contract
* fmt + clippy
* Add test for 100 contract calls
* clippy + fmt
* Update test values
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix/Refactor State::count actual storage changes + Support `DeployAccount` in the RpcStateReader (#1096)
* Fix get_onchain_data_segment_length
* Update test values
* Update test values
* fmt
* Fix/Refactor `State::count actual storage changes` (#1086)
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add the ability to execute `DeployAccount` transactions using the `RpcState` (#1089)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Fix bug in `From<StarknetRsContractClass> for CompiledClass` implementation (#1090)
* Fix bug in CompiledClass
* Add tests
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Add test cases for `DeployAccount` with popular account contracts using RpcState (#1104)
* Execute `Declare` transactions using the `RpcState` + Various fixes related to `Declare` txs (#1094)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Fix get_onchain_data_segment_length
* Add StorageChangesCount struct
* Update test values
* Update test values
* fmt
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Add test case with declare
* Deserialize Declare transactions
* Create blockifier Declare transaction
* Fix/Refactor `State::count actual storage changes` (#1086)
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add the ability to execute `DeployAccount` transactions using the `RpcState` (#1089)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Fix bug in `From<StarknetRsContractClass> for CompiledClass` implementation (#1090)
* Fix bug in CompiledClass
* Add tests
* fetch class hash from the next block in declare tx
* Return an error if a class_hash is not declared + add tests for declare tx
* Fix error msg
* Add support for DeclareV0-1 in sir_tests
* Make Sierra class optional in declare v2 + other changes
* Add support for DeclareV2
* Uncomment test
* fix
* Use new_with_sierra_class_hash_and_tx_hash
* use CompiledClassHash instead of CompiledClass where applicatble
* Handle nonce in declare v2 + run fmt
* Set casm class before counting state changes in declare v2
* Changes
* Make sierra class hash non-optional
* fix + clippy
* Use state_reader instead of creating a state to fetch the next block s contract classes
* Add removed test
* Update test values
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Execute `L1Handler` transactions using the `RpcState` (#1103)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Fix get_onchain_data_segment_length
* Add StorageChangesCount struct
* Update test values
* Update test values
* fmt
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Add test case with declare
* Deserialize Declare transactions
* Create blockifier Declare transaction
* Fix/Refactor `State::count actual storage changes` (#1086)
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add the ability to execute `DeployAccount` transactions using the `RpcState` (#1089)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Fix bug in `From<StarknetRsContractClass> for CompiledClass` implementation (#1090)
* Fix bug in CompiledClass
* Add tests
* fetch class hash from the next block in declare tx
* Return an error if a class_hash is not declared + add tests for declare tx
* Fix error msg
* Add support for DeclareV0-1 in sir_tests
* Make Sierra class optional in declare v2 + other changes
* Add support for DeclareV2
* Uncomment test
* fix
* Use new_with_sierra_class_hash_and_tx_hash
* use CompiledClassHash instead of CompiledClass where applicatble
* Handle nonce in declare v2 + run fmt
* Set casm class before counting state changes in declare v2
* Changes
* Make sierra class hash non-optional
* fix + clippy
* Use state_reader instead of creating a state to fetch the next block s contract classes
* Add removed test
* Update test values
* Make validate_invocation and fee_transfer_info fields optional + add L1_HANDLER transaction RpcState
* Add L1Handler to blockifier_tests::execute_tx
* Add blockifier test case
* Add L1Handler to sir_tests::execute_tx
* Add one more test case
* fmt
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Added a usage target to makefile (#1069)
* Added a usage target to makefile
* Fixed typo
* Implement `NativeSyscallHandler::deploy` (#1106)
* wip
* Minor improvements + add test
* Improve make clippy
* Clippy + fmt
* Update error messages
* Add failure flag test
* Fix typo
* Apply suggestions + run formatter
* Add llvm setup so we can run clippy with `cairo-native` feature
* Fix
* Remove todo
* Use a proper class_hash
* Fix test assertion
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* update cairo native to use gas consumed (#1102)
* update cairo native to use gas consumed
* gas consumed
* update native rev
* fix gas consumed
* remove comments
* fixes
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Save `SierraProgram` + `ContractEntryPoints` instead of `SierraContractClass` in `CompiledProgram` (#1112)
* Save Program + EntryPoints instead of ContractClass
* clippy
* `get_execution_info`test (#1067)
* Added cairo native flag
* Added cairo_native as dependency
* Partial progress
* Progress
* Partial progress
* Point to newly created branch on cairo native
* Use updated version of cairo native and make test pass
* Run test with storage_write and storage_read with cairo native
* Tidy up code
* Start unhardcoding stuff
* Handle return values
* Tidy up code a little
* Added sierra programs cache
* Add impl for emit_event and send_l1_message
* Fix tests
* Install LLVM on CI
* Test
* Test CI
* Fix lint step
* Save work in progress
* Unhardcode calldata and entry point
* Unhardcode more stuff
* Fix test
* Add basic implementation for call_contract
* Add call to get_name to integration test
* Make call_contract impl compile
* Fix test
* Pass the correct amount of builtins for every function
* Improve test legibility
* Write call_contract test skeleton
* Finish writing test, still bugs to fix
* implement get_execution_info, make increase_allowance work
* More debugging
* Basic test for call_contract working
* More progress on testing ERC20
* More progress on test
* Add caller and callee contracts
* Fix call_contract test after merge
* Fix callee address in tests
* Polish some details
* Remove use_cairo_native from TransactionExecutionContext
* Write test skeleton
* Add test contracts
* Fix tests
* Readd deleted contracts
* Echo contract test passing
* Update cairo compiler to version 2.2.0
* Calling another contract with events test is passing
* Fix failing tests
* Remove internal_calls field TODO in CallInfo returned by native_execute
* Add event_emitter contract
* Add cairo vm execution to the erc20 test for comparison
* Add simple implementation for panics in native execution
* Add some documentation in code
* Assert equality between events, accessed_storage_keys and l1_l2 messages between native and vm runs
* Add event_emitter contract
* Remove print
* Remove comments
* Move native syscall handler to its own file
* Add felt decode to string when program panics
* Make cairo native an optional dependency behind a feature
* Move execution result to cairo native
* Add a README section explaining how to setup cairo native
* Fix some clippy issues
* Fix test compilation
* CI test
* Revert "CI test"
This reverts commit 4631e5e56a46cd0d751ea3a7d10db3541f2fde3d.
* CI test
* Test
* Test
* Address comment about multiple cfgs
* Remove unnecessary clone
* Test
* Test
* Switch to special workflow for native integration tests
* Fix workflow
* Fix stuff after merge.
* Fix clippy warnings.
* Fix after merge.
* Fix comments.
* Fix `Makefile`.
* Remove unused import.
* Use transactional state.
* update cairo native to llvm 17 and remove nightly requirement
* update ci
* upd ci
* try to fix ci
* use ubuntu on native
* try to fix ci
* not needed?
* fix ci
* update cairo native
* fix nightly usage
* try to fix ci
* dont need a transactional state reader, simply clone the state reader
* try to fix ci
* format
* fix again
* fix if
* values
* force rebuild
* make cache track cairo 2 version to trigger rebuilds
* try no restore key
* Added get_execution_info test
* mend
* fix test + update native latest
* add deleted test
* mend
* delete unused struct
---------
Co-authored-by: Javier Chatruc <jrchatruc@gmail.com>
Co-authored-by: Mariano Nicolini <mariano.nicolini.91@gmail.com>
Co-authored-by: Esteve Soler Arderiu <esteve.soler@fratilia.com>
Co-authored-by: Edgar Luque <git@edgarluque.com>
Co-authored-by: toni-calvin <antonio.calvin@lambdaclass.com>
* Cairo native: Implement library_call syscall (#1074)
* cairo-native initial implementation of library call
* rebase
* clippy
* fix
* library call test
* suggestion
* Replace class native (#1105)
* update cairo native to use gas consumed
* implement native replace class syscall
* gas consumed
* add test
* update native rev
* add failing test
* fix gas consumed
* remove comments
* minor changes
* update cairo-native dependency
* improve test
* update latest native version
* use add sierra contract to cache method
* update latest native version
* Replace class contract call native (#1115)
* add last native version
* add failing test
* fix test
* easier merge
* fix test
---------
Co-authored-by: Edgar Luque <git@edgarluque.com>
* `get_block_hash` syscall native (#1048)
* Added cairo native flag
* Added cairo_native as dependency
* Partial progress
* Progress
* Partial progress
* Point to newly created branch on cairo native
* Use updated version of cairo native and make test pass
* Run test with storage_write and storage_read with cairo native
* Tidy up code
* Start unhardcoding stuff
* Handle return values
* Tidy up code a little
* Added sierra programs cache
* Add impl for emit_event and send_l1_message
* Fix tests
* Install LLVM on CI
* Test
* Test CI
* Fix lint step
* Save work in progress
* Unhardcode calldata and entry point
* Unhardcode more stuff
* Fix test
* Add basic implementation for call_contract
* Add call to get_name to integration test
* Make call_contract impl compile
* Fix test
* Pass the correct amount of builtins for every function
* Improve test legibility
* Write call_contract test skeleton
* Finish writing test, still bugs to fix
* implement get_execution_info, make increase_allowance work
* More debugging
* Basic test for call_contract working
* More progress on testing ERC20
* More progress on test
* Add caller and callee contracts
* Fix call_contract test after merge
* Fix callee address in tests
* Polish some details
* Remove use_cairo_native from TransactionExecutionContext
* Write test skeleton
* Add test contracts
* Fix tests
* Readd deleted contracts
* Echo contract test passing
* Update cairo compiler to version 2.2.0
* Calling another contract with events test is passing
* Fix failing tests
* Remove internal_calls field TODO in CallInfo returned by native_execute
* Add event_emitter contract
* Add cairo vm execution to the erc20 test for comparison
* Add simple implementation for panics in native execution
* Add some documentation in code
* Assert equality between events, accessed_storage_keys and l1_l2 messages between native and vm runs
* Add event_emitter contract
* Remove print
* Remove comments
* Move native syscall handler to its own file
* Add felt decode to string when program panics
* Make cairo native an optional dependency behind a feature
* Move execution result to cairo native
* Add a README section explaining how to setup cairo native
* Fix some clippy issues
* Fix test compilation
* CI test
* Revert "CI test"
This reverts commit 4631e5e56a46cd0d751ea3a7d10db3541f2fde3d.
* CI test
* Test
* Test
* Address comment about multiple cfgs
* Remove unnecessary clone
* Test
* Test
* Switch to special workflow for native integration tests
* Fix workflow
* Fix stuff after merge.
* Fix clippy warnings.
* Fix after merge.
* Fix comments.
* Fix `Makefile`.
* Remove unused import.
* WIP: Implementing get_block_hash syscall
* Fix stuff.
* Use transactional state.
* update cairo native to llvm 17 and remove nightly requirement
* update ci
* upd ci
* try to fix ci
* use ubuntu on native
* try to fix ci
* not needed?
* fix ci
* update cairo native
* fix nightly usage
* try to fix ci
* dont need a transactional state reader, simply clone the state reader
* try to fix ci
* format
* fix again
* fix if
* values
* force rebuild
* make cache track cairo 2 version to trigger rebuilds
* try no restore key
* make get_hash_test syscall work with native and vm
* update readme
* implement get_block_hash on vm
* fmt
* fix tests on ci
* update cairo native commit
* fix more tests on ci
* fix cairo native interface
* try ci without cache
* checout earlier
* fix ci clippy
* test rpc reader execution
* try ci without cache
* setup rustup home
* make param passing to cairo native not obscure
* try
* try again
* remove large packages
* remove large dirs
* remove android too
* polly is needed
* needs sudo
* fix cov
* fix test for now
* format
* cleanup ci file
* use pyenv if available
* nightly not needed in readme
* add .sierra as generated to gitattributes
* fix gitattributes
* add casm too
* implement get_block_hash_native
* remove debug
* add vm execution
* merge
* add less code
* fix syscall
* fmt
* update native to last version
* correctly insert sierra class into cache test
* update latest native version
* remove comments
---------
Co-authored-by: Esteban Dimitroff Hódi <esteban.dimitroff@lambdaclass.com>
Co-authored-by: Javier Chatruc <jrchatruc@gmail.com>
Co-authored-by: Mariano Nicolini <mariano.nicolini.91@gmail.com>
Co-authored-by: Esteve Soler Arderiu <esteve.soler@fratilia.com>
Co-authored-by: toni-calvin <antonio.calvin@lambdaclass.com>
Co-authored-by: Edgar Luque <git@edgarluque.com>
* Add logging to syscalls (#1111)
* replace println by tracing::debug
* replace MLIR with Cairo Native
* fmt
---------
Co-authored-by: juanbono <juan.bono@lambdaclass.com>
* Add error handling to `RpcState` (#1107)
* Remove explicit and implicit unwraps in RpcCallInfo deserialization
* Handle errors in RpcState::new_infura
* push RpcStateError
* Progress
* Remove all unwraps from rpc code
* Adapt tests
* Clippy
* Unify RpcError & RpcStateError
* Guard potential panicks + fmt
* clippy
* Keccak for Native Syscall Handler (#1055)
* implement keccac (cleanup)
* fix
* fix path
* fix keccak
* oops
* native revision
* update cardo.lock last native version
---------
Co-authored-by: Edgar Luque <git@edgarluque.com>
Co-authored-by: toni-calvin <antonio.calvin@lambdaclass.com>
* Hacky cairo-native compiled program cache (#1091)
* update cairo native
* wip
* wip2
* add cache to call_contract syscall too
* update ref
* add cairo-native as default feature
* cache engine instead
* fix test
* fmt & clippy
* remove cairo_native from default features
* add cairo_native to test targets
* fix features
---------
Co-authored-by: juanbono <juan.bono@lambdaclass.com>
* Update examples to use Cairo 2 + add them to the workspace (#1122)
* Delete old version of contract execution example
* Update example contract to cairo 2
* Make examples/contract_execution a proper crate
* Update contract execution example to use cairo 2 contracts
* Use same chain-id + restore expects
* Adjust values to pass validations
* Remove create_for_simulation
* Remove skip_validate
* Add comments
* fmt + clippy
* Embed aux contracts
* Update contract paths
* fmt
* Fix crate setup
* Add docs for rpc state reader (#1130)
* add more docs to the rpc state reader
* add link
---------
Co-authored-by: juanbono <juan.bono@lambdaclass.com>
* Add benchs (#1129)
* add benchs
* fix bench
* fmt & clippy
* fixed clippy issues
* fix features
* fmt
* add factorial_tr
* remove flag
* add newline in factorial_tr
* add newline to Cargo.toml
* remove dbg
* add usage
* fmt
---------
Co-authored-by: juanbono <juan.bono@lambdaclass.com>
* Add version + validation retdata checks for `InvokeFunction`, `Declare`, `DeclareV2` & `DeployAccount` txs (#1128)
* Check InvokeFuncion tx version
* Remove invalid code
* Add retdata validation
* Check tx version for Declare
* Simplify verify_version
* Check DeclareV2 version
* Unify unsupported version errors
* Reorder checks
* Add retdata validation
* Add retdata validation
* Add version check for DeployAccount
* fmt
* Remove no longer used verify_version function
* Fix tx versions in tests
* Remove test for removed check
* Remove test for removed check
* Remove unreachable case
* Fix test values
* Fix test values
* Fix test values
* Remove unused constants
* Remove old `QUERY_BASE` constant
* Fix test values
* Clippy
* Add back QUERY_VERSION_BASE` constant
* Code cleanup
* Restore
* Add a function to parse query versions
* Add comments
* Restore test
* Fix deploy account version in becnh
* Add tests for version checks
* Remove unwraps (#1137)
* Refactor `InvokeFunction::handle_nonce` to increment the nonce even if `skip_nonce_check` is set (#1134)
* Add test case
* Refactor how skip_nonce_checks affects nonce handling
* Add a separate test for txs that nedd to skip the nonce check
* Clippy
* Improvement
* Replace todo with error handling in `DeprecatedBLSyscallHandler::constructor_entry_points_empty` (#1136)
* Replace todo with error handling
* Clippy
* Add `skip_nonce_check` field to `DeclareV2`, `Declare` & `DeployAccount` txs (#1135)
* Add test case
* Refactor how skip_nonce_checks affects nonce handling
* Add a separate test for txs that nedd to skip the nonce check
* Clippy
* Add `skip_nonce_check` field to all txs
* Add skip_nonce_check for create_for_simulation all txs
* Refactor handle_nonce
* Improvement
* Add skip_nonce_check to execute_tx_configurable for each tx
* fix test + fmt
* Add `check_fee_balance` to `InvokeFunction`, `Declare`, `DeclareV2` & `DeployAccount` txs (#1132)
* Check InvokeFuncion tx version
* Remove invalid code
* Add retdata validation
* Check tx version for Declare
* Simplify verify_version
* Check DeclareV2 version
* Unify unsupported version errors
* Reorder checks
* Add retdata validation
* Add retdata validation
* Add version check for DeployAccount
* fmt
* Remove no longer used verify_version function
* Fix tx versions in tests
* Remove test for removed check
* Remove test for removed check
* Remove unreachable case
* Fix test values
* Fix test values
* Fix test values
* Remove unused constants
* Remove old `QUERY_BASE` constant
* Fix test values
* Clippy
* Add back QUERY_VERSION_BASE` constant
* Code cleanup
* Restore
* Add a function to parse query versions
* Add comments
* Restore test
* Fix deploy account version in becnh
* Use constants for estimated tx steps used in OsResources
* Add estimate_minimal_fee check for InvokeFunction
* Implement get_fee_token_balance for StateReader
* Finish check for InvokeFunction
* Don`t check fee balance for estimate_fee
* Update tests
* Adjust max_fee values
* Add fee balance checks to the other txs
* Update test values
* Refactor account deploy revert test
* fmt
---------
Co-authored-by: juanbono <juanbono94@gmail.com>
* Replace testnet 2 tx in RpcState test with mainnet tx (#1142)
* Remove RpcChain::TestNet2 enum variant
* Use a mainnet tx for RpcState get_transaction_trace test
* Revert "Remove RpcChain::TestNet2 enum variant"
This reverts commit 34c5367081dc61fe53d8b50b42a010286f67c457.
* Add global support for program caches. (#1140)
* Add global support for program caches.
* Update cairo-native dependency and fix stuff.
* Fix compilation errors.
* Refactor class hash (#1095)
* state with warnings
* fix test
* fix test
* remove unnecessary clone
* clippy
* update latest native version
* mend
* fix import
* Get block hash from rpc (#1124)
* add test rpc vs vm get_block_hash syscall
* set failing branch state
* Revert "set failing branch state"
This reverts commit db722e45f84a7402271646dd879ac19abf03f15c.
* remove unnecessary test
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Make contract caches shared. (#940)
* Unify deprecated and casm contract caches.
* Fix formatting and clippy.
* Remove unused code.
* Unify contract classes in the state traits too.
* Fix typos. Make cache shared.
* Minor fixes.
* Fix testing state generation to make it work with shared caches.
* Fix formatting.
* Add cache diff.
* Add suggestion.
* Fix stuff.
* Implement cache trait. Add a null and a permanent cache. Fix everything that breaks using the permanent cache (should mimic the previous behaviour).
* Add documentation.
* Convert the cache trait into immutable (aka. move the lock into them).
* Remove external cache lock (no longer needed).
* Fix stuff.
* Add LRU cache example.
* Run `cargo fmt`.
* Fix LRU example.
* Fix the other example.
* Fix after merge.
* Add private cache drain method.
* Temporarily disable `max_fee` checks.
* Add comment on `RefCell::get_mut()`.
* Remove `extend` from trait. Remove unused code.
* Fix duplicated `CachedState` issue.
* Add missing comments.
* Update `README.md`.
* Fix after merge.
* Remove obsolete comment.
* Fix test after merge.
* Fix borrows.
* Fix after merge.
* Fix erc20 test.
* Remove unused feature.
* Update `coverage-helper` to support `#[coverage(off)]`.
* Add `coverage` attribute feature on testing.
* Update `README.md` and example.
* Fix `README.md`.
* Improve `README.md`.
* Remove references to `StarknetState` in `README.md`.
* Remove debug print.
* Remove commented block of code.
* Fix after merging.
* Fix formatting.
* Update Pr: Make contract caches shared (#1071)
* Remove `serde_json_pythonic`. (#1047)
* Remove `serde_json_pythonic`.
* Fix JSON formatter on `deprecated_contract_class.rs`.
* Fix hash JSON formatter (non-ascii support).
* Add unwrap reasoning comment.
* Add debug logging. (#1018)
* Add `tracing` and update dependencies.
* Configure the example to use tracing logging (and make it work again).
* Add tracing logging.
* Add error logging.
* Fix error logging.
* Reduce the amount of spam logged.
* Update `README.md`.
* Fix `Makefile` dependencies.
* Remove `Debug` trait dependency.
* Update `Cargo.lock` after merge.
* Fix warnings.
* Fix formatting.
---------
Co-authored-by: Esteve Soler Arderiu <esteve.soler@lambdaclass.com>
* fmt and improvements
* Fix skip validate (#1053)
* update version
* fix skip validation for invoke txs
* run fmt
* fix clippy suggestion
* simplify a bit the execute_tx function variants
* Add documentation to transaction/fee module (#889)
* added comments to src/transaction/fee.rs
* added return and error comments
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Santiago Pittella <87827390+SantiagoPittella@users.noreply.github.com>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Add comments to origin/Document-transactionl1_handler module (#888)
* added comments to origin/Document-transactionl1_handler-module
* modified comments
* Test multi syscall (#687)
* create multy syscall
* remove the replace syscall, it failed because the contract adress didn't match
* added library call_syscall
* wip
* wip
* wip
* wip
* work in progress
* remove .sjon files from starknet_programs
* finished implemented all the syscalls
* reorder code, create one call to syscall
* fix pull bug
* Update tests/multi_syscall_test.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update starknet_programs/cairo1/multi_syscall_test.cairo
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update starknet_programs/cairo1/contract_a.cairo
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update tests/multi_syscall_test.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* added test syscall for deploy
* make format changes
* corrected make clippy error
* get_caller_address and get_contract_address return a adress
* failed of get_contract_address
* failed of get_contract_address
* wip
* modify the selector entrypoint_selector to be function specific
* wip
* wip
* wip
* add input to cairo functions
* coorect format problem
* wip
* wip
* wip
* remove format problem
* Fix sierra class hash calculation (#886)
* reproduce bug
* use pythonic formatter
* rename test
* fix test
* cargo fmt
* Fail with an Err transactions whose calculated fee exceed `max_fee` (#892)
* Make tx fail when actual_fee exceeds max_fee
* Changed test
* Formatting
* Fix logic
* Leave fail only without charging
* Change test
* Fix test broken by better fee calc
* Fixed test fee
* Update fee on test_deploy_account
* Remove comment
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix test_get_nonce_at (#910)
* Fix test_get_nonce_at
* Rely on another contract
* fix get_sorted_events bug (#912)
* fix get_sorted_events bug
* fmt
* fix clippy
---------
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
* Added documentations to syscalls/deprecated_syscall_handler module (#883)
* added comments to file syscalls/deprecated_syscall_handler-module'
* Update src/syscalls/deprecated_syscall_handler.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update src/syscalls/deprecated_syscall_handler.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* wip
* Modify the tests
* fixed clippy errors
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
Co-authored-by: SantiagoPittella <pittellasantiago@gmail.com>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
* Parse internal calls (#915)
* Added comments to core/contract_address module (#900)
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
* Add more transaction tests and fee investigation (#914)
* add function for getting tx and refactor tests
* improve imports
* separe tests into 2 groups
* fix test
* add comments
* format
* cargo clippy
* add details to every test
* add fee discrepancy to test doc
* cargo fmt
* improve imports
* added safety element
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
Co-authored-by: SantiagoPittella <pittellasantiago@gmail.com>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
Co-authored-by: Santiago Pittella <87827390+SantiagoPittella@users.noreply.github.com>
* remove transactionalstatereader as it is not needed as-is (#1054)
* Fix test (or try to)
* Revert "Fix test (or try to)"
This reverts commit 423052f341165bb23b473c9231aa68560fb46568.
* Implement Clone for CachedState
* Fix conflict in Makefile + run clippy-fix
* Remove empty line
* fmt
* Remove unwraps
* Add clone_for_testing
* Remove clones
* Add cairo native (#943)
* Added cairo native flag
* Added cairo_native as dependency
* Partial progress
* Progress
* Partial progress
* Point to newly created branch on cairo native
* Use updated version of cairo native and make test pass
* Run test with storage_write and storage_read with cairo native
* Tidy up code
* Start unhardcoding stuff
* Handle return values
* Tidy up code a little
* Added sierra programs cache
* Add impl for emit_event and send_l1_message
* Fix tests
* Install LLVM on CI
* Test
* Test CI
* Fix lint step
* Save work in progress
* Unhardcode calldata and entry point
* Unhardcode more stuff
* Fix test
* Add basic implementation for call_contract
* Add call to get_name to integration test
* Make call_contract impl compile
* Fix test
* Pass the correct amount of builtins for every function
* Improve test legibility
* Write call_contract test skeleton
* Finish writing test, still bugs to fix
* implement get_execution_info, make increase_allowance work
* More debugging
* Basic test for call_contract working
* More progress on testing ERC20
* More progress on test
* Add caller and callee contracts
* Fix call_contract test after merge
* Fix callee address in tests
* Polish some details
* Remove use_cairo_native from TransactionExecutionContext
* Write test skeleton
* Add test contracts
* Fix tests
* Readd deleted contracts
* Echo contract test passing
* Update cairo compiler to version 2.2.0
* Calling another contract with events test is passing
* Fix failing tests
* Remove internal_calls field TODO in CallInfo returned by native_execute
* Add event_emitter contract
* Add cairo vm execution to the erc20 test for comparison
* Add simple implementation for panics in native execution
* Add some documentation in code
* Assert equality between events, accessed_storage_keys and l1_l2 messages between native and vm runs
* Add event_emitter contract
* Remove print
* Remove comments
* Move native syscall handler to its own file
* Add felt decode to string when program panics
* Make cairo native an optional dependency behind a feature
* Move execution result to cairo native
* Add a README section explaining how to setup cairo native
* Fix some clippy issues
* Fix test compilation
* CI test
* Revert "CI test"
This reverts commit 4631e5e56a46cd0d751ea3a7d10db3541f2fde3d.
* CI test
* Test
* Test
* Address comment about multiple cfgs
* Remove unnecessary clone
* Test
* Test
* Switch to special workflow for native integration tests
* Fix workflow
* Fix stuff after merge.
* Fix clippy warnings.
* Fix after merge.
* Fix comments.
* Fix `Makefile`.
* Remove unused import.
* Use transactional state.
* update cairo native to llvm 17 and remove nightly requirement
* update ci
* upd ci
* try to fix ci
* use ubuntu on native
* try to fix ci
* not needed?
* fix ci
* update cairo native
* fix nightly usage
* try to fix ci
* dont need a transactional state reader, simply clone the state reader
* try to fix ci
* format
* fix again
* fix if
* values
* force rebuild
* make cache track cairo 2 version to trigger rebuilds
* try no restore key
* update readme
* fix tests on ci
* update cairo native commit
* fix more tests on ci
* fix cairo native interface
* try ci without cache
* setup rustup home
* make param passing to cairo native not obscure
* try
* try again
* remove large packages
* remove large dirs
* remove android too
* polly is needed
* needs sudo
* fix cov
* fix test for now
* format
* cleanup ci file
* use pyenv if available
* nightly not needed in readme
* add .sierra as generated to gitattributes
* fix gitattributes
* add casm too
---------
Co-authored-by: Javier Chatruc <jrchatruc@gmail.com>
Co-authored-by: Mariano Nicolini <mariano.nicolini.91@gmail.com>
Co-authored-by: Esteve Soler Arderiu <esteve.soler@fratilia.com>
Co-authored-by: Edgar Luque <git@edgarluque.com>
* add test to check cairo 2 account contract deploy panic failing properly (#1045)
* add test for account contract execution with panic
* clippy
* update cairo native to latest revision, u128 gas, mut self (#1082)
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix `get_execution_info` syscall (#1081)
* Mark read-only segments
* Move call
* Remove debug prints
* Remove fn
* Add test case
* Add comment
* Restore newlines
* Add function comment
* Fix test values
* Undo changes to makefile
* Undo changes to makefile
* clippy
* cairo-native: implement testing syscalls (#1084)
* cleanup erc20 test (#1087)
* Fix `get_onchain_data_segment_length` (#1085)
* Fix get_onchain_data_segment_length
* Update test values
* Update test values
* fmt
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Check that running a declare v1 yields a higher fee than simulating it without validation (#1076)
* Reorder DeployAccount::apply
* Revert "Reorder DeployAccount::apply"
This reverts commit 11b0c39cd9cdd92f5211930e9f36f3840a978ae9.
* Add test
* Add test
* clippy + fmt
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* implement display and debug trait for Address (#1080)
* implement display and debug trait for Address
* hexa fmt
* Add recursive calls tests using `library_call` & `call_contract` syscalls (#1072)
* Add recursive library call test
* Add test programs
* Change base changes
* Add recursive test for call_contract
* fmt + clippy
* Add test for 100 contract calls
* clippy + fmt
* Update test values
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix/Refactor State::count actual storage changes + Support `DeployAccount` in the RpcStateReader (#1096)
* Fix get_onchain_data_segment_length
* Update test values
* Update test values
* fmt
* Fix/Refactor `State::count actual storage changes` (#1086)
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add the ability to execute `DeployAccount` transactions using the `RpcState` (#1089)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Fix bug in `From<StarknetRsContractClass> for CompiledClass` implementation (#1090)
* Fix bug in CompiledClass
* Add tests
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* fmt
* Add test cases for `DeployAccount` with popular account contracts using RpcState (#1104)
* Execute `Declare` transactions using the `RpcState` + Various fixes related to `Declare` txs (#1094)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Fix get_onchain_data_segment_length
* Add StorageChangesCount struct
* Update test values
* Update test values
* fmt
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Add test case with declare
* Deserialize Declare transactions
* Create blockifier Declare transaction
* Fix/Refactor `State::count actual storage changes` (#1086)
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add the ability to execute `DeployAccount` transactions using the `RpcState` (#1089)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Fix bug in `From<StarknetRsContractClass> for CompiledClass` implementation (#1090)
* Fix bug in CompiledClass
* Add tests
* fetch class hash from the next block in declare tx
* Return an error if a class_hash is not declared + add tests for declare tx
* Fix error msg
* Add support for DeclareV0-1 in sir_tests
* Make Sierra class optional in declare v2 + other changes
* Add support for DeclareV2
* Uncomment test
* fix
* Use new_with_sierra_class_hash_and_tx_hash
* use CompiledClassHash instead of CompiledClass where applicatble
* Handle nonce in declare v2 + run fmt
* Set casm class before counting state changes in declare v2
* Changes
* Make sierra class hash non-optional
* fix + clippy
* Use state_reader instead of creating a state to fetch the next block s contract classes
* Add removed test
* Update test values
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Execute `L1Handler` transactions using the `RpcState` (#1103)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Fix get_onchain_data_segment_length
* Add StorageChangesCount struct
* Update test values
* Update test values
* fmt
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Add test case with declare
* Deserialize Declare transactions
* Create blockifier Declare transaction
* Fix/Refactor `State::count actual storage changes` (#1086)
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add the ability to execute `DeployAccount` transactions using the `RpcState` (#1089)
* Add test case
* Fix get_onchain_data_segment_length
* Debug setup
* Add StorageChangesCount struct
* Use StorageChangesCount struct in state method
* Fix implicated code
* Update doc
* Update test values
* Rename method for consistency
* Add note comment
* Remove hardcoded contract address
* Remove txt files
* Remove dbg prints
* Remove dbg prints
* Format
* Restore blockifier version
* Restore tests
* Restore newlines
* Restore newlines
* Remove txt file
* fmt
* Fix bug in `From<StarknetRsContractClass> for CompiledClass` implementation (#1090)
* Fix bug in CompiledClass
* Add tests
* fetch class hash from the next block in declare tx
* Return an error if a class_hash is not declared + add tests for declare tx
* Fix error msg
* Add support for DeclareV0-1 in sir_tests
* Make Sierra class optional in declare v2 + other changes
* Add support for DeclareV2
* Uncomment test
* fix
* Use new_with_sierra_class_hash_and_tx_hash
* use CompiledClassHash instead of CompiledClass where applicatble
* Handle nonce in declare v2 + run fmt
* Set casm class before counting state changes in declare v2
* Changes
* Make sierra class hash non-optional
* fix + clippy
* Use state_reader instead of creating a state to fetch the next block s contract classes
* Add removed test
* Update test values
* Make validate_invocation and fee_transfer_info fields optional + add L1_HANDLER transaction RpcState
* Add L1Handler to blockifier_tests::execute_tx
* Add blockifier test case
* Add L1Handler to sir_tests::execute_tx
* Add one more test case
* fmt
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Added a usage target to makefile (#1069)
* Added a usage target to makefile
* Fixed typo
* Implement `NativeSyscallHandler::deploy` (#1106)
* wip
* Minor improvements + add test
* Improve make clippy
* Clippy + fmt
* Update error messages
* Add failure flag test
* Fix typo
* Apply suggestions + run formatter
* Add llvm setup so we can run clippy with `cairo-native` feature
* Fix
* Remove todo
* Use a proper class_hash
* Fix test assertion
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* update cairo native to use gas consumed (#1102)
* update cairo native to use gas consumed
* gas consumed
* update native rev
* fix gas consumed
* remove comments
* fixes
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix cairo-native feature-gated code
* clippy
---------
Co-authored-by: MrAzteca <azteca1998@users.noreply.github.com>
Co-authored-by: Esteve Soler Arderiu <esteve.soler@lambdaclass.com>
Co-authored-by: juanbono <juanbono94@gmail.com>
Co-authored-by: Fanny Guthmann <57538139+fguthmann@users.noreply.github.com>
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Santiago Pittella <87827390+SantiagoPittella@users.noreply.github.com>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
Co-authored-by: SantiagoPittella <pittellasantiago@gmail.com>
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
Co-authored-by: Edgar <git@edgarluque.com>
Co-authored-by: ElFantasma <esteban.dimitroff@lambdaclass.com>
Co-authored-by: Javier Chatruc <jrchatruc@gmail.com>
Co-authored-by: Mariano Nicolini <mariano.nicolini.91@gmail.com>
Co-authored-by: Esteve Soler Arderiu <esteve.soler@fratilia.com>
Co-authored-by: Antonio Calvín García <antonio.calvin@lambdaclass.com>
Co-authored-by: Iñaki Garay <igarai@gmail.com>
* Revert "Update Pr: Make contract caches shared (#1071)" (#1116)
This reverts commit 8a112590e107cc69767bd31c6034c7070ca47c0a.
* Update contract caches (#1117)
* Remove `serde_json_pythonic`. (#1047)
* Remove `serde_json_pythonic`.
* Fix JSON formatter on `deprecated_contract_class.rs`.
* Fix hash JSON formatter (non-ascii support).
* Add unwrap reasoning comment.
* Add debug logging. (#1018)
* Add `tracing` and update dependencies.
* Configure the example to use tracing logging (and make it work again).
* Add tracing logging.
* Add error logging.
* Fix error logging.
* Reduce the amount of spam logged.
* Update `README.md`.
* Fix `Makefile` dependencies.
* Remove `Debug` trait dependency.
* Update `Cargo.lock` after merge.
* Fix warnings.
* Fix formatting.
---------
Co-authored-by: Esteve Soler Arderiu <esteve.soler@lambdaclass.com>
* fmt and improvements
* Fix skip validate (#1053)
* update version
* fix skip validation for invoke txs
* run fmt
* fix clippy suggestion
* simplify a bit the execute_tx function variants
* Add documentation to transaction/fee module (#889)
* added comments to src/transaction/fee.rs
* added return and error comments
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Santiago Pittella <87827390+SantiagoPittella@users.noreply.github.com>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Add comments to origin/Document-transactionl1_handler module (#888)
* added comments to origin/Document-transactionl1_handler-module
* modified comments
* Test multi syscall (#687)
* create multy syscall
* remove the replace syscall, it failed because the contract adress didn't match
* added library call_syscall
* wip
* wip
* wip
* wip
* work in progress
* remove .sjon files from starknet_programs
* finished implemented all the syscalls
* reorder code, create one call to syscall
* fix pull bug
* Update tests/multi_syscall_test.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update starknet_programs/cairo1/multi_syscall_test.cairo
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update starknet_programs/cairo1/contract_a.cairo
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update tests/multi_syscall_test.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* added test syscall for deploy
* make format changes
* corrected make clippy error
* get_caller_address and get_contract_address return a adress
* failed of get_contract_address
* failed of get_contract_address
* wip
* modify the selector entrypoint_selector to be function specific
* wip
* wip
* wip
* add input to cairo functions
* coorect format problem
* wip
* wip
* wip
* remove format problem
* Fix sierra class hash calculation (#886)
* reproduce bug
* use pythonic formatter
* rename test
* fix test
* cargo fmt
* Fail with an Err transactions whose calculated fee exceed `max_fee` (#892)
* Make tx fail when actual_fee exceeds max_fee
* Changed test
* Formatting
* Fix logic
* Leave fail only without charging
* Change test
* Fix test broken by better fee calc
* Fixed test fee
* Update fee on test_deploy_account
* Remove comment
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix test_get_nonce_at (#910)
* Fix test_get_nonce_at
* Rely on another contract
* fix get_sorted_events bug (#912)
* fix get_sorted_events bug
* fmt
* fix clippy
---------
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
* Added documentations to syscalls/deprecated_syscall_handler module (#883)
* added comments to file syscalls/deprecated_syscall_handler-module'
* Update src/syscalls/deprecated_syscall_handler.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* Update src/syscalls/deprecated_syscall_handler.rs
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
* wip
* Modify the tests
* fixed clippy errors
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
Co-authored-by: SantiagoPittella <pittellasantiago@gmail.com>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
* Parse internal calls (#915)
* Added comments to core/contract_address module (#900)
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
* Add more transaction tests and fee investigation (#914)
* add function for getting tx and refactor tests
* improve imports
* separe tests into 2 groups
* fix test
* add comments
* format
* cargo clippy
* add details to every test
* add fee discrepancy to test doc
* cargo fmt
* improve imports
* added safety element
---------
Co-authored-by: fannyguthmann <fanny.guthmann@post.idc.ac.il>
Co-authored-by: Matías Ignacio González <maigonzalez@fi.uba.ar>
Co-authored-by: SantiagoPittella <pittellasantiago@gmail.com>
Co-authored-by: Juan Bono <juanbono94@gmail.com>
Co-authored-by: Estéfano Bargas <estefano.bargas@fing.edu.uy>
Co-authored-by: Santiago Pittella <87827390+SantiagoPittella@users.noreply.github.com>
* remove transactionalstatereader as it is not needed as-is (#1054)
* Fix test (or try to)
* Revert "Fix test (or try to)"
This reverts commit 423052f341165bb23b473c9231aa68560fb46568.
* Implement Clone for CachedState
* Fix conflict in Makefile + run clippy-fix
* Remove empty line
* fmt
* Remove unwraps
* Add clone_for_testing
* Remove clones
* Add cairo native (#943)
* Added cairo native flag
* Added cairo_native as dependency
* Partial progress
* Progress
* Partial progress
* Point to newly created branch on cairo native
* Use updated version of cairo native and make test pass
* Run test with storage_write and storage_read with cairo native
* Tidy up code
* Start unhardcoding stuff
* Handle return values
* Tidy up code a little
* Added sierra programs cache
* Add impl for emit_event and send_l1_message
* Fix tests
* Install LLVM on CI
* Test
* Test CI
* Fix lint step
* Save work in progress
* Unhardcode calldata and entry point
* Unhardcode more stuff
* Fix test
* Add basic implementation for call_contract
* Add call to get_name to integration test
* Make call_contract impl compile
* Fix test
* Pass the correct amount of builtins for every function
* Improve test legibility
* Write call_contract test skeleton
* Finish writing test, still bugs to fix
* implement get_execution_info, make increase_allowance work
* More debugging
* Basic test for call_contract working
* More progress on testing ERC20
* More progress on test
* Add caller and callee contracts
* Fix call_contract test after merge
* Fix callee address in tests
* Polish some details
* Remove use_cairo_native from TransactionExecutionContext
* Write test skeleton
* Add test contracts
* Fix tests
* Readd deleted contracts
* Echo contract test passing
* Update cairo compiler to version 2.2.0
* Calling another contract with events test is passing
* Fix failing tests
* Remove internal_calls field TODO in CallInfo returned by native_execute
* Add event_emitter contract
* Add cairo vm execution to the erc20 test for comparison
* Add simple implementation for panics in native execution
* Add some documentation in code
* Assert equality between events, accessed_storage_keys and l1_l2 messages between native and vm runs
* Add event_emitter contract
* Remove print
* Remove comments
* Move native syscall handler to its own file
* Add felt decode to string when program panics
* Make cairo native an optional dependency behind a feature
* Move execution result to cairo native
* Add a README section explaining how to setup cairo native
* Fix some clippy issues
* Fix test compilation
* CI test
* Revert "CI test"
This reverts commit 4631e5e56a46cd0d751ea3a7d10db3541f2fde3d.
* CI test
* Test
* Test
* Address comment about multiple cfgs
* Remove unnecessary clone
* Test
* Test
* Switch to special workflow for native integration tests
* Fix workflow
* Fix stuff after merge.
* Fix clippy warnings.
* Fix after merge.
* Fix comments.
* Fix `Makefile`.
* Remove unused import.
* Use transactional state.
* update cairo native to llvm 17 and remove nightly requirement
* update ci
* upd ci
* try to fix ci
* use ubuntu on native
* try to fix ci
* not needed?
* fix ci
* update cairo native
* fix nightly usage
* try to fix ci
* dont need a transactional state reader, simply clone the state reader
* try to fix ci
* format
* fix again
* fix if
* values
* force rebuild
* make cache track cairo 2 version to trigger rebuilds
* try no restore key
* update readme
* fix tests on ci
* update cairo native commit
* fix more tests on ci
* fix cairo native interface
* try ci without cache
* setup rustup home
* make param passing to cairo native not obscure
* try
* try again
* remove large packages
* remove large dirs
* remove android too
* polly is needed
* needs sudo
* fix cov
* fix test for now
* format
* cleanup ci file
* use pyenv if available
* nightly not needed in readme
* add .sierra as generated to gitattributes
* fix gitattributes
* add casm too
---------
Co-authored-by: Javier Chatruc <jrchatruc@gmail.com>
Co-authored-by: Mariano Nicolini <mariano.nicolini.91@gmail.com>
Co-authored-by: Esteve Soler Arderiu <esteve.soler@fratilia.com>
Co-authored-by: Edgar Luque <git@edgarluque.com>
* add test to check cairo 2 account contract deploy panic failing properly (#1045)
* add test for account contract execution with panic
* clippy
* update cairo native to latest revision, u128 gas, mut self (#1082)
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix `get_execution_info` syscall (#1081)
* Mark read-only segments
* Move call
* Remove debug prints
* Remove fn
* Add test case
* Add comment
* Restore newlines
* Add function comment
* Fix test values
* Undo changes to makefile
* Undo changes to makefile
* clippy
* cairo-native: implement testing syscalls (#1084)
* cleanup erc20 test (#1087)
* Fix `get_onchain_data_segment_length` (#1085)
* Fix get_onchain_data_segment_length
* Update test values
* Update test values
* fmt
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Check that running a declare v1 yields a higher fee than simulating it without validation (#1076)
* Reorder DeployAccount::apply
* Revert "Reorder DeployAccount::apply"
This reverts commit 11b0c39cd9cdd92f5211930e9f36f3840a978ae9.
* Add test
* Add test
* clippy + fmt
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* implement display and debug trait for Address (#1080)
* implement display and debug trait for Address
* hexa fmt
* Add recursive calls tests using `library_call` & `call_contract` syscalls (#1072)
* Add recursive library call test
* Add test programs
* Change base changes
* Add recursive test for call_contract
* fmt + clippy
* Add test for 100 contract calls
* clippy + fmt
* Update test values
---------
Co-authored-by: Juan Bono <juanbono94@gmail.com>
* Fix/Refactor …1 parent 82092d2 commit e9ecfc0
1 file changed
+55
-3
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| 130 | + | |
130 | 131 | | |
131 | 132 | | |
| 133 | + | |
132 | 134 | | |
| 135 | + | |
133 | 136 | | |
| 137 | + | |
134 | 138 | | |
| 139 | + | |
135 | 140 | | |
| 141 | + | |
136 | 142 | | |
| 143 | + | |
137 | 144 | | |
| 145 | + | |
138 | 146 | | |
| 147 | + | |
139 | 148 | | |
| 149 | + | |
140 | 150 | | |
| 151 | + | |
141 | 152 | | |
| 153 | + | |
142 | 154 | | |
| 155 | + | |
143 | 156 | | |
| 157 | + | |
144 | 158 | | |
| 159 | + | |
145 | 160 | | |
146 | 161 | | |
147 | 162 | | |
148 | 163 | | |
149 | 164 | | |
150 | 165 | | |
151 | 166 | | |
| 167 | + | |
152 | 168 | | |
153 | 169 | | |
154 | 170 | | |
| |||
186 | 202 | | |
187 | 203 | | |
188 | 204 | | |
| 205 | + | |
189 | 206 | | |
190 | 207 | | |
191 | 208 | | |
| |||
194 | 211 | | |
195 | 212 | | |
196 | 213 | | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
197 | 217 | | |
198 | 218 | | |
199 | 219 | | |
200 | 220 | | |
201 | 221 | | |
202 | 222 | | |
| 223 | + | |
203 | 224 | | |
| 225 | + | |
204 | 226 | | |
| 227 | + | |
205 | 228 | | |
| 229 | + | |
206 | 230 | | |
| 231 | + | |
207 | 232 | | |
| 233 | + | |
208 | 234 | | |
| 235 | + | |
209 | 236 | | |
| 237 | + | |
210 | 238 | | |
| 239 | + | |
211 | 240 | | |
212 | 241 | | |
213 | 242 | | |
| |||
250 | 279 | | |
251 | 280 | | |
252 | 281 | | |
| 282 | + | |
253 | 283 | | |
254 | 284 | | |
255 | 285 | | |
| |||
318 | 348 | | |
319 | 349 | | |
320 | 350 | | |
| 351 | + | |
321 | 352 | | |
322 | 353 | | |
323 | 354 | | |
| |||
335 | 366 | | |
336 | 367 | | |
337 | 368 | | |
| 369 | + | |
338 | 370 | | |
339 | 371 | | |
340 | 372 | | |
| |||
411 | 443 | | |
412 | 444 | | |
413 | 445 | | |
| 446 | + | |
414 | 447 | | |
415 | 448 | | |
416 | 449 | | |
417 | 450 | | |
| 451 | + | |
418 | 452 | | |
419 | 453 | | |
420 | 454 | | |
| |||
481 | 515 | | |
482 | 516 | | |
483 | 517 | | |
| 518 | + | |
484 | 519 | | |
485 | 520 | | |
486 | 521 | | |
| |||
527 | 562 | | |
528 | 563 | | |
529 | 564 | | |
| 565 | + | |
530 | 566 | | |
531 | 567 | | |
532 | 568 | | |
| |||
570 | 606 | | |
571 | 607 | | |
572 | 608 | | |
| 609 | + | |
573 | 610 | | |
574 | 611 | | |
575 | 612 | | |
| |||
585 | 622 | | |
586 | 623 | | |
587 | 624 | | |
588 | | - | |
589 | | - | |
| 625 | + | |
590 | 626 | | |
591 | 627 | | |
592 | 628 | | |
| |||
611 | 647 | | |
612 | 648 | | |
613 | 649 | | |
| 650 | + | |
614 | 651 | | |
615 | 652 | | |
616 | 653 | | |
| |||
630 | 667 | | |
631 | 668 | | |
632 | 669 | | |
| 670 | + | |
633 | 671 | | |
634 | 672 | | |
635 | 673 | | |
| |||
643 | 681 | | |
644 | 682 | | |
645 | 683 | | |
| 684 | + | |
646 | 685 | | |
647 | 686 | | |
648 | 687 | | |
| |||
654 | 693 | | |
655 | 694 | | |
656 | 695 | | |
| 696 | + | |
657 | 697 | | |
658 | 698 | | |
659 | 699 | | |
| |||
753 | 793 | | |
754 | 794 | | |
755 | 795 | | |
| 796 | + | |
756 | 797 | | |
757 | 798 | | |
758 | 799 | | |
| |||
783 | 824 | | |
784 | 825 | | |
785 | 826 | | |
| 827 | + | |
786 | 828 | | |
787 | 829 | | |
788 | 830 | | |
| |||
813 | 855 | | |
814 | 856 | | |
815 | 857 | | |
| 858 | + | |
816 | 859 | | |
817 | 860 | | |
818 | 861 | | |
| |||
876 | 919 | | |
877 | 920 | | |
878 | 921 | | |
| 922 | + | |
879 | 923 | | |
880 | 924 | | |
881 | 925 | | |
| |||
923 | 967 | | |
924 | 968 | | |
925 | 969 | | |
| 970 | + | |
926 | 971 | | |
927 | 972 | | |
928 | 973 | | |
| |||
947 | 992 | | |
948 | 993 | | |
949 | 994 | | |
950 | | - | |
| 995 | + | |
951 | 996 | | |
952 | 997 | | |
953 | 998 | | |
| |||
962 | 1007 | | |
963 | 1008 | | |
964 | 1009 | | |
| 1010 | + | |
965 | 1011 | | |
966 | 1012 | | |
967 | 1013 | | |
| |||
984 | 1030 | | |
985 | 1031 | | |
986 | 1032 | | |
| 1033 | + | |
987 | 1034 | | |
988 | 1035 | | |
989 | 1036 | | |
| |||
997 | 1044 | | |
998 | 1045 | | |
999 | 1046 | | |
| 1047 | + | |
1000 | 1048 | | |
1001 | 1049 | | |
1002 | 1050 | | |
| |||
1028 | 1076 | | |
1029 | 1077 | | |
1030 | 1078 | | |
| 1079 | + | |
1031 | 1080 | | |
1032 | 1081 | | |
1033 | 1082 | | |
| |||
1042 | 1091 | | |
1043 | 1092 | | |
1044 | 1093 | | |
| 1094 | + | |
1045 | 1095 | | |
1046 | 1096 | | |
1047 | 1097 | | |
| |||
1058 | 1108 | | |
1059 | 1109 | | |
1060 | 1110 | | |
| 1111 | + | |
1061 | 1112 | | |
1062 | 1113 | | |
1063 | 1114 | | |
| |||
1107 | 1158 | | |
1108 | 1159 | | |
1109 | 1160 | | |
| 1161 | + | |
1110 | 1162 | | |
1111 | 1163 | | |
1112 | 1164 | | |
| |||
0 commit comments