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

feat: bump cairo lang to 2.6.3 and related dependencies #1253

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
203 changes: 113 additions & 90 deletions Cargo.lock

Large diffs are not rendered by default.

16 changes: 9 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,15 @@ members = [
]

[workspace.dependencies]
cairo-lang-casm = "=2.5.4"
cairo-lang-sierra = "=2.5.4"
cairo-lang-starknet = "=2.5.4"
cairo-lang-utils = "=2.5.4"
cairo-vm = { git = "https://github.com/lambdaclass/cairo-vm", rev = "3547089579dd74f815edbc2d1caa91e00fc8a2f7", features = ["cairo-1-hints"] }
cairo-lang-casm = "=2.6.3"
cairo-lang-sierra = "=2.6.3"
cairo-lang-starknet = "=2.6.3"
cairo-lang-starknet-classes = "=2.6.3"
cairo-lang-utils = "=2.6.3"
cairo-vm = { git = "https://github.com/glihm/cairo-vm", branch = "feat/bump-cairo-263", features = ["cairo-1-hints"] }
num-traits = "0.2.15"
starknet = "0.7.0" # todo: update to 0.9.0+ once cairo-lang is 2.6.0+
starknet_api = "0.7.0-dev.0" # todo: update to 0.9.0+ once cairo-lang is 2.6.0+
starknet = "0.9.0"
starknet_api = "0.10.0"
thiserror = "1.0.32"

[dependencies]
Expand All @@ -39,6 +40,7 @@ base64 = { version = "0.21.0", default-features = false, features = ["alloc"] }
cairo-lang-casm = { workspace = true }
cairo-lang-sierra = { workspace = true }
cairo-lang-starknet = { workspace = true }
cairo-lang-starknet-classes = { workspace = true }
cairo-lang-utils = { workspace = true }
cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev = "baf57d2dde0036ac4848fc40c672826fb7ffcde4", optional = true }
k256 = "0.13.3"
Expand Down
2 changes: 1 addition & 1 deletion src/core/contract_address/casm_contract_address.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::core::errors::contract_address_errors::ContractAddressError;
use crate::services::api::contract_classes::deprecated_contract_class::EntryPointType;
use cairo_lang_starknet::casm_contract_class::{CasmContractClass, CasmContractEntryPoint};
use cairo_lang_starknet_classes::casm_contract_class::{CasmContractClass, CasmContractEntryPoint};
use cairo_vm::Felt252;
use starknet_crypto::{poseidon_hash_many, FieldElement};

