diff --git a/Cargo.lock b/Cargo.lock index e5eabc5..ab9d108 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5028,8 +5028,8 @@ dependencies = [ [[package]] name = "torii-client" -version = "1.6.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=a89dd8c#a89dd8cffc97a4a6add01096c94e0bc3719e6ed2" +version = "1.6.0-alpha.7" +source = "git+https://github.com/dojoengine/torii?tag=v1.6.0-alpha.7#b986aa1d48e1417bb6b1997f22630c7c587b5704" dependencies = [ "async-trait", "crypto-bigint", @@ -5052,8 +5052,8 @@ dependencies = [ [[package]] name = "torii-grpc-client" -version = "1.6.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=a89dd8c#a89dd8cffc97a4a6add01096c94e0bc3719e6ed2" +version = "1.6.0-alpha.7" +source = "git+https://github.com/dojoengine/torii?tag=v1.6.0-alpha.7#b986aa1d48e1417bb6b1997f22630c7c587b5704" dependencies = [ "crypto-bigint", "dojo-types", @@ -5078,8 +5078,8 @@ dependencies = [ [[package]] name = "torii-proto" -version = "1.6.0-alpha.1" -source = "git+https://github.com/dojoengine/torii?rev=a89dd8c#a89dd8cffc97a4a6add01096c94e0bc3719e6ed2" +version = "1.6.0-alpha.7" +source = "git+https://github.com/dojoengine/torii?tag=v1.6.0-alpha.7#b986aa1d48e1417bb6b1997f22630c7c587b5704" dependencies = [ "chrono", "crypto-bigint", diff --git a/Cargo.toml b/Cargo.toml index 26d14ec..efcd49e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,9 +9,9 @@ crate-type = ["cdylib", "rlib", "staticlib"] [dependencies] dojo-world = { git = "https://github.com/dojoengine/dojo", rev = "054623b" } dojo-types = { git = "https://github.com/dojoengine/dojo", rev = "054623b" } -torii-proto = { git = "https://github.com/dojoengine/torii", rev = "a89dd8c" } -torii-client = { git = "https://github.com/dojoengine/torii", rev = "a89dd8c" } -torii-grpc-client = { git = "https://github.com/dojoengine/torii", rev = "a89dd8c" } +torii-proto = { git = "https://github.com/dojoengine/torii", tag = "v1.6.0-alpha.7" } +torii-client = { git = "https://github.com/dojoengine/torii", tag = "v1.6.0-alpha.7" } +torii-grpc-client = { git = "https://github.com/dojoengine/torii", tag = "v1.6.0-alpha.7" } starknet = "0.14.0" starknet-crypto = "0.7.2" diff --git a/dojo.h b/dojo.h index 6b60413..6563f39 100644 --- a/dojo.h +++ b/dojo.h @@ -638,9 +638,23 @@ typedef struct TokenQuery { struct Pagination pagination; } TokenQuery; +typedef enum COptionU256_Tag { + SomeU256, + NoneU256, +} COptionU256_Tag; + +typedef struct COptionU256 { + COptionU256_Tag tag; + union { + struct { + struct U256 some; + }; + }; +} COptionU256; + typedef struct Token { struct FieldElement contract_address; - struct U256 token_id; + struct COptionU256 token_id; const char *name; const char *symbol; uint8_t decimals; @@ -719,7 +733,7 @@ typedef struct TokenBalance { struct U256 balance; struct FieldElement account_address; struct FieldElement contract_address; - struct U256 token_id; + struct COptionU256 token_id; } TokenBalance; typedef enum Resultc_char_Tag { diff --git a/dojo.hpp b/dojo.hpp index da67a12..6d27012 100644 --- a/dojo.hpp +++ b/dojo.hpp @@ -839,7 +839,7 @@ struct Event { struct Token { FieldElement contract_address; - U256 token_id; + COption token_id; const char *name; const char *symbol; uint8_t decimals; @@ -856,7 +856,7 @@ struct TokenBalance { U256 balance; FieldElement account_address; FieldElement contract_address; - U256 token_id; + COption token_id; }; struct TokenBalanceQuery { diff --git a/dojo.pyx b/dojo.pyx index dbc86ae..e3396cd 100644 --- a/dojo.pyx +++ b/dojo.pyx @@ -413,9 +413,17 @@ cdef extern from *: CArrayU256 token_ids; Pagination pagination; + cdef enum COptionU256_Tag: + SomeU256, + NoneU256, + + cdef struct COptionU256: + COptionU256_Tag tag; + U256 some; + cdef struct Token: FieldElement contract_address; - U256 token_id; + COptionU256 token_id; const char *name; const char *symbol; uint8_t decimals; @@ -471,7 +479,7 @@ cdef extern from *: U256 balance; FieldElement account_address; FieldElement contract_address; - U256 token_id; + COptionU256 token_id; cdef enum Resultc_char_Tag: Okc_char, diff --git a/src/c/types.rs b/src/c/types.rs index 54b21f8..375b14a 100644 --- a/src/c/types.rs +++ b/src/c/types.rs @@ -132,7 +132,7 @@ impl From for Controller { #[repr(C)] pub struct Token { pub contract_address: FieldElement, - pub token_id: U256, + pub token_id: COption, pub name: *const c_char, pub symbol: *const c_char, pub decimals: u8, @@ -158,7 +158,7 @@ pub struct TokenBalance { pub balance: U256, pub account_address: FieldElement, pub contract_address: FieldElement, - pub token_id: U256, + pub token_id: COption, } impl From for TokenBalance { diff --git a/src/wasm/types.rs b/src/wasm/types.rs index e7d82bc..67fe1b2 100644 --- a/src/wasm/types.rs +++ b/src/wasm/types.rs @@ -79,7 +79,7 @@ pub struct TokenCollections(pub Page); #[tsify(into_wasm_abi, from_wasm_abi)] pub struct Token { pub contract_address: String, - pub token_id: String, + pub token_id: Option, pub name: String, pub symbol: String, pub decimals: u8, @@ -90,7 +90,7 @@ impl From for Token { fn from(value: torii_proto::Token) -> Self { Self { contract_address: format!("{:#x}", value.contract_address), - token_id: format!("0x{:x}", value.token_id), + token_id: value.token_id.map(|t| format!("0x{:x}", t)), name: value.name.clone(), symbol: value.symbol.clone(), decimals: value.decimals, @@ -141,7 +141,7 @@ pub struct TokenBalance { pub balance: String, pub account_address: String, pub contract_address: String, - pub token_id: String, + pub token_id: Option, } impl From for TokenBalance { @@ -150,7 +150,7 @@ impl From for TokenBalance { balance: format!("0x{:x}", value.balance), account_address: format!("{:#x}", value.account_address), contract_address: format!("{:#x}", value.contract_address), - token_id: format!("0x{:x}", value.token_id), + token_id: value.token_id.map(|t| format!("0x{:x}", t)), } } }