From f7707b2eba79a5f8c35725176e6862c937490fb4 Mon Sep 17 00:00:00 2001 From: kwiss Date: Fri, 6 Dec 2024 15:55:08 +0100 Subject: [PATCH] fix: update hooker & unused import --- bin/solis/src/hooker.rs | 62 +++++++++------------------ crates/katana/rpc/rpc/src/starknet.rs | 2 +- 2 files changed, 21 insertions(+), 43 deletions(-) diff --git a/bin/solis/src/hooker.rs b/bin/solis/src/hooker.rs index e94ead3c30..a967b65139 100644 --- a/bin/solis/src/hooker.rs +++ b/bin/solis/src/hooker.rs @@ -12,24 +12,22 @@ use katana_primitives::chain::ChainId; use katana_primitives::contract::ContractAddress; use katana_primitives::transaction::{ExecutableTx, ExecutableTxWithHash, L1HandlerTx}; use katana_primitives::utils::transaction::compute_l1_message_hash; +use serde_json::json; +use serde_json::Value; use starknet::accounts::Call; use starknet::core::types::BroadcastedInvokeTransaction; use starknet::core::types::FieldElement; use starknet::macros::selector; use starknet::providers::Provider; -use std::sync::Arc; use std::fs::File; use std::fs::OpenOptions; -use std::io::Write; use std::io::Read; -use serde_json::Value; +use std::io::Write; use std::path::Path; -use serde_json::json; - +use std::sync::Arc; const FILE_PATH_ADDRESSES: &str = "addresses.json"; - use crate::contracts::orderbook::{OrderV1, RouteType}; use crate::contracts::starknet_utils::StarknetUtilsReader; use crate::CHAIN_ID_SOLIS; @@ -92,10 +90,7 @@ impl ); // check the current owner of the token. - let owner = sn_utils_reader_nft_address - .ownerOf(&ownership_verifier.token_id) - .call() - .await; + let owner = sn_utils_reader_nft_address.ownerOf(&ownership_verifier.token_id).call().await; if let Ok(owner_address) = owner { if owner_address != ownership_verifier.current_owner { @@ -145,10 +140,8 @@ impl } // check the balance - let balance = sn_utils_reader_erc20_address - .balanceOf(&balance_verifier.offerer) - .call() - .await; + let balance = + sn_utils_reader_erc20_address.balanceOf(&balance_verifier.offerer).call().await; if let Ok(balance) = balance { if balance < balance_verifier.start_amount { tracing::trace!( @@ -179,10 +172,7 @@ impl // ERC721 to ERC20 if order.route == RouteType::Erc721ToErc20 { let token_id = order.token_id.clone().unwrap(); - let n_token_id = U256 { - low: token_id.low, - high: token_id.high, - }; + let n_token_id = U256 { low: token_id.low, high: token_id.high }; let verifier = OwnershipVerifier { token_address: ContractAddress(order.token_address.into()), @@ -220,7 +210,8 @@ impl impl SolisHooker { - fn get_addresses_from_file() -> Result<(FieldElement, FieldElement), Box> { + fn get_addresses_from_file() -> Result<(FieldElement, FieldElement), Box> + { let mut file = match File::open(FILE_PATH_ADDRESSES) { Ok(file) => file, Err(_) => return Err("File not found".into()), @@ -264,7 +255,9 @@ impl orderbook_address: FieldElement, sn_executor_address: FieldElement, ) -> Self { - let (orderbook_address, sn_executor_address) = if orderbook_address == FieldElement::ZERO && sn_executor_address == FieldElement::ZERO { + let (orderbook_address, sn_executor_address) = if orderbook_address == FieldElement::ZERO + && sn_executor_address == FieldElement::ZERO + { match Self::get_addresses_from_file() { Ok((orderbook, executor)) => (orderbook, executor), Err(e) => { @@ -276,12 +269,7 @@ impl (orderbook_address, sn_executor_address) }; - Self { - orderbook_address, - sn_utils_reader, - sn_executor_address, - sequencer: None, - } + Self { orderbook_address, sn_utils_reader, sn_executor_address, sequencer: None } } /// Retrieves a reference to the sequencer. @@ -289,9 +277,7 @@ impl pub fn sequencer_ref(&self) -> &Arc> { // The expect is used here as it must always be set by Katana core. // If not set, the merge on Katana may be revised. - self.sequencer - .as_ref() - .expect("Sequencer must be set to get a reference to it") + self.sequencer.as_ref().expect("Sequencer must be set to get a reference to it") } /// Adds a `L1HandlerTransaction` to the transaction pool that is directed to the @@ -369,10 +355,7 @@ impl self.sn_executor_address = addresses.executor_starknet; let path = Path::new(FILE_PATH_ADDRESSES); - let file = OpenOptions::new() - .write(true) - .create(true) - .open(&path); + let file = OpenOptions::new().write(true).create(true).open(&path); match file { Ok(mut file) => { @@ -418,19 +401,13 @@ impl &self, transaction: BroadcastedInvokeTransaction, ) -> bool { - info!( - "HOOKER: verify_invoke_tx_before_pool called with transaction: {:?}", - transaction - ); + info!("HOOKER: verify_invoke_tx_before_pool called with transaction: {:?}", transaction); let calldata = match transaction { BroadcastedInvokeTransaction::V1(v1_transaction) => v1_transaction.calldata, BroadcastedInvokeTransaction::V3(v3_transaction) => v3_transaction.calldata, }; - info!( - "HOOKER: cairo_deserialize called with transaction: {:?}", - calldata - ); + info!("HOOKER: cairo_deserialize called with transaction: {:?}", calldata); let calls = match Vec::::cairo_deserialize(&calldata, 0) { Ok(calls) => calls, @@ -517,7 +494,7 @@ impl async fn on_starknet_tx_failed(&self, call: Call) { println!("Starknet tx failed: {:?}", call); - println!("orderhash: {:?}:", execution_info.order_hash) + let execution_info = match ExecutionInfo::cairo_deserialize(&call.calldata, 0) { Ok(execution_info) => execution_info, Err(e) => { @@ -526,6 +503,7 @@ impl } }; + println!("orderhash: {:?}:", execution_info.order_hash); // rollback the status let status = CancelStatus::CancelledUser; self.add_l1_handler_transaction_for_orderbook( diff --git a/crates/katana/rpc/rpc/src/starknet.rs b/crates/katana/rpc/rpc/src/starknet.rs index a0fde82e7e..03695ffbbf 100644 --- a/crates/katana/rpc/rpc/src/starknet.rs +++ b/crates/katana/rpc/rpc/src/starknet.rs @@ -36,7 +36,7 @@ use katana_rpc_types::{ use katana_rpc_types_builder::ReceiptBuilder; use katana_tasks::{BlockingTaskPool, TokioTaskSpawner}; use starknet::core::types::{ - BlockTag, BroadcastedInvokeTransaction, DeclareTransactionTrace, DeployAccountTransactionTrace, ExecuteInvocation, + BlockTag, DeclareTransactionTrace, DeployAccountTransactionTrace, ExecuteInvocation, InvokeTransactionTrace, L1HandlerTransactionTrace, RevertedInvocation, SimulatedTransaction, TransactionExecutionStatus, TransactionStatus, TransactionTrace, };