Skip to content

Commit

Permalink
apply suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
Draggu committed Apr 3, 2024
1 parent 7403d59 commit 48982b4
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 43 deletions.
25 changes: 11 additions & 14 deletions crates/conversions/src/byte_array.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
use crate::felt252::SerializeAsFelt252Vec;
use crate::{felt252::SerializeAsFelt252Vec, string::TryFromHexStr};
use cairo_felt::Felt252;
use cairo_lang_utils::byte_array::{BYTES_IN_WORD, BYTE_ARRAY_MAGIC};
use num_traits::Num;

#[derive(Clone)]
pub struct ByteArray {
Expand All @@ -28,29 +27,27 @@ impl From<&str> for ByteArray {
}

impl SerializeAsFelt252Vec for ByteArray {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
output.extend(self.serialize_no_magic());
}
}

impl ByteArray {
#[must_use]
pub fn serialize_with_magic(self) -> Vec<Felt252> {
self.serialize(true)
}
let mut result = self.serialize_no_magic();

#[must_use]
pub fn serialize_no_magic(self) -> Vec<Felt252> {
self.serialize(false)
result.insert(
0,
Felt252::try_from_hex_str(&format!("0x{BYTE_ARRAY_MAGIC}")).unwrap(),
);

result
}

#[must_use]
fn serialize(self, magic: bool) -> Vec<Felt252> {
let mut result = Vec::with_capacity(self.words.len() + 3 + usize::from(magic));

if magic {
result.push(Felt252::from_str_radix(BYTE_ARRAY_MAGIC, 16).unwrap());
}
pub fn serialize_no_magic(self) -> Vec<Felt252> {
let mut result = Vec::with_capacity(self.words.len() + 3);

result.push(self.words.len().into());
result.extend(self.words);
Expand Down
14 changes: 7 additions & 7 deletions crates/conversions/src/felt252.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,16 +121,16 @@ impl TryInferFormat for Felt252 {
}

pub trait SerializeAsFelt252Vec: Sized {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>);
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>);
fn serialize_as_felt252_vec(self) -> Vec<Felt252> {
let mut result = vec![];
self.serialize_as_felt252(&mut result);
self.serialize_into_felt252_vec(&mut result);
result
}
}

impl SerializeAsFelt252Vec for Vec<Felt252> {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
output.extend(self);
}

Expand All @@ -140,22 +140,22 @@ impl SerializeAsFelt252Vec for Vec<Felt252> {
}

impl<T: SerializeAsFelt252Vec, E: SerializeAsFelt252Vec> SerializeAsFelt252Vec for Result<T, E> {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
match self {
Ok(val) => {
output.push(Felt252::from(0));
val.serialize_as_felt252(output);
val.serialize_into_felt252_vec(output);
}
Err(err) => {
output.push(Felt252::from(1));
err.serialize_as_felt252(output);
err.serialize_into_felt252_vec(output);
}
}
}
}

impl SerializeAsFelt252Vec for &str {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
output.extend(self.serialize_as_felt252_vec());
}

Expand Down
10 changes: 5 additions & 5 deletions crates/sncast/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -473,28 +473,28 @@ pub enum WaitForTransactionError {
}

impl SerializeAsFelt252Vec for WaitForTransactionError {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
match self {
WaitForTransactionError::TransactionError(err) => {
output.push(Felt252::from(0));
err.serialize_as_felt252(output);
err.serialize_into_felt252_vec(output);
}
WaitForTransactionError::TimedOut => output.push(Felt252::from(1)),
WaitForTransactionError::ProviderError(err) => {
output.push(Felt252::from(2));
err.serialize_as_felt252(output);
err.serialize_into_felt252_vec(output);
}
}
}
}

impl SerializeAsFelt252Vec for TransactionError {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
match self {
TransactionError::Rejected => output.push(Felt252::from(0)),
TransactionError::Reverted(err) => {
output.push(Felt252::from(1));
err.data.as_str().serialize_as_felt252(output);
err.data.as_str().serialize_into_felt252_vec(output);
}
}
}
Expand Down
28 changes: 15 additions & 13 deletions crates/sncast/src/response/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,23 @@ pub enum StarknetCommandError {
}

impl SerializeAsFelt252Vec for StarknetCommandError {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
match self {
StarknetCommandError::UnknownError(err) => {
output.push(Felt252::from(0));
err.to_string().as_str().serialize_as_felt252(output);
err.to_string().as_str().serialize_into_felt252_vec(output);
}
StarknetCommandError::ContractArtifactsNotFound(err) => {
output.push(Felt252::from(1));
err.data.as_str().serialize_as_felt252(output);
err.data.as_str().serialize_into_felt252_vec(output);
}
StarknetCommandError::WaitForTransactionError(err) => {
output.push(Felt252::from(2));
err.serialize_as_felt252(output);
err.serialize_into_felt252_vec(output);
}
StarknetCommandError::ProviderError(err) => {
output.push(Felt252::from(3));
err.serialize_as_felt252(output);
err.serialize_into_felt252_vec(output);
}
}
}
Expand All @@ -63,16 +63,16 @@ pub enum SNCastProviderError {
}

