Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit f897cb7

Browse files
committed
progress
1 parent 6c9cdb7 commit f897cb7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1914
-220
lines changed

Cargo.lock

+206-205
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+11-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ metrics = []
1313
# Disclaimer: This feature enables state modifications being applied on reverted and failings txs, and also disables address availability check when deploying contracts.
1414
# Only use for benchmarking using the replay binary
1515
replay_benchmark = []
16+
cairo-native = ["dep:ipc-channel", "dep:tracing-appender", "dep:cairo-native", "dep:uuid"]
1617

1718
[workspace]
1819
members = [
@@ -43,8 +44,10 @@ cairo-lang-runner = { workspace = true }
4344
cairo-lang-sierra = { workspace = true }
4445
cairo-lang-starknet = { workspace = true }
4546
cairo-lang-utils = { workspace = true }
46-
cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev = "5e003699e53003c03b848e3001f1d4ec0d7007ed", optional = true }
47-
47+
cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev = "a2e6d118af9a54295ef1ca4d693b98e54ffc3b0f", features = ["with-serde"], optional = true }
48+
ipc-channel = { version = "0.18.0", features = ["memfd"], optional = true }
49+
tracing-appender = { version = "0.2.3", optional = true}
50+
uuid = { version = "1.6.1", features = ["serde", "v4"], optional = true }
4851

4952
cairo-vm = { workspace = true }
5053
flate2 = "1.0.25"
@@ -70,6 +73,7 @@ starknet_api = { workspace = true }
7073
starknet-crypto = "0.6.1"
7174
thiserror = { workspace = true }
7275
tracing = "0.1.37"
76+
tracing-subscriber = "0.3.17"
7377

7478
[dev-dependencies]
7579
assert_matches = "1.5.0"
@@ -88,6 +92,11 @@ path = "src/bin/native_bench.rs"
8892
name = "cairo_native"
8993
required-features = ["cairo-native"]
9094

95+
[[bin]]
96+
path = "src/bin/native_executor.rs"
97+
name = "cairo_native_executor"
98+
required-features = ["cairo-native"]
99+
91100
[[bench]]
92101
path = "bench/yas.rs"
93102
name = "yas"

bench/internals.rs

+10
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ pub fn deploy_account(
116116
block_context,
117117
#[cfg(feature = "cairo-native")]
118118
Some(program_cache.clone()),
119+
#[cfg(feature = "cairo-native")]
120+
None,
119121
)
120122
})
121123
.unwrap();
@@ -158,6 +160,8 @@ pub fn declare(
158160
block_context,
159161
#[cfg(feature = "cairo-native")]
160162
Some(program_cache.clone()),
163+
#[cfg(feature = "cairo-native")]
164+
None,
161165
)
162166
})
163167
.unwrap();
@@ -207,6 +211,8 @@ pub fn deploy(
207211
block_context,
208212
#[cfg(feature = "cairo-native")]
209213
Some(program_cache.clone()),
214+
#[cfg(feature = "cairo-native")]
215+
None,
210216
)
211217
})
212218
.unwrap();
@@ -254,6 +260,8 @@ pub fn invoke(
254260
block_context,
255261
#[cfg(feature = "cairo-native")]
256262
Some(program_cache.clone()),
263+
#[cfg(feature = "cairo-native")]
264+
None,
257265
)
258266
.unwrap();
259267

@@ -282,6 +290,8 @@ pub fn invoke(
282290
2_000_000,
283291
#[cfg(feature = "cairo-native")]
284292
Some(program_cache.clone()),
293+
#[cfg(feature = "cairo-native")]
294+
None,
285295
)
286296
})
287297
.unwrap();

bench/yas.rs

+26
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,8 @@ where
385385
&BlockContext::default(),
386386
#[cfg(feature = "cairo-native")]
387387
Some(program_cache),
388+
#[cfg(feature = "cairo-native")]
389+
None,
388390
)?;
389391

390392
// Ensure the execution was successful.
@@ -426,6 +428,8 @@ where
426428
&BlockContext::default(),
427429
#[cfg(feature = "cairo-native")]
428430
Some(program_cache),
431+
#[cfg(feature = "cairo-native")]
432+
None,
429433
)?;
430434

431435
// Ensure the execution was successful.
@@ -467,6 +471,8 @@ where
467471
&BlockContext::default(),
468472
#[cfg(feature = "cairo-native")]
469473
Some(program_cache),
474+
#[cfg(feature = "cairo-native")]
475+
None,
470476
)?;
471477