Expand Down
6 changes: 3 additions & 3 deletions src/core/contract_address/sierra_contract_address.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use crate::{core::errors::contract_address_errors::ContractAddressError, EntryPointType};
use cairo_lang_starknet::{
contract::starknet_keccak,
contract_class::{ContractClass as SierraContractClass, ContractEntryPoint},
use cairo_lang_starknet_classes::contract_class::{
ContractClass as SierraContractClass, ContractEntryPoint,
};
use cairo_lang_starknet_classes::keccak::starknet_keccak;
use cairo_vm::Felt252;
use serde_json::ser::Formatter;
use starknet_crypto::{poseidon_hash_many, FieldElement, PoseidonHasher};
Expand Down
6 changes: 4 additions & 2 deletions src/execution/execution_entry_point.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ use crate::{
},
};
use cairo_lang_sierra::program::Program as SierraProgram;
use cairo_lang_starknet::casm_contract_class::{CasmContractClass, CasmContractEntryPoint};
use cairo_lang_starknet::contract_class::ContractEntryPoints;
use cairo_lang_starknet_classes::{
casm_contract_class::{CasmContractClass, CasmContractEntryPoint},
contract_class::ContractEntryPoints,
};
use cairo_vm::{
types::{
program::Program,
Expand Down
2 changes: 1 addition & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ extern crate assert_matches;
pub use crate::services::api::contract_classes::deprecated_contract_class::{
ContractEntryPoint, EntryPointType,
};
pub use cairo_lang_starknet::{
pub use cairo_lang_starknet_classes::{
casm_contract_class::CasmContractClass, contract_class::ContractClass,
contract_class::ContractClass as SierraContractClass,
};
Expand Down
2 changes: 1 addition & 1 deletion src/runner/mod.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::execution::CallResult;
use crate::syscalls::syscall_handler::HintProcessorPostRun;
use crate::transaction::error::TransactionError;
use cairo_lang_starknet::casm_contract_class::CasmContractClass;
use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass;
use cairo_vm::hint_processor::hint_processor_definition::HintProcessor;
use cairo_vm::serde::deserialize_program::BuiltinName;
use cairo_vm::types::errors::math_errors::MathError;
Expand Down
15 changes: 10 additions & 5 deletions src/services/api/contract_classes/compiled_class.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ use crate::{ContractEntryPoint, EntryPointType};

use super::deprecated_contract_class::ContractClass;
use cairo_lang_sierra::program::Program as SierraProgram;
use cairo_lang_starknet::abi::Contract;
use cairo_lang_starknet::casm_contract_class::CasmContractClass;
use cairo_lang_starknet::contract_class::{
ContractClass as SierraContractClass, ContractEntryPoints,
use cairo_lang_starknet_classes::{
abi::Contract,
casm_contract_class::CasmContractClass,
contract_class::{ContractClass as SierraContractClass, ContractEntryPoints},
};
use cairo_lang_utils::bigint::BigUintAsHex;
use cairo_vm::types::program::Program;
Expand Down Expand Up @@ -87,7 +87,12 @@ impl From<StarknetRsContractClass> for CompiledClass {
sierra_cc.extract_sierra_program().unwrap(),
sierra_cc.entry_points_by_type.clone(),
));
let casm_cc = CasmContractClass::from_contract_class(sierra_cc, true).unwrap();

// TODO: from where this value must be passed? Constant?
let max_bytecode_size = 4_089_446;
let casm_cc =
CasmContractClass::from_contract_class(sierra_cc, true, max_bytecode_size)
.unwrap();

CompiledClass::Casm {
casm: Arc::new(casm_cc),
Expand Down
11 changes: 8 additions & 3 deletions src/transaction/declare.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,9 @@ use crate::{
},
utils::calculate_tx_resources,
};
use cairo_lang_starknet::casm_contract_class::CasmContractClass;
use cairo_lang_starknet::contract_class::ContractClass as SierraContractClass;
use cairo_lang_starknet_classes::{
casm_contract_class::CasmContractClass, contract_class::ContractClass as SierraContractClass,
};
use cairo_vm::Felt252;
use num_traits::Zero;
use std::fmt::Debug;
Expand Down Expand Up @@ -440,12 +441,16 @@ impl Declare {
&self,
state: &mut S,
) -> Result<(), TransactionError> {
// TODO: from where this value must be passed? Constant?
let max_bytecode_size = 4_089_446;

let casm_class = match &self.casm_class {
None => CasmContractClass::from_contract_class(
self.sierra_contract_class
.clone()
.ok_or(TransactionError::DeclareNoSierraOrCasm)?,
true,
max_bytecode_size,
)
.map_err(|e| TransactionError::SierraCompileError(e.to_string()))?,
Some(casm_contract_class) => casm_contract_class.clone(),
Expand Down Expand Up @@ -612,7 +617,7 @@ mod tests {
},
transaction::{Address, ClassHash},
};
use cairo_lang_starknet::casm_contract_class::CasmContractClass;
use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass;
use cairo_vm::Felt252;

use std::{fs::File, io::BufReader, path::PathBuf, sync::Arc};
Expand Down
2 changes: 1 addition & 1 deletion src/transaction/invoke_function.rs
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ mod tests {
transaction::ClassHash,
utils::calculate_sn_keccak,
};
use cairo_lang_starknet::casm_contract_class::CasmContractClass;
use cairo_lang_starknet_classes::casm_contract_class::CasmContractClass;

use pretty_assertions_sorted::{assert_eq, assert_eq_sorted};
use starknet_api::{
Expand Down
Loading