Skip to content

Commit

Permalink
chore: bump cairo version
Browse files Browse the repository at this point in the history
  • Loading branch information
enitrat committed Nov 20, 2023
1 parent 551a995 commit 3f30125
Show file tree
Hide file tree
Showing 5 changed files with 5 additions and 67 deletions.
2 changes: 1 addition & 1 deletion Scarb.lock
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ dependencies = [

[[package]]
name = "alexandria_data_structures"
version = "0.1.0"
version = "0.2.0"
dependencies = [
"alexandria_encoding",
]
Expand Down
2 changes: 1 addition & 1 deletion Scarb.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ description = "Community maintained Cairo and Starknet libraries"
homepage = "https://github.com/keep-starknet-strange/alexandria/"

[workspace.dependencies]
starknet = "=2.4.0-rc2"
starknet = ">=2.4.0-rc2"

[workspace.tool.fmt]
sort-module-level-items = true
Expand Down
4 changes: 2 additions & 2 deletions src/data_structures/Scarb.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
[package]
name = "alexandria_data_structures"
version = "0.1.0"
version = "0.2.0"
description = "A set of Cairo data structure libraries and algorithms"
homepage = "https://github.com/keep-starknet-strange/alexandria/tree/main/src/data_structures"

[tool]
fmt.workspace = true

[dependencies]
alexandria_encoding = { path = "../encoding" }
alexandria_encoding = { path = "../encoding" }
36 changes: 0 additions & 36 deletions src/data_structures/src/byte_array_ext.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -444,39 +444,3 @@ impl ByteArrayImpl of ByteArrayTraitExt {
ByteArrayReaderTrait::new(self)
}
}

impl ByteArraySerde of Serde<ByteArray> {
fn serialize(self: @ByteArray, ref output: Array<felt252>) {
let len = self.len();
len.serialize(ref output);
let bytes31_arr = self.data.span();
serialize_array_helper(bytes31_arr, ref output);

if (*self.pending_word_len > 0) {
output.append(*self.pending_word);
}
}

fn deserialize(ref serialized: Span<felt252>) -> Option<ByteArray> {
let length = *serialized.pop_front()?;
let length: usize = length.try_into().unwrap();
let denominator: NonZero<usize> = BYTES_IN_BYTES31.try_into().unwrap();
let (felt_length, pending_word_len) = DivRem::div_rem(length, denominator);
let mut arr: Array<bytes31> = array![];
let bytes31_arr = deserialize_array_helper(ref serialized, arr, felt_length.into())?;

let pending_word = if pending_word_len > 0 {
*serialized.pop_front()?
} else {
0
};

Option::Some(
ByteArray {
data: bytes31_arr,
pending_word: pending_word,
pending_word_len: pending_word_len.try_into().unwrap()
}
)
}
}
28 changes: 1 addition & 27 deletions src/data_structures/src/tests/byte_array_ext_test.cairo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use alexandria_data_structures::byte_array_ext::{ByteArraySerde, ByteArrayTraitExt};
use alexandria_data_structures::byte_array_ext::{ByteArrayTraitExt};
use integer::u512;

#[test]
Expand Down Expand Up @@ -431,23 +431,6 @@ fn test_reader_helper() {
assert(reader.data == @ba, 'reader failed');
}

#[test]
#[available_gas(1000000)]
fn test_serialize() {
let mut out = array![];
let ba = test_byte_array_64();
ba.serialize(ref out);
let expected = serialized_byte_array_64();
assert(out == expected, 'serialization differs');
}

#[test]
#[available_gas(1000000)]
fn test_deserialize() {
let mut in = serialized_byte_array_64().span();
let ba: ByteArray = Serde::deserialize(ref in).unwrap();
assert(ba == test_byte_array_64(), 'deserialized ByteArray differs');
}

// helpers
fn test_byte_array_8() -> ByteArray {
Expand Down Expand Up @@ -489,12 +472,3 @@ fn test_byte_array_64() -> ByteArray {
ba1.append_word(0x3f40, 2);
ba1
}

fn serialized_byte_array_64() -> Array<felt252> {
array![
0x40,
0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f,
0x202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e,
0x3f40
]
}

0 comments on commit 3f30125

Please sign in to comment.