472478
// Ensure the execution was successful.
@@ -508,6 +514,8 @@ where
508514
&BlockContext::default(),
509515
#[cfg(feature = "cairo-native")]
510516
Some(program_cache),
517+
#[cfg(feature = "cairo-native")]
518+
None,
511519
)?;
512520

513521
// Ensure the execution was successful.
@@ -560,6 +568,8 @@ where
560568
u64::MAX.into(),
561569
#[cfg(feature = "cairo-native")]
562570
Some(program_cache),
571+
#[cfg(feature = "cairo-native")]
572+
None,
563573
)?;
564574

565575
// Ensure the execution was successful.
@@ -607,6 +617,8 @@ where
607617
u64::MAX.into(),
608618
#[cfg(feature = "cairo-native")]
609619
Some(program_cache),
620+
#[cfg(feature = "cairo-native")]
621+
None,
610622
)?;
611623

612624
// Ensure the execution was successful.
@@ -646,6 +658,8 @@ where
646658
u64::MAX.into(),
647659
#[cfg(feature = "cairo-native")]
648660
Some(program_cache),
661+
#[cfg(feature = "cairo-native")]
662+
None,
649663
)?;
650664

651665
// Ensure the execution was successful.
@@ -701,6 +715,8 @@ where
701715
u64::MAX.into(),
702716
#[cfg(feature = "cairo-native")]
703717
Some(program_cache),
718+
#[cfg(feature = "cairo-native")]
719+
None,
704720
)?;
705721

706722
// Ensure the execution was successful.
@@ -752,6 +768,8 @@ where
752768
u64::MAX.into(),
753769
#[cfg(feature = "cairo-native")]
754770
Some(program_cache),
771+
#[cfg(feature = "cairo-native")]
772+
None,
755773
)?;
756774

757775
// Ensure the execution was successful.
@@ -801,6 +819,8 @@ where
801819
u64::MAX.into(),
802820
#[cfg(feature = "cairo-native")]
803821
Some(program_cache),
822+
#[cfg(feature = "cairo-native")]
823+
None,
804824
)?;
805825

806826
// Ensure the execution was successful.
@@ -859,6 +879,8 @@ where
859879
u64::MAX.into(),
860880
#[cfg(feature = "cairo-native")]
861881
Some(program_cache),
882+
#[cfg(feature = "cairo-native")]
883+
None,
862884
)?;
863885

864886
// Ensure the execution was successful.
@@ -919,6 +941,8 @@ where
919941
u64::MAX.into(),
920942
#[cfg(feature = "cairo-native")]
921943
Some(program_cache),
944+
#[cfg(feature = "cairo-native")]
945+
None,
922946
)?;
923947

924948
// Ensure the execution was successful.
@@ -967,6 +991,8 @@ where
967991
u64::MAX.into(),
968992
#[cfg(feature = "cairo-native")]
969993
Some(program_cache),
994+
#[cfg(feature = "cairo-native")]
995+
None,
970996
)?;
971997

972998
// Ensure the execution was successful.

cli/src/main.rs

+4
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,8 @@ fn invoke_parser(
207207
0,
208208
#[cfg(feature = "cairo-native")]
209209
None,
210+
#[cfg(feature = "cairo-native")]
211+
None,
210212
)?;
211213
cached_state.apply_state_update(&StateDiff::from_cached_state(transactional_state.cache())?)?;
212214

@@ -274,6 +276,8 @@ fn call_parser(
274276
block_context.invoke_tx_max_n_steps(),
275277
#[cfg(feature = "cairo-native")]
276278
None,
279+
#[cfg(feature = "cairo-native")]
280+
None,
277281
)?;
278282

279283
let call_info = call_info.ok_or(TransactionError::CallInfoIsNone)?;

examples/contract_execution/src/main.rs

+8
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ fn test_contract(
138138
&block_context,
139139
#[cfg(feature = "cairo-native")]
140140
None,
141+
#[cfg(feature = "cairo-native")]
142+
None,
141143
)
142144
.expect("Account Deploy Failed")
143145
.call_info
@@ -179,6 +181,8 @@ fn test_contract(
179181
&block_context,
180182
#[cfg(feature = "cairo-native")]
181183
None,
184+
#[cfg(feature = "cairo-native")]
185+
None,
182186
)
183187
.expect("could not declare the contract class");
184188

