Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor Katana to using the new executor traits #1563

Merged

Conversation

kariy
Copy link
Member

@kariy kariy commented Feb 19, 2024

integrate the new executor traits introduced in #1561 to katana

@kariy kariy force-pushed the 02-19-feat_katana-executor_add_blockifier_executor_implementations branch from 32fce7f to 1fd844b Compare February 20, 2024 07:18
@kariy kariy force-pushed the 02-19-Refactor_Katana_to_using_the_new_executor_traits branch 2 times, most recently from b8d0d3d to d81f4f2 Compare February 22, 2024 12:50
@kariy kariy force-pushed the 02-19-feat_katana-executor_add_blockifier_executor_implementations branch from e6f3804 to ac5ab70 Compare February 22, 2024 13:20
@kariy kariy force-pushed the 02-19-Refactor_Katana_to_using_the_new_executor_traits branch from d81f4f2 to 0110759 Compare February 22, 2024 13:21
@kariy kariy force-pushed the 02-19-feat_katana-executor_add_blockifier_executor_implementations branch from ac5ab70 to 2864552 Compare February 22, 2024 14:24
@kariy kariy force-pushed the 02-19-Refactor_Katana_to_using_the_new_executor_traits branch 2 times, most recently from 2a07338 to 8d95654 Compare February 23, 2024 16:21
Copy link

codecov bot commented Feb 23, 2024

Codecov Report

Attention: Patch coverage is 74.44699% with 335 lines in your changes are missing coverage. Please review.

❗ No coverage uploaded for pull request base (dev/katana@1213ab1). Click here to learn what that means.

❗ Current head 9041b25 differs from pull request most recent head 0f3b85d. Consider uploading reports for the commit 0f3b85d to get more accurate results

Files Patch % Lines
crates/katana/executor/src/implementation/noop.rs 16.96% 93 Missing ⚠️
...na/executor/src/implementation/blockifier/state.rs 70.00% 45 Missing ⚠️
crates/katana/rpc/rpc/src/starknet.rs 52.05% 35 Missing ⚠️
crates/katana/executor/src/abstraction.rs 15.62% 27 Missing ⚠️
crates/katana/core/src/sequencer.rs 51.92% 25 Missing ⚠️
bin/katana/src/main.rs 0.00% 22 Missing ⚠️
...a/executor/src/implementation/blockifier/output.rs 85.12% 18 Missing ⚠️
crates/katana/core/src/service/block_producer.rs 90.11% 17 Missing ⚠️
...na/executor/src/implementation/blockifier/utils.rs 93.10% 16 Missing ⚠️
crates/katana/primitives/src/conversion/rpc.rs 88.88% 12 Missing ⚠️
... and 11 more
Additional details and impacted files
@@              Coverage Diff              @@
##             dev/katana    #1563   +/-   ##
=============================================
  Coverage              ?   69.79%           
=============================================
  Files                 ?      263           
  Lines                 ?    25082           
  Branches              ?        0           
=============================================
  Hits                  ?    17506           
  Misses                ?     7576           
  Partials              ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@kariy
Copy link
Member Author

kariy commented Feb 29, 2024

Merge activity

  • Feb 29, 1:56 AM EST: @kariy started a stack merge that includes this pull request via Graphite.
  • Feb 29, 2:02 AM EST: Graphite rebased this pull request as part of a merge.
  • Feb 29, 2:02 AM EST: @kariy merged this pull request with Graphite.

@kariy kariy force-pushed the 02-19-feat_katana-executor_add_blockifier_executor_implementations branch from 2864552 to 4535fd1 Compare February 29, 2024 07:00
Base automatically changed from 02-19-feat_katana-executor_add_blockifier_executor_implementations to dev/katana February 29, 2024 07:01
@kariy kariy force-pushed the 02-19-Refactor_Katana_to_using_the_new_executor_traits branch from 9041b25 to 0f3b85d Compare February 29, 2024 07:01
@kariy kariy merged commit d5841e1 into dev/katana Feb 29, 2024
10 checks passed
@kariy kariy deleted the 02-19-Refactor_Katana_to_using_the_new_executor_traits branch February 29, 2024 07:02
kariy added a commit that referenced this pull request Feb 29, 2024
integrate the new executor traits introduced in #1561 to katana
kariy added a commit that referenced this pull request Mar 4, 2024
integrate the new executor traits introduced in #1561 to katana
kariy added a commit to kariy/dojo that referenced this pull request Mar 4, 2024
integrate the new executor traits introduced in dojoengine#1561 to katana
kariy added a commit that referenced this pull request Mar 5, 2024
integrate the new executor traits introduced in #1561 to katana
kariy added a commit that referenced this pull request Mar 7, 2024
integrate the new executor traits introduced in #1561 to katana
kariy added a commit that referenced this pull request Mar 11, 2024
integrate the new executor traits introduced in #1561 to katana
glihm added a commit that referenced this pull request Mar 12, 2024
* chore: bump dependencies

