diff --git a/Cargo.lock b/Cargo.lock index 76ff52c..0309e45 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1634,7 +1634,6 @@ dependencies = [ "torii-grpc-client", "torii-libp2p-types", "torii-proto", - "torii-typed-data", "tower-http 0.6.2", "tsify-next", "url", @@ -5730,7 +5729,7 @@ checksum = "6f0c9ac3809cc7630784e8c8565fa3013af819d83c97aa2720d566016d439011" dependencies = [ "starknet-accounts 0.11.0", "starknet-contract 0.11.0", - "starknet-core 0.12.2", + "starknet-core 0.12.3", "starknet-crypto", "starknet-macros", "starknet-providers 0.12.1", @@ -5745,7 +5744,7 @@ checksum = "bc9b221c99a1ea1d65fb130e5b0dbaa6d362698430232902ebeb2a898a1ab531" dependencies = [ "starknet-accounts 0.12.0", "starknet-contract 0.12.0", - "starknet-core 0.12.2", + "starknet-core 0.12.3", "starknet-core-derive", "starknet-crypto", "starknet-macros", @@ -5776,7 +5775,7 @@ checksum = "0ee27ded58ade61da410fccafd57ed5429b0e79a9d62a4ae8b65818cb9d6f400" dependencies = [ "async-trait", "auto_impl", - "starknet-core 0.12.2", + "starknet-core 0.12.3", "starknet-crypto", "starknet-providers 0.12.1", "starknet-signers 0.10.2", @@ -5791,7 +5790,7 @@ checksum = "b3fc4364f5684e4a5dcb100847a9ea023deae3815f45526721a6fa94ab595651" dependencies = [ "async-trait", "auto_impl", - "starknet-core 0.12.2", + "starknet-core 0.12.3", "starknet-crypto", "starknet-providers 0.12.1", "starknet-signers 0.10.2", @@ -5823,7 +5822,7 @@ dependencies = [ "serde_json", "serde_with 3.12.0", "starknet-accounts 0.11.0", - "starknet-core 0.12.2", + "starknet-core 0.12.3", "starknet-providers 0.12.1", "thiserror 1.0.69", ] @@ -5838,7 +5837,7 @@ dependencies = [ "serde_json", "serde_with 3.12.0", "starknet-accounts 0.12.0", - "starknet-core 0.12.2", + "starknet-core 0.12.3", "starknet-providers 0.12.1", "thiserror 1.0.69", ] @@ -5864,9 +5863,9 @@ dependencies = [ [[package]] name = "starknet-core" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab44b2157b7f4697d58375cc8b8dbac8dfb6be79f13fd80c9f59634d2ac972c7" +checksum = "977ce5d61089de1f4e425ad033162154a0da2cf000f0ed100484ebcbc54b6ff4" dependencies = [ "base64 0.21.7", "crypto-bigint", @@ -5994,7 +5993,7 @@ dependencies = [ "serde", "serde_json", "serde_with 3.12.0", - "starknet-core 0.12.2", + "starknet-core 0.12.3", "thiserror 1.0.69", "url", ] @@ -6028,7 +6027,7 @@ dependencies = [ "eth-keystore", "getrandom 0.2.16", "rand 0.8.5", - "starknet-core 0.12.2", + "starknet-core 0.12.3", "starknet-crypto", "thiserror 1.0.69", ] @@ -6648,8 +6647,8 @@ dependencies = [ [[package]] name = "torii-client" -version = "1.5.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=3ae9b23#3ae9b231b17fd22c211317c242555b31b5322c81" +version = "1.5.5-preview.3" +source = "git+https://github.com/dojoengine/torii?rev=9a3f85b#9a3f85b881ab36823bbff94cf1f7c6ac4ed09a74" dependencies = [ "async-trait", "crypto-bigint", @@ -6674,8 +6673,8 @@ dependencies = [ [[package]] name = "torii-grpc-client" -version = "1.5.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=3ae9b23#3ae9b231b17fd22c211317c242555b31b5322c81" +version = "1.5.5-preview.3" +source = "git+https://github.com/dojoengine/torii?rev=9a3f85b#9a3f85b881ab36823bbff94cf1f7c6ac4ed09a74" dependencies = [ "crypto-bigint", "dojo-types", @@ -6700,8 +6699,8 @@ dependencies = [ [[package]] name = "torii-libp2p-client" -version = "1.5.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=3ae9b23#3ae9b231b17fd22c211317c242555b31b5322c81" +version = "1.5.5-preview.3" +source = "git+https://github.com/dojoengine/torii?rev=9a3f85b#9a3f85b881ab36823bbff94cf1f7c6ac4ed09a74" dependencies = [ "anyhow", "futures", @@ -6716,25 +6715,23 @@ dependencies = [ "starknet 0.12.0", "thiserror 1.0.69", "torii-libp2p-types", - "torii-typed-data", "tracing", "web-sys", ] [[package]] name = "torii-libp2p-types" -version = "1.5.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=3ae9b23#3ae9b231b17fd22c211317c242555b31b5322c81" +version = "1.5.5-preview.3" +source = "git+https://github.com/dojoengine/torii?rev=9a3f85b#9a3f85b881ab36823bbff94cf1f7c6ac4ed09a74" dependencies = [ "serde", "starknet 0.12.0", - "torii-typed-data", ] [[package]] name = "torii-proto" -version = "1.5.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=3ae9b23#3ae9b231b17fd22c211317c242555b31b5322c81" +version = "1.5.5-preview.3" +source = "git+https://github.com/dojoengine/torii?rev=9a3f85b#9a3f85b881ab36823bbff94cf1f7c6ac4ed09a74" dependencies = [ "crypto-bigint", "dojo-types", @@ -6753,22 +6750,6 @@ dependencies = [ "tonic-build 0.12.3", ] -[[package]] -name = "torii-typed-data" -version = "1.5.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=3ae9b23#3ae9b231b17fd22c211317c242555b31b5322c81" -dependencies = [ - "cainome 0.5.1", - "crypto-bigint", - "dojo-types", - "indexmap 2.9.0", - "serde", - "serde_json", - "starknet 0.12.0", - "starknet-crypto", - "thiserror 1.0.69", -] - [[package]] name = "tower" version = "0.4.13" diff --git a/Cargo.toml b/Cargo.toml index b25b5eb..1f1c0d3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,11 +9,10 @@ crate-type = ["cdylib", "rlib", "staticlib"] [dependencies] dojo-world = { git = "https://github.com/dojoengine/dojo", rev = "4145801" } dojo-types = { git = "https://github.com/dojoengine/dojo", rev = "4145801" } -torii-proto = { git = "https://github.com/dojoengine/torii", rev = "3ae9b23" } -torii-client = { git = "https://github.com/dojoengine/torii", rev = "3ae9b23" } -torii-grpc-client = { git = "https://github.com/dojoengine/torii", rev = "3ae9b23" } -torii-typed-data = { git = "https://github.com/dojoengine/torii", rev = "3ae9b23" } -torii-libp2p-types = { git = "https://github.com/dojoengine/torii", rev = "3ae9b23" } +torii-proto = { git = "https://github.com/dojoengine/torii", rev = "9a3f85b" } +torii-client = { git = "https://github.com/dojoengine/torii", rev = "9a3f85b" } +torii-grpc-client = { git = "https://github.com/dojoengine/torii", rev = "9a3f85b" } +torii-libp2p-types = { git = "https://github.com/dojoengine/torii", rev = "9a3f85b" } starknet = "0.13.0" starknet-crypto = "0.7.2" diff --git a/src/c/mod.rs b/src/c/mod.rs index e90682a..45d75ef 100644 --- a/src/c/mod.rs +++ b/src/c/mod.rs @@ -36,7 +36,7 @@ use lazy_static::lazy_static; use starknet::accounts::{ Account as StarknetAccount, ConnectedAccount, ExecutionEncoding, SingleOwnerAccount, }; -use starknet::core::types::FunctionCall; +use starknet::core::types::{FunctionCall, TypedData}; use starknet::core::utils::get_contract_address; use starknet::providers::jsonrpc::HttpTransport; use starknet::providers::{JsonRpcClient, Provider as _}; @@ -49,7 +49,6 @@ use tokio::time::sleep; use tokio_stream::StreamExt; use torii_client::Client as TClient; use torii_libp2p_types::Message; -use torii_typed_data::TypedData; use tower_http::cors::{AllowOrigin, CorsLayer}; use types::{ BlockId, CArray, COption, Call, Clause, Controller, Entity, Error, Event, IndexerUpdate, @@ -707,10 +706,12 @@ pub unsafe extern "C" fn client_publish_message( signature_felts_len: usize, ) -> Result> { let message = unsafe { CStr::from_ptr(message).to_string_lossy().into_owned() }; - let message = match serde_json::from_str::(message.as_str()) { - Ok(message) => message, - Err(e) => return Result::Err(e.into()), - }; + // Should we validate the message here? + // Not sure if it's worth the added latency + // match serde_json::from_str::(message.as_str()) { + // Ok(_) => {}, + // Err(e) => return Result::Err(e.into()), + // }; let signature = unsafe { std::slice::from_raw_parts(signature_felts, signature_felts_len) }; let signature = signature.iter().map(|f| f.clone().into()).collect::>(); @@ -1652,7 +1653,7 @@ pub unsafe extern "C" fn typed_data_encode( }; let address = address.into(); - let encoded = match typed_data.encode(address) { + let encoded = match typed_data.message_hash(address) { Ok(encoded) => encoded, Err(err) => return Result::Err(err.into()), }; diff --git a/src/wasm/mod.rs b/src/wasm/mod.rs index a332efd..243eddc 100644 --- a/src/wasm/mod.rs +++ b/src/wasm/mod.rs @@ -62,7 +62,7 @@ pub struct SigningKey(starknet::signers::SigningKey); pub struct VerifyingKey(starknet::signers::VerifyingKey); #[wasm_bindgen] -pub struct TypedData(torii_typed_data::TypedData); +pub struct TypedData(starknet::core::types::TypedData); #[wasm_bindgen] pub struct ByteArray(cainome::cairo_serde::ByteArray); @@ -199,7 +199,7 @@ impl VerifyingKey { impl TypedData { #[wasm_bindgen(constructor)] pub fn new(typed_data: &str) -> Result { - let typed_data = serde_json::from_str::(typed_data) + let typed_data = serde_json::from_str::(typed_data) .map_err(|err| JsValue::from(format!("failed to parse typed data: {err}")))?; Ok(TypedData(typed_data)) @@ -219,7 +219,7 @@ impl TypedData { .map_err(|err| JsValue::from(format!("failed to parse address: {err}")))?; self.0 - .encode(address) + .message_hash(address) .map(|felt| format!("{:#x}", felt)) .map_err(|err| JsValue::from(err.to_string())) } @@ -1413,9 +1413,6 @@ impl ToriiClient { #[cfg(feature = "console-error-panic")] console_error_panic_hook::set_once(); - let message = serde_json::from_str(message) - .map_err(|err| JsValue::from(format!("failed to parse message: {err}")))?; - let signature = signature .iter() .map(|s| Felt::from_str(s.as_str())) @@ -1424,7 +1421,7 @@ impl ToriiClient { let message_id = self .inner - .publish_message(Message { message, signature }) + .publish_message(Message { message: message.to_string(), signature }) .await .map_err(|err| JsValue::from(err.to_string()))?;