@@ -205,6 +209,8 @@ fn test_contract(
205209
0,
206210
#[cfg(feature = "cairo-native")]
207211
None,
212+
#[cfg(feature = "cairo-native")]
213+
None,
208214
)
209215
.expect("could not deploy contract")
210216
.call_info
@@ -254,6 +260,8 @@ fn test_contract(
254260
0,
255261
#[cfg(feature = "cairo-native")]
256262
None,
263+
#[cfg(feature = "cairo-native")]
264+
None,
257265
)
258266
.unwrap();
259267

examples/lru_cache/main.rs

+6
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ fn run_contract(
7070
&block_context,
7171
#[cfg(feature = "cairo-native")]
7272
None,
73+
#[cfg(feature = "cairo-native")]
74+
None,
7375
)
7476
.unwrap();
7577

@@ -88,6 +90,8 @@ fn run_contract(
8890
&block_context,
8991
#[cfg(feature = "cairo-native")]
9092
None,
93+
#[cfg(feature = "cairo-native")]
94+
None,
9195
)
9296
.unwrap();
9397

@@ -113,6 +117,8 @@ fn run_contract(
113117
0,
114118
#[cfg(feature = "cairo-native")]
115119
None,
120+
#[cfg(feature = "cairo-native")]
121+
None,
116122
)
117123
.unwrap();
118124

fuzzer/src/main.rs

+2
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,8 @@ fn main() {
195195
block_context.invoke_tx_max_n_steps(),
196196
#[cfg(feature = "cairo-native")]
197197
None,
198+
#[cfg(feature = "cairo-native")]
199+
None,
198200
)
199201
.unwrap();
200202
assert_eq!(call_info.unwrap(), expected_call_info);

rpc_state_reader/src/sir_state_reader.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ pub fn execute_tx_configurable_with_state(
318318
#[cfg(not(feature = "cairo-native"))]
319319
let sir_execution = tx.execute(state, &block_context, u128::MAX)?;
320320
#[cfg(feature = "cairo-native")]
321-
let sir_execution = tx.execute(state, &block_context, u128::MAX, None)?;
321+
let sir_execution = tx.execute(state, &block_context, u128::MAX, None, None)?;
322322

323323
Ok(sir_execution)
324324
}

src/bin/deploy.rs

+2
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ fn main() {
6161
0,
6262
#[cfg(feature = "cairo-native")]
6363
None,
64+
#[cfg(feature = "cairo-native")]
65+
None,
6466
)
6567
.unwrap();
6668
}

src/bin/deploy_invoke.rs

+6
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ fn main() {
7878
0,
7979
#[cfg(feature = "cairo-native")]
8080
None,
81+
#[cfg(feature = "cairo-native")]
82+
None,
8183
)
8284
.unwrap();
8385

@@ -112,6 +114,8 @@ fn main() {
112114
0,
113115
#[cfg(feature = "cairo-native")]
114116
None,
117+
#[cfg(feature = "cairo-native")]
118+
None,
115119
)
116120
.unwrap();
117121

@@ -135,6 +139,8 @@ fn main() {
135139
0,
136140
#[cfg(feature = "cairo-native")]
137141
None,
142+
#[cfg(feature = "cairo-native")]
143+
None,
138144
)
139145
.unwrap();
140146

src/bin/fibonacci.rs

+2
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ fn main() {
132132
block_context.invoke_tx_max_n_steps(),
133133
#[cfg(feature = "cairo-native")]
134134
None,
135+
#[cfg(feature = "cairo-native")]
136+
None,
135137
)
136138
.unwrap();
137139

src/bin/invoke.rs

+4
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ fn main() {
9494
0,
9595
#[cfg(feature = "cairo-native")]
9696
None,
97+
#[cfg(feature = "cairo-native")]
98+
None,
9799
)
98100
.unwrap();
99101

@@ -117,6 +119,8 @@ fn main() {
117119
0,
118120
#[cfg(feature = "cairo-native")]
119121
None,
122+
#[cfg(feature = "cairo-native")]
123+
None,
120124
)
121125
.unwrap();
122126

src/bin/invoke_with_cachedstate.rs

+4
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ fn main() {
7171
0,
7272
#[cfg(feature = "cairo-native")]
7373
None,
74+
#[cfg(feature = "cairo-native")]
75+
None,
7476
)
7577
.unwrap();
7678

@@ -91,6 +93,8 @@ fn main() {
9193
0,
9294
#[cfg(feature = "cairo-native")]
9395
None,
96+
#[cfg(feature = "cairo-native")]
97+
None,
9498
)
9599
.unwrap();
96100

0 commit comments

Comments
 (0)