Skip to content

Commit 23ed17f

Browse files
authored
refactor(primitives): define felt! macro locally (#390)
This change is part of the effort to remove the dependency on the `starknet` crate by introducing a local crate that provides the `felt!` macro, instead of relying on the one provided by the `starknet` crate.
1 parent dff8efc commit 23ed17f

File tree

32 files changed

+187
-37
lines changed

32 files changed

+187
-37
lines changed

Cargo.lock

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ members = [
2424
"crates/pool/pool",
2525
"crates/pool/pool-api",
2626
"crates/primitives",
27+
"crates/primitives/macro",
2728
"crates/rpc/rpc-server",
2829
"crates/rpc/rpc-api",
2930
"crates/rpc/rpc-client",
@@ -94,6 +95,7 @@ katana-pipeline = { path = "crates/sync/pipeline" }
9495
katana-pool = { path = "crates/pool/pool" }
9596
katana-pool-api = { path = "crates/pool/pool-api" }
9697
katana-primitives = { path = "crates/primitives" }
98+
katana-primitives-macro = { path = "crates/primitives/macro" }
9799
katana-provider = { path = "crates/storage/provider/provider" }
98100
katana-provider-api = { path = "crates/storage/provider/provider-api" }
99101
katana-rpc-server = { path = "crates/rpc/rpc-server" }

crates/cartridge/src/client.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ pub struct GetAccountCalldataResponse {
7474

7575
#[cfg(test)]
7676
mod tests {
77-
use katana_primitives::{address, ContractAddress};
77+
use katana_primitives::address;
7878

7979
use super::*;
8080

crates/cli/src/args.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ mod test {
556556
};
557557
use katana_node::config::rpc::RpcModuleKind;
558558
use katana_primitives::chain::ChainId;
559-
use katana_primitives::{address, felt, ContractAddress, Felt};
559+
use katana_primitives::{address, felt, Felt};
560560

561561
use super::*;
562562

crates/executor/src/implementation/blockifier/call.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ mod tests {
156156
use blockifier::state::cached_state::{self};
157157
use katana_primitives::class::ContractClass;
158158
use katana_primitives::execution::FunctionCall;
159-
use katana_primitives::{address, felt, ContractAddress};
159+
use katana_primitives::{address, felt};
160160
use katana_provider::api::contract::ContractClassWriter;
161161
use katana_provider::api::state::{StateFactoryProvider, StateWriter};
162162
use katana_provider::{test_utils, ProviderFactory};

crates/executor/tests/executor.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use katana_genesis::constant::{
99
DEFAULT_ETH_FEE_TOKEN_ADDRESS, DEFAULT_PREFUNDED_ACCOUNT_BALANCE, DEFAULT_UDC_ADDRESS,
1010
};
1111
use katana_primitives::block::ExecutableBlock;
12-
use katana_primitives::contract::ContractAddress;
1312
use katana_primitives::transaction::TxWithHash;
1413
use katana_primitives::{address, Felt};
1514
use katana_provider::api::contract::ContractClassProviderExt;

crates/gateway/gateway-types/src/conversion.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,7 @@ impl From<ExecutionResources> for katana_primitives::receipt::ExecutionResources
409409
#[cfg(test)]
410410
mod from_primitives_test {
411411
use katana_primitives::transaction::TxWithHash;
412-
use katana_primitives::{address, felt, ContractAddress};
412+
use katana_primitives::{address, felt};
413413
use katana_utils::arbitrary;
414414

415415
use super::*;
@@ -735,7 +735,6 @@ mod from_primitives_test {
735735
mod from_rpc_test {
736736
use std::collections::{BTreeMap, BTreeSet};
737737

738-
use katana_primitives::contract::ContractAddress;
739738
use katana_primitives::{address, felt};
740739

741740
use crate::{DeclaredContract, StateDiff};

crates/gateway/gateway-types/tests/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use katana_gateway_types::{
55
StateDiff, StorageDiff,
66
};
77
use katana_primitives::execution::BuiltinName;
8-
use katana_primitives::{address, eth_address, felt, ContractAddress};
8+
use katana_primitives::{address, eth_address, felt};
99
use serde_json::json;
1010

1111
#[test]

crates/primitives/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,14 @@ version.workspace = true
77
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
88

99
[dependencies]
10+
katana-primitives-macro.workspace = true
11+
1012
cairo-vm.workspace = true
1113
cairo-lang-sierra.workspace = true
1214
cairo-lang-utils.workspace = true
1315
cairo-lang-starknet-classes.workspace = true
1416

17+
1518
anyhow.workspace = true
1619
arbitrary = { workspace = true, optional = true }
1720
blockifier = { workspace = true, features = [ "testing" ] } # some Clone derives are gated behind 'testing' feature

crates/primitives/macro/Cargo.toml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
[package]
2+
description = "Procedural macros for katana-primitives"
3+
edition.workspace = true
4+
name = "katana-primitives-macro"
5+
version.workspace = true
6+
7+
[lib]
8+
proc-macro = true
9+
10+
[dependencies]
11+
proc-macro2.workspace = true
12+
quote.workspace = true
13+
syn = { workspace = true, features = ["parsing", "proc-macro"] }
14+
15+
starknet-types-core.workspace = true

0 commit comments

Comments
 (0)