* fix: update cairo-lang

* fix: add missing run_profiler

* fix: fmt

* update cairo-vm rev

* wip

* wip

* fmt

* fix: ensure semantics analyzer plugin is registered

* chore(katana): make ethers non optional since U256 is used outside messaging

* fix: run CAIRO_FIX_TESTS

* fix(dojo-core): remove compiler warnings

* git: add sozo generated bindings to gitignore

* fix: fix class hash

* fix: class hash generated code

* fix(dojo-core): fix tests and compilation warnings

* chore: integrate snos on cairo2.5

* chore: update Cargo.lock

* wip: work on integration of katana types

* wip: fetch strategy

* fix

* feat: add parsing of state diff for genesis block

* wip

* wip

* fix: rework provider for saya and RPC implem

* wip

* wip: snos types

* wip txs

* wip: fix snos parsing need to complete inputs

* chore: switch back to git snos

* chore: bump blockifier to use Serde on TransactionExecutionInfo

* feat: add saya RPC namespace

* feat: add transaction execution info to in memory db

* fix: remove unused code covered by other test

* fix: add logic for small requests to get transactions executions info

* fix: fetch transactions executions info instead of running blockifier

* fix: fmt and clippy

* docs: fix unused type

* fix: add tests for new transactions execution retrieval

* fix: add correct test to check no pending support

* fix: restore unchanged file

* fix: rename new provider trait to TransactionTraceProvider

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* adjust new types for Katana blockchain and SNOS

* fix: clippy

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* feat: add new primitive for trace and blockifier conversions

* feat: add TransactionExecutionInfo convert from blockifier

* feat: add executor trait method to retrieve the execution info

* fix: ensure tx execution info is passed in block producer

* chore: restore dependency on blockifier as we use TxExecInfo primitive