impl SerializeAsFelt252Vec for SNCastProviderError {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
match self {
SNCastProviderError::StarknetError(err) => {
output.push(Felt252::from(0));
err.serialize_as_felt252(output);
err.serialize_into_felt252_vec(output);
}
SNCastProviderError::RateLimited => output.push(Felt252::from(1)),
SNCastProviderError::UnknownError(err) => {
output.push(Felt252::from(2));
err.to_string().as_str().serialize_as_felt252(output);
err.to_string().as_str().serialize_into_felt252_vec(output);
}
}
}
Expand Down Expand Up @@ -179,7 +179,7 @@ impl From<StarknetError> for SNCastStarknetError {
}

impl SerializeAsFelt252Vec for SNCastStarknetError {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
match self {
SNCastStarknetError::FailedToReceiveTransaction => output.push(Felt252::from(0)),
SNCastStarknetError::ContractNotFound => output.push(Felt252::from(1)),
Expand All @@ -189,20 +189,22 @@ impl SerializeAsFelt252Vec for SNCastStarknetError {
SNCastStarknetError::TransactionHashNotFound => output.push(Felt252::from(5)),
SNCastStarknetError::ContractError(err) => {
output.push(Felt252::from(6));
err.revert_error.as_str().serialize_as_felt252(output);
err.revert_error.as_str().serialize_into_felt252_vec(output);
}
SNCastStarknetError::TransactionExecutionError(err) => {
output.push(Felt252::from(7));
output.push(Felt252::from(err.transaction_index));
err.execution_error.as_str().serialize_as_felt252(output);
err.execution_error
.as_str()
.serialize_into_felt252_vec(output);
}
SNCastStarknetError::ClassAlreadyDeclared => output.push(Felt252::from(8)),
SNCastStarknetError::InvalidTransactionNonce => output.push(Felt252::from(9)),
SNCastStarknetError::InsufficientMaxFee => output.push(Felt252::from(10)),
SNCastStarknetError::InsufficientAccountBalance => output.push(Felt252::from(11)),
SNCastStarknetError::ValidationFailure(err) => {
output.push(Felt252::from(12));
err.as_str().serialize_as_felt252(output);
err.as_str().serialize_into_felt252_vec(output);
}
SNCastStarknetError::CompilationFailed => output.push(Felt252::from(13)),
SNCastStarknetError::ContractClassSizeIsTooLarge => output.push(Felt252::from(14)),
Expand All @@ -213,7 +215,7 @@ impl SerializeAsFelt252Vec for SNCastStarknetError {
SNCastStarknetError::UnsupportedContractClassVersion => output.push(Felt252::from(19)),
SNCastStarknetError::UnexpectedError(err) => {
output.push(Felt252::from(20));
err.to_string().as_str().serialize_as_felt252(output);
err.to_string().as_str().serialize_into_felt252_vec(output);
}
}
}
Expand Down
8 changes: 4 additions & 4 deletions crates/sncast/src/response/structs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ pub struct CallResponse {
impl CommandResponse for CallResponse {}

impl SerializeAsFelt252Vec for CallResponse {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
output.push(Felt252::from(self.response.len()));
output.extend(self.response.iter().map(|el| Felt252::from_(el.0)));
}
Expand All @@ -59,7 +59,7 @@ pub struct InvokeResponse {
impl CommandResponse for InvokeResponse {}

impl SerializeAsFelt252Vec for InvokeResponse {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
output.push(Felt252::from_(self.transaction_hash.0));
}
}
Expand All @@ -72,7 +72,7 @@ pub struct DeployResponse {
impl CommandResponse for DeployResponse {}

impl SerializeAsFelt252Vec for DeployResponse {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
output.extend([
Felt252::from_(self.contract_address.0),
Felt252::from_(self.transaction_hash.0),
Expand All @@ -88,7 +88,7 @@ pub struct DeclareResponse {
impl CommandResponse for DeclareResponse {}

impl SerializeAsFelt252Vec for DeclareResponse {
fn serialize_as_felt252(self, output: &mut Vec<Felt252>) {
fn serialize_into_felt252_vec(self, output: &mut Vec<Felt252>) {
output.extend([
Felt252::from_(self.class_hash.0),
Felt252::from_(self.transaction_hash.0),
Expand Down

0 comments on commit 48982b4

Please sign in to comment.