From c3094016f636e74cac15150190090fafc95f8dac Mon Sep 17 00:00:00 2001 From: Nasr Date: Wed, 27 Dec 2023 17:06:35 -0500 Subject: [PATCH 1/3] feat: account execute returns txn hash and added wait for txn binding --- Cargo.lock | 2 +- Cargo.toml | 2 +- dojo.h | 8 +++++--- src/lib.rs | 21 ++++++++++++++++++++- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8fbc6ad..1222283 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4625,7 +4625,7 @@ dependencies = [ [[package]] name = "torii-c" -version = "0.0.7" +version = "0.0.9" dependencies = [ "anyhow", "cbindgen", diff --git a/Cargo.toml b/Cargo.toml index 978c7de..ac4936a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] edition = "2021" name = "torii-c" -version = "0.0.8" +version = "0.0.9" [lib] crate-type = ["cdylib"] diff --git a/dojo.h b/dojo.h index af61f26..d1b3e9f 100644 --- a/dojo.h +++ b/dojo.h @@ -569,9 +569,11 @@ struct FieldElement account_chain_id(struct Account *account); void account_set_block_id(struct Account *account, struct BlockId block_id); -struct Result_bool account_execute_raw(struct Account *account, - const struct Call *calldata, - uintptr_t calldata_len); +struct Result_FieldElement account_execute_raw(struct Account *account, + const struct Call *calldata, + uintptr_t calldata_len); + +struct Result_bool wait_for_transaction(struct CJsonRpcClient *rpc, struct FieldElement txn_hash); struct FieldElement hash_get_contract_address(struct FieldElement class_hash, struct FieldElement salt, diff --git a/src/lib.rs b/src/lib.rs index 84d6004..470162a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -468,7 +468,7 @@ pub unsafe extern "C" fn account_execute_raw( account: *mut Account<'static>, calldata: *const Call, calldata_len: usize, -) -> Result { +) -> Result { let calldata = unsafe { std::slice::from_raw_parts(calldata, calldata_len).to_vec() }; let calldata = calldata .into_iter() @@ -480,6 +480,25 @@ pub unsafe extern "C" fn account_execute_raw( .unwrap() .block_on(call.send()); + match result { + Ok(res) => Result::Ok((&res.transaction_hash).into()), + Err(e) => Result::Err(Error { + message: CString::new(e.to_string()).unwrap().into_raw(), + }), + } +} + +#[no_mangle] +#[allow(clippy::missing_safety_doc)] +pub unsafe extern "C" fn wait_for_transaction( + rpc: *mut CJsonRpcClient, + txn_hash: types::FieldElement, +) -> Result { + let txn_hash = (&txn_hash).into(); + let result = tokio::runtime::Runtime::new() + .unwrap() + .block_on(watch_tx(&(*rpc).0, txn_hash)); + match result { Ok(_) => Result::Ok(true), Err(e) => Result::Err(Error { From 8b681698cfb4e9dd97f1636ca0cf313e40a95e37 Mon Sep 17 00:00:00 2001 From: Nasr Date: Thu, 28 Dec 2023 10:51:05 -0500 Subject: [PATCH 2/3] feat: update torii client to latest version --- Cargo.lock | 369 ++++++++++++++++++++++++++++--------------------- Cargo.toml | 17 ++- example/main.c | 8 +- src/lib.rs | 2 +- 4 files changed, 226 insertions(+), 170 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1222283..4608ef1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,9 +73,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" +checksum = "c9d19de80eff169429ac1e9f48fffb163916b448a44e8e046186232046d9e1f9" [[package]] name = "ark-ff" @@ -180,7 +180,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" dependencies = [ "concurrent-queue", - "event-listener 4.0.0", + "event-listener 4.0.1", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -269,7 +269,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.1", "event-listener-strategy", "pin-project-lite", ] @@ -319,7 +319,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -330,13 +330,13 @@ checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -580,6 +580,53 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +[[package]] +name = "cainome" +version = "0.1.5" +source = "git+https://github.com/cartridge-gg/cainome?rev=950e487#950e4871b735a1b4a7ba7e7561b9a15f5a43dbed" +dependencies = [ + "cainome-cairo-serde", + "cainome-parser", + "cainome-rs", +] + +[[package]] +name = "cainome-cairo-serde" +version = "0.1.0" +source = "git+https://github.com/cartridge-gg/cainome?rev=950e487#950e4871b735a1b4a7ba7e7561b9a15f5a43dbed" +dependencies = [ + "starknet", + "thiserror", +] + +[[package]] +name = "cainome-parser" +version = "0.1.0" +source = "git+https://github.com/cartridge-gg/cainome?rev=950e487#950e4871b735a1b4a7ba7e7561b9a15f5a43dbed" +dependencies = [ + "quote", + "serde_json", + "starknet", + "syn 2.0.43", + "thiserror", +] + +[[package]] +name = "cainome-rs" +version = "0.1.0" +source = "git+https://github.com/cartridge-gg/cainome?rev=950e487#950e4871b735a1b4a7ba7e7561b9a15f5a43dbed" +dependencies = [ + "anyhow", + "cainome-cairo-serde", + "cainome-parser", + "proc-macro2", + "quote", + "serde_json", + "starknet", + "syn 2.0.43", + "thiserror", +] + [[package]] name = "cairo-felt" version = "0.8.7" @@ -595,9 +642,9 @@ dependencies = [ [[package]] name = "cairo-lang-casm" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850dc1d46d5bfb64c5ed0bc7ccd4821e4d4c36a8f2678a897df7c2bfaefe6fc" +checksum = "0dab99b420650d41fee19ebaecddae01b5f74363f41dd281e264eb67bb3e8281" dependencies = [ "cairo-lang-utils", "indoc", @@ -612,9 +659,9 @@ dependencies = [ [[package]] name = "cairo-lang-compiler" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e6360b6735eeff503c6103520fef7410ca2c5a5ae90584822baa326607721ac" +checksum = "2c4ba7f4b3f90ebc6c8edb31cfd51d4891f292f12b5c9374b8d1a73cc8fed0ad" dependencies = [ "anyhow", "cairo-lang-defs", @@ -635,18 +682,18 @@ dependencies = [ [[package]] name = "cairo-lang-debug" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c190deb7ba826a462fa7339e482d5e2df78d329435f4988b15f7752e033b5ac" +checksum = "46fd4a5f20c9d629d47dcb4c909575446a546cc648da3dc080b062666c82a1a3" dependencies = [ "cairo-lang-utils", ] [[package]] name = "cairo-lang-defs" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42a34d9952b04fa0c96fafd08d170097fb5075ff81826a034ef9faa70556de8" +checksum = "5b621751cbdb1fc2adf1101d5e09d5938be5409c4e0d26b9b70764c2d5f55531" dependencies = [ "cairo-lang-debug", "cairo-lang-diagnostics", @@ -661,9 +708,9 @@ dependencies = [ [[package]] name = "cairo-lang-diagnostics" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c399832f9fc462cd51687a415c391ead4b99ee48c54cad5c8e1d5004ff6520c7" +checksum = "2cc471db5ba1430d9e9351b6a98f5ee6d46cac02ffc05762b1036f6139a2ed2b" dependencies = [ "cairo-lang-debug", "cairo-lang-filesystem", @@ -673,9 +720,9 @@ dependencies = [ [[package]] name = "cairo-lang-eq-solver" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d73846e0dec2a204bc429f7421020fc6a98ae48f20f0cfa2aa1091b78221d6ce" +checksum = "8a4b62e4f164f6972564da9473a44bf9abb3fb49c0e53bb9be5b0d35317b15fc" dependencies = [ "cairo-lang-utils", "good_lp", @@ -683,9 +730,9 @@ dependencies = [ [[package]] name = "cairo-lang-filesystem" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f15f4a10963dcd5baa0386632c5ce4136d54f93d6c71cc16a49cbcbf774ee2" +checksum = "1e94a86a8040ff6abf01a995a114561340de8eee7157dd626dffefcad8d1f865" dependencies = [ "cairo-lang-debug", "cairo-lang-utils", @@ -697,9 +744,9 @@ dependencies = [ [[package]] name = "cairo-lang-lowering" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5547bb3e13841a840b4faad3eb7fe7c39b525220f708973b71b1b9077747758b" +checksum = "f70d9ad78e5f68afebfc339aac8d05c98dc2ba03cbfbc8c71d2ecc21d0879e7c" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", @@ -723,9 +770,9 @@ dependencies = [ [[package]] name = "cairo-lang-parser" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197445f8db467e28dbeddc573047dd8f2a0ef3fcc3d1c32575162d4cf79988df" +checksum = "60422627250900757d093fae4e5afc26cedaf1c8c592077a095f195914349bd6" dependencies = [ "cairo-lang-diagnostics", "cairo-lang-filesystem", @@ -743,9 +790,9 @@ dependencies = [ [[package]] name = "cairo-lang-plugins" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3ea747577bd93e4791bdd57744dfddbc4b99ce056fffb5fd41340759642f91" +checksum = "156f4cb17b2cd534166f7456f35107d23320d90d2194010f4f23bbbf809bbba8" dependencies = [ "cairo-lang-defs", "cairo-lang-diagnostics", @@ -762,20 +809,20 @@ dependencies = [ [[package]] name = "cairo-lang-proc-macros" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8cc59c40344194d2cc825071080d887826dcf0df37de71e58fc8aa4c344bb84" +checksum = "3eaf161379bdeb2c0623fa1968011ef0b3705e5cebd5f32ef001f93c5a2435a9" dependencies = [ "cairo-lang-debug", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] name = "cairo-lang-project" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312b65dec1d0b8e1b420d7b464c0c771f18301177376432681c05c30f5ef9604" +checksum = "63f3bdd22ddc32948bd910778a9774c8a591ea68aea61999184efd49fed889ac" dependencies = [ "cairo-lang-filesystem", "cairo-lang-utils", @@ -787,9 +834,9 @@ dependencies = [ [[package]] name = "cairo-lang-semantic" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e18c57cd10bcf69b427b901ce058268d21f65f5199b33e36b72b02ba7ceff74" +checksum = "e79b39de6458ce0b911fc41fdc7575b66f3bfc1e3c8690901a2efe8bb1404186" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", @@ -812,9 +859,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84cf029a71e0176992cc401f7f182dc92e14a51662b1576240a7ecc79efac6bc" +checksum = "5d670b3dc9862b05f7b836b1e7ab063ada41eb9c071fcfca0b13220d50a3aabd" dependencies = [ "anyhow", "cairo-lang-utils", @@ -837,9 +884,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-ap-change" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529ed2d8d14ef4c2d77e45db597425488e194b8ab1d3210742a1c54d78743407" +checksum = "bbea4f6b7b8d892f2367cf064762e8fc9b732c2e2232e21312443ab6dccbfed7" dependencies = [ "cairo-lang-eq-solver", "cairo-lang-sierra", @@ -851,9 +898,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-gas" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0cbe3dd4f663d7df902a2f10cf52990d62f178741fe1494de51f08bb89b7aa6" +checksum = "b59b283e5f09a1c8ce515464b0341f7561acefd8509526a54d1718b3f393c323" dependencies = [ "cairo-lang-eq-solver", "cairo-lang-sierra", @@ -865,9 +912,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-generator" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5bed52b240e1546b08e075493b2df4030dba2199e019d36f52da1423f2c653" +checksum = "283084394140d770fb57085f479c63823807f177ea8d5c30b7ac766ae87b95ce" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", @@ -889,9 +936,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-to-casm" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc16661a7a78f885f6b5a4fdb3c7463d9ee3f6bca83266b4f2b956e65579ec72" +checksum = "02e04b731b7e379074fb0cd54245ff1b9ebfacfc509a86900e817862892d61f7" dependencies = [ "assert_matches", "cairo-felt", @@ -910,9 +957,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-type-size" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3fa025f6bc1c8d4556c9fc4609fb6f27071470ed47eb3bd0b5f9a159e51124" +checksum = "29b706940cffaeece471aee1bbab8b83c7ef24fcf20335e1939a357a873ac731" dependencies = [ "cairo-lang-sierra", "cairo-lang-utils", @@ -920,9 +967,9 @@ dependencies = [ [[package]] name = "cairo-lang-starknet" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5523d9c5b8e7c98afb2907c2cf4821a251d94fc42d37940063a9f2adbea05f" +checksum = "5f908297ebcf542fa80bfb089684a25f6cdf66b2b4679abfc79608f65028c1d6" dependencies = [ "anyhow", "cairo-felt", @@ -957,9 +1004,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8e9b19fa724135353470ee3452605f82edfec17a7dd4e8388d77152ea4fbd2" +checksum = "ca5429b964d498c8f517973eae538113a47b01d93eb597ced58944d5385055a7" dependencies = [ "cairo-lang-debug", "cairo-lang-filesystem", @@ -973,9 +1020,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax-codegen" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a50c3a5dc5d890a523122e40dac59f3a430952cec73fe7312dd266ad865f049" +checksum = "4bd0ae3d3122417e88a9f801529fd65f3a81483c59916c4906ac1a85f84b897c" dependencies = [ "genco", "xshell", @@ -983,9 +1030,9 @@ dependencies = [ [[package]] name = "cairo-lang-utils" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88969fe46417affe9628bd039865693431837807eb981115f02756a35f488489" +checksum = "3465bc7d80387e26fe4dbfb76c744da8d4d8d324ed2c9f71e5f92bc295153d06" dependencies = [ "indexmap 2.1.0", "itertools 0.11.0", @@ -1208,21 +1255,20 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.16" +version = "0.9.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset", ] [[package]] name = "crossbeam-queue" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9bcf5bdbfdd6030fb4a1c497b5d5fc5921aa2f60d359a17e249c0e6df3de153" +checksum = "adc6598521bb5a83d491e8c1fe51db7296019d2ca3cb93cc6c2a20369a4d78a2" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1230,9 +1276,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ "cfg-if", ] @@ -1306,7 +1352,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -1317,7 +1363,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -1393,8 +1439,8 @@ dependencies = [ [[package]] name = "dojo-types" -version = "0.4.1" -source = "git+https://github.com/dojoengine/dojo#dc5faa26730ffdcf574d22d3583861fad50abeb9" +version = "0.4.2" +source = "git+https://github.com/dojoengine/dojo?rev=b48657e804864068f7ca3803e41656b51d9a4921#b48657e804864068f7ca3803e41656b51d9a4921" dependencies = [ "crypto-bigint", "hex", @@ -1409,11 +1455,12 @@ dependencies = [ [[package]] name = "dojo-world" -version = "0.4.1" -source = "git+https://github.com/dojoengine/dojo#dc5faa26730ffdcf574d22d3583861fad50abeb9" +version = "0.4.2" +source = "git+https://github.com/dojoengine/dojo?rev=b48657e804864068f7ca3803e41656b51d9a4921#b48657e804864068f7ca3803e41656b51d9a4921" dependencies = [ "anyhow", "async-trait", + "cainome", "cairo-lang-filesystem", "cairo-lang-project", "cairo-lang-starknet", @@ -1555,9 +1602,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "4.0.0" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" dependencies = [ "concurrent-queue", "parking", @@ -1570,7 +1617,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.1", "pin-project-lite", ] @@ -1657,9 +1704,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -1672,9 +1719,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -1682,15 +1729,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -1710,9 +1757,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -1744,32 +1791,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -1802,7 +1849,7 @@ checksum = "d4cf186fea4af17825116f72932fe52cce9a13bae39ff63b4dc0cfdb3fb4bde1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -2416,15 +2463,6 @@ version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - [[package]] name = "mime" version = "0.3.17" @@ -2604,9 +2642,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -2787,7 +2825,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -2836,9 +2874,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" [[package]] name = "polling" @@ -2905,7 +2943,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -2956,9 +2994,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" dependencies = [ "unicode-ident", ] @@ -3022,7 +3060,7 @@ dependencies = [ "prost 0.12.3", "prost-types 0.12.3", "regex", - "syn 2.0.41", + "syn 2.0.43", "tempfile", "which", ] @@ -3050,7 +3088,7 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -3208,15 +3246,15 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "relative-path" -version = "1.9.0" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca" +checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc" [[package]] name = "reqwest" -version = "0.11.22" +version = "0.11.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046cd98826c46c2ac8ddecae268eb5c2e58628688a5fc7a2643704a73faba95b" +checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" dependencies = [ "base64 0.21.5", "bytes", @@ -3509,6 +3547,17 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-wasm-bindgen" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b713f70513ae1f8d92665bbbbda5c295c2cf1da5542881ae5eefe20c9af132" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + [[package]] name = "serde_derive" version = "1.0.193" @@ -3517,7 +3566,7 @@ checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -3555,9 +3604,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" dependencies = [ "serde", ] @@ -3599,7 +3648,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -4016,9 +4065,9 @@ dependencies = [ [[package]] name = "starknet-core" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff50e281d4fdb97988a3d5c7b7cae22b9d67bb2ef9be2cfafc17a1e35542cb53" +checksum = "1da8287d38c2c1253c95c915c8d28d4ef4722f8c200e264133e1ba60bdadef7c" dependencies = [ "base64 0.21.5", "flate2", @@ -4060,7 +4109,7 @@ checksum = "af6527b845423542c8a16e060ea1bc43f67229848e7cd4c4d80be994a84220ce" dependencies = [ "starknet-curve", "starknet-ff", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -4094,7 +4143,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "840be1a7eb5735863eee47d3a3f26df45b9be2c519e8da294e74b4d0524d77d1" dependencies = [ "starknet-core", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -4185,7 +4234,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -4207,9 +4256,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.41" +version = "2.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +checksum = "ee659fb5f3d355364e1f3e5bc10fb82068efbf824a1e9d1c9504244a6469ad53" dependencies = [ "proc-macro2", "quote", @@ -4251,15 +4300,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.8.1" +version = "3.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" dependencies = [ "cfg-if", "fastrand 2.0.1", "redox_syscall 0.4.1", "rustix 0.38.28", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4290,29 +4339,29 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "83a48fd946b02c0a526b2e9481c8e2a17755e47039164a86c4070446e3a4614d" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "e7fbe9b594d6568a6a1443250a7e67d80b74e1e96f6d1715e1e21cc1888291d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] name = "time" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" dependencies = [ "deranged", "itoa", @@ -4330,9 +4379,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" dependencies = [ "time-core", ] @@ -4363,9 +4412,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.0" +version = "1.35.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d45b238a16291a4e1584e61820b8ae57d696cc5015c459c229ccc6990cc1c" +checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" dependencies = [ "backtrace", "bytes", @@ -4398,7 +4447,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -4563,7 +4612,7 @@ dependencies = [ "proc-macro2", "prost-build 0.12.3", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -4631,22 +4680,25 @@ dependencies = [ "cbindgen", "csbindgen", "dojo-types", - "futures-channel", - "futures-util", "parking_lot 0.12.1", + "serde", + "serde-wasm-bindgen", "starknet", "starknet-crypto", "tokio", + "tokio-stream", "tonic 0.10.2", "torii-client", "torii-grpc", "url", + "wasm-bindgen", + "wasm-bindgen-futures", ] [[package]] name = "torii-client" -version = "0.4.1" -source = "git+https://github.com/dojoengine/dojo#dc5faa26730ffdcf574d22d3583861fad50abeb9" +version = "0.4.2" +source = "git+https://github.com/dojoengine/dojo?rev=b48657e804864068f7ca3803e41656b51d9a4921#b48657e804864068f7ca3803e41656b51d9a4921" dependencies = [ "async-trait", "crypto-bigint", @@ -4671,8 +4723,8 @@ dependencies = [ [[package]] name = "torii-grpc" -version = "0.4.1" -source = "git+https://github.com/dojoengine/dojo#dc5faa26730ffdcf574d22d3583861fad50abeb9" +version = "0.4.2" +source = "git+https://github.com/dojoengine/dojo?rev=b48657e804864068f7ca3803e41656b51d9a4921#b48657e804864068f7ca3803e41656b51d9a4921" dependencies = [ "bytes", "crypto-bigint", @@ -4691,6 +4743,7 @@ dependencies = [ "sqlx", "starknet", "starknet-crypto", + "strum", "strum_macros", "thiserror", "tokio", @@ -4777,7 +4830,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -4960,7 +5013,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", "wasm-bindgen-shared", ] @@ -4994,7 +5047,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5226,9 +5279,9 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.28" +version = "0.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" +checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" dependencies = [ "memchr", ] @@ -5269,22 +5322,22 @@ checksum = "7e2c411759b501fb9501aac2b1b2d287a6e93e5bdcf13c25306b23e1b716dd0e" [[package]] name = "zerocopy" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.31" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] [[package]] @@ -5304,5 +5357,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.41", + "syn 2.0.43", ] diff --git a/Cargo.toml b/Cargo.toml index ac4936a..313db2e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,24 +4,27 @@ name = "torii-c" version = "0.0.9" [lib] -crate-type = ["cdylib"] +crate-type = ["cdylib", "rlib"] [dependencies] -dojo-types = { git = "https://github.com/dojoengine/dojo" } -torii-client = { git = "https://github.com/dojoengine/dojo" } +dojo-types = { git = "https://github.com/dojoengine/dojo", rev = "b48657e804864068f7ca3803e41656b51d9a4921" } +torii-client = { git = "https://github.com/dojoengine/dojo", rev = "b48657e804864068f7ca3803e41656b51d9a4921"} torii-grpc = { git = "https://github.com/dojoengine/dojo", features = [ "client", -] } +], rev = "b48657e804864068f7ca3803e41656b51d9a4921" } parking_lot = "0.12.1" starknet = "0.8.0" starknet-crypto = "0.6.0" -tokio = { version = "1.32.0", features = [ "full" ] } +tokio = { version = "1.32.0", default-features = false, features = ["rt"] } url = "2.5.0" tonic = "0.10.2" -futures-util = "0.3.29" -futures-channel = "0.3.29" anyhow = "1.0.76" +tokio-stream = "0.1.14" +serde = { version = "1.0.193", features = ["derive"] } +serde-wasm-bindgen = "0.6.0" +wasm-bindgen = "=0.2.89" +wasm-bindgen-futures = "0.4.37" [build-dependencies] cbindgen = "0.24.0" diff --git a/example/main.c b/example/main.c index e5b164f..83dff68 100644 --- a/example/main.c +++ b/example/main.c @@ -217,21 +217,21 @@ int main() move.calldata.data[0] = moveLeft.ok; - Result_bool resSpawn = account_execute_raw(burner, &spawn, 1); + Result_FieldElement resSpawn = account_execute_raw(master_account, &spawn, 1); if (resSpawn.tag == Err_bool) { printf("Failed to execute call: %s\n", resSpawn.err.message); return 1; } + wait_for_transaction(provider, resSpawn.ok); - sleep(5); - - Result_bool resMove = account_execute_raw(burner, &move, 1); + Result_FieldElement resMove = account_execute_raw(master_account, &move, 1); if (resMove.tag == Err_bool) { printf("Failed to execute call: %s\n", resMove.err.message); return 1; } + wait_for_transaction(provider, resMove.ok); // while (1) // { diff --git a/src/lib.rs b/src/lib.rs index 470162a..c123c6c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,7 +2,7 @@ mod constants; mod types; mod utils; -use futures_util::StreamExt; +use tokio_stream::StreamExt; use starknet::accounts::{Account as StarknetAccount, ExecutionEncoding, SingleOwnerAccount}; use starknet::core::utils::{ cairo_short_string_to_felt, get_contract_address, get_selector_from_name, From c1843e2d10749811513b7a98496890c4028ac50c Mon Sep 17 00:00:00 2001 From: Nasr Date: Thu, 28 Dec 2023 12:01:30 -0500 Subject: [PATCH 3/3] chore: fmt --- example/main.c | 6 ++---- src/lib.rs | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/example/main.c b/example/main.c index 83dff68..c7c9862 100644 --- a/example/main.c +++ b/example/main.c @@ -162,7 +162,6 @@ int main() } } - // Result_bool resStartSub = client_start_subscription(client); // if (resStartSub.tag == Err_bool) // { @@ -205,8 +204,7 @@ int main() .calldata = { .data = malloc(sizeof(FieldElement)), .data_len = 1, - } - }; + }}; Result_FieldElement moveLeft = felt_from_hex_be("0x01"); if (moveLeft.tag == Err_FieldElement) @@ -235,7 +233,7 @@ int main() // while (1) // { - + // } // Result_bool resRemoveEntities = client_remove_models_to_sync(client, entities, 1); diff --git a/src/lib.rs b/src/lib.rs index c123c6c..f2d07b7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,7 +2,6 @@ mod constants; mod types; mod utils; -use tokio_stream::StreamExt; use starknet::accounts::{Account as StarknetAccount, ExecutionEncoding, SingleOwnerAccount}; use starknet::core::utils::{ cairo_short_string_to_felt, get_contract_address, get_selector_from_name, @@ -15,6 +14,7 @@ use std::ffi::{c_void, CStr, CString}; use std::ops::Deref; use std::os::raw::c_char; use std::thread; +use tokio_stream::StreamExt; use torii_client::client::Client as TClient; use types::{ Account, BlockId, CArray, CJsonRpcClient, COption, Call, Entity, Error, KeysClause, Model,