* refactor(katana): decouple `katana-primitives` from any executor impls (#1637)

* fix: clippy / fmt

* merge

* fix: clippy

---------

Co-authored-by: Kariy <[email protected]>
Co-authored-by: Ammar Arif <[email protected]>
kariy added a commit that referenced this pull request Mar 18, 2024
integrate the new executor traits introduced in #1561 to katana
kariy added a commit that referenced this pull request Mar 18, 2024
* chore: bump dependencies

* fix: update cairo-lang

* fix: add missing run_profiler

* fix: fmt

* update cairo-vm rev

* wip

* wip

* fmt

* fix: ensure semantics analyzer plugin is registered

* chore(katana): make ethers non optional since U256 is used outside messaging

* fix: run CAIRO_FIX_TESTS

* fix(dojo-core): remove compiler warnings

* git: add sozo generated bindings to gitignore

* fix: fix class hash

* fix: class hash generated code

* fix(dojo-core): fix tests and compilation warnings

* chore: integrate snos on cairo2.5

* chore: update Cargo.lock

* wip: work on integration of katana types

* wip: fetch strategy

* fix

* feat: add parsing of state diff for genesis block

* wip

* wip

* fix: rework provider for saya and RPC implem

* wip

* wip: snos types

* wip txs

* wip: fix snos parsing need to complete inputs

* chore: switch back to git snos

* chore: bump blockifier to use Serde on TransactionExecutionInfo

* feat: add saya RPC namespace

* feat: add transaction execution info to in memory db

* fix: remove unused code covered by other test

* fix: add logic for small requests to get transactions executions info

* fix: fetch transactions executions info instead of running blockifier

* fix: fmt and clippy

* docs: fix unused type

* fix: add tests for new transactions execution retrieval

* fix: add correct test to check no pending support

* fix: restore unchanged file

* fix: rename new provider trait to TransactionTraceProvider

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* adjust new types for Katana blockchain and SNOS

* fix: clippy

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* feat: add new primitive for trace and blockifier conversions

* feat: add TransactionExecutionInfo convert from blockifier

* feat: add executor trait method to retrieve the execution info

* fix: ensure tx execution info is passed in block producer

* chore: restore dependency on blockifier as we use TxExecInfo primitive

* refactor(katana): decouple `katana-primitives` from any executor impls (#1637)

* fix: clippy / fmt

* merge

* fix: clippy

---------

Co-authored-by: Kariy <[email protected]>
Co-authored-by: Ammar Arif <[email protected]>
kariy added a commit that referenced this pull request Mar 20, 2024
* chore: bump dependencies

* fix: update cairo-lang

* fix: add missing run_profiler

* fix: fmt

* update cairo-vm rev

* wip

* wip

* fmt

* fix: ensure semantics analyzer plugin is registered

* chore(katana): make ethers non optional since U256 is used outside messaging

* fix: run CAIRO_FIX_TESTS

* fix(dojo-core): remove compiler warnings

* git: add sozo generated bindings to gitignore

* fix: fix class hash

* fix: class hash generated code

* fix(dojo-core): fix tests and compilation warnings

* chore: integrate snos on cairo2.5

* chore: update Cargo.lock

* wip: work on integration of katana types

* wip: fetch strategy

* fix

* feat: add parsing of state diff for genesis block

* wip

* wip

* fix: rework provider for saya and RPC implem

* wip

* wip: snos types

* wip txs

* wip: fix snos parsing need to complete inputs

* chore: switch back to git snos

* chore: bump blockifier to use Serde on TransactionExecutionInfo

* feat: add saya RPC namespace

* feat: add transaction execution info to in memory db

* fix: remove unused code covered by other test

* fix: add logic for small requests to get transactions executions info

* fix: fetch transactions executions info instead of running blockifier

* fix: fmt and clippy

* docs: fix unused type

* fix: add tests for new transactions execution retrieval

* fix: add correct test to check no pending support

* fix: restore unchanged file

* fix: rename new provider trait to TransactionTraceProvider

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* adjust new types for Katana blockchain and SNOS

* fix: clippy

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* feat: add new primitive for trace and blockifier conversions

* feat: add TransactionExecutionInfo convert from blockifier

* feat: add executor trait method to retrieve the execution info

* fix: ensure tx execution info is passed in block producer

* chore: restore dependency on blockifier as we use TxExecInfo primitive

* refactor(katana): decouple `katana-primitives` from any executor impls (#1637)

* fix: clippy / fmt

* merge

* fix: clippy

---------

Co-authored-by: Kariy <[email protected]>
Co-authored-by: Ammar Arif <[email protected]>
kariy added a commit that referenced this pull request Mar 21, 2024
* chore: bump dependencies

* fix: update cairo-lang

* fix: add missing run_profiler

* fix: fmt

* update cairo-vm rev

* wip

* wip

* fmt

* fix: ensure semantics analyzer plugin is registered

* chore(katana): make ethers non optional since U256 is used outside messaging

* fix: run CAIRO_FIX_TESTS

* fix(dojo-core): remove compiler warnings

* git: add sozo generated bindings to gitignore

* fix: fix class hash

* fix: class hash generated code

* fix(dojo-core): fix tests and compilation warnings

* chore: integrate snos on cairo2.5

* chore: update Cargo.lock

* wip: work on integration of katana types

* wip: fetch strategy

* fix

* feat: add parsing of state diff for genesis block

* wip

* wip

* fix: rework provider for saya and RPC implem

* wip

* wip: snos types

* wip txs

* wip: fix snos parsing need to complete inputs

* chore: switch back to git snos

* chore: bump blockifier to use Serde on TransactionExecutionInfo

* feat: add saya RPC namespace

* feat: add transaction execution info to in memory db

* fix: remove unused code covered by other test

* fix: add logic for small requests to get transactions executions info

* fix: fetch transactions executions info instead of running blockifier

* fix: fmt and clippy

* docs: fix unused type

* fix: add tests for new transactions execution retrieval

* fix: add correct test to check no pending support

* fix: restore unchanged file

* fix: rename new provider trait to TransactionTraceProvider

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* adjust new types for Katana blockchain and SNOS

* fix: clippy

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* feat: add new primitive for trace and blockifier conversions

* feat: add TransactionExecutionInfo convert from blockifier

* feat: add executor trait method to retrieve the execution info

* fix: ensure tx execution info is passed in block producer

* chore: restore dependency on blockifier as we use TxExecInfo primitive

* refactor(katana): decouple `katana-primitives` from any executor impls (#1637)

* fix: clippy / fmt

* merge

* fix: clippy

---------

Co-authored-by: Kariy <[email protected]>
Co-authored-by: Ammar Arif <[email protected]>
@kariy kariy mentioned this pull request Mar 25, 2024
kariy added a commit that referenced this pull request Mar 26, 2024
…namespace (#1697)

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* refactor(katana): decouple `katana-primitives` from any executor impls (#1637)

* test(katana-executor): improve tests and add test for state (#1649)

- add tests for each executor's CachedState
- improve test in executor.rs
- fix sir not enough gas error
- fix test in simulate.rs

* feat(saya): load data from Katana to run `SNOS` (#1535)

* chore: bump dependencies

* fix: update cairo-lang

* fix: add missing run_profiler

* fix: fmt

* update cairo-vm rev

* wip

* wip

* fmt

* fix: ensure semantics analyzer plugin is registered

* chore(katana): make ethers non optional since U256 is used outside messaging

* fix: run CAIRO_FIX_TESTS

* fix(dojo-core): remove compiler warnings

* git: add sozo generated bindings to gitignore

* fix: fix class hash

* fix: class hash generated code

* fix(dojo-core): fix tests and compilation warnings

* chore: integrate snos on cairo2.5

* chore: update Cargo.lock

* wip: work on integration of katana types

* wip: fetch strategy

* fix

* feat: add parsing of state diff for genesis block

* wip

* wip

* fix: rework provider for saya and RPC implem

* wip

* wip: snos types

* wip txs

* wip: fix snos parsing need to complete inputs

* chore: switch back to git snos

* chore: bump blockifier to use Serde on TransactionExecutionInfo

* feat: add saya RPC namespace

* feat: add transaction execution info to in memory db

* fix: remove unused code covered by other test

* fix: add logic for small requests to get transactions executions info

* fix: fetch transactions executions info instead of running blockifier

* fix: fmt and clippy

* docs: fix unused type

* fix: add tests for new transactions execution retrieval

* fix: add correct test to check no pending support

* fix: restore unchanged file

* fix: rename new provider trait to TransactionTraceProvider

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* adjust new types for Katana blockchain and SNOS

* fix: clippy

* refactor(katana): change stored compiled class (#1559)

Both `blockifier` and `starknet_in_rust` use their own proprietary contract class types. So need to have a type where the types from those two crates can be derived from.

* refactor(katana-primitives): move class related types to a separate module (#1560)

* Katana executor traits (#1561)

* feat(katana-executor): add `blockifier` executor implementations (#1562)

implement the executor traits introduced in #1561 based on `blockifier`

* Refactor Katana to using the new executor traits (#1563)

integrate the new executor traits introduced in #1561 to katana

* feat(katana-executor): add starknet_in_rust executor (#1564)

* doc(katana-executor): add README

* test(katana-executor): add test for transaction simulation (#1593)

* test(katana-executor): refactor simulate tests (#1606)

refactor tests

* feat: add new primitive for trace and blockifier conversions

* feat: add TransactionExecutionInfo convert from blockifier

* feat: add executor trait method to retrieve the execution info

* fix: ensure tx execution info is passed in block producer

* chore: restore dependency on blockifier as we use TxExecInfo primitive

* refactor(katana): decouple `katana-primitives` from any executor impls (#1637)

* fix: clippy / fmt

* merge

* fix: clippy

---------

Co-authored-by: Kariy <[email protected]>
Co-authored-by: Ammar Arif <[email protected]>

* feat(katana-primitives): add fee info type

* Refactor executor output

* fix(katana): add missing contract address in `CallInfo`

* Remove `native` feature for now

* Limit nextest build jobs

* refactor(katana-executor): add logs for transaction events and resources

* fix(katana-executor): return reverted tx as error in estimate fee

---------

Co-authored-by: glihm <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant