diff --git a/.vscode/settings.json b/.vscode/settings.json index 3e67409..8e9513c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,7 +5,17 @@ "__config": "c", "unistd.h": "c", "typeinfo": "c", - "dojo.h": "c" + "dojo.h": "c", + "__bit_reference": "c", + "bitset": "c", + "type_traits": "c", + "utility": "c", + "ios": "c", + "limits": "c", + "locale": "c", + "new": "c", + "string": "c", + "string_view": "c" }, "rust-analyzer.linkedProjects": [ "./Cargo.toml" diff --git a/Cargo.lock b/Cargo.lock index 8bf9480..ba7cad2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -911,11 +911,12 @@ dependencies = [ [[package]] name = "cbindgen" -version = "0.27.0" -source = "git+https://github.com/masnagam/cbindgen?branch=fix-issue-43#7fcd29d7a7bd204cff6887ae099aa40f716367ed" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" dependencies = [ "clap", - "heck 0.4.1", + "heck 0.5.0", "indexmap 2.11.3", "log", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 4549991..0742a71 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,9 @@ base64 = "0.22.1" [build-dependencies] # this addresses issue with cyclical dependencies when generating C header # see. https://github.com/mozilla/cbindgen/issues/43 -cbindgen = { git = "https://github.com/masnagam/cbindgen", branch = "fix-issue-43" } +# cbindgen = { git = "https://github.com/flaviojs/cbindgen_tmp", branch = "resolve-order-dependencies-clike" } +cbindgen = "0.29" + [dev-dependencies] wasm-bindgen-test = "0.3.33" diff --git a/dojo.h b/dojo.h index 3eeed5d..adfa350 100644 --- a/dojo.h +++ b/dojo.h @@ -7,31 +7,6 @@ namespace dojo_bindings { #endif // __cplusplus -struct ToriiClient; -struct Policy; -struct ControllerAccount; -struct Call; -struct Controller; -struct OrderBy; -struct Entity; -struct COptionFieldElement; -struct Model; -struct Transaction; -struct Subscription; -struct TransactionCall; -struct Struct; -struct Token; -struct AttributeFilter; -struct TokenBalance; -struct TokenContract; -enum ContractType; -struct Contract; -struct Provider; -struct Account; -struct Ty; -struct Member; -struct EnumOption; - typedef enum BlockTag { Latest, PreConfirmed, @@ -88,6 +63,16 @@ typedef enum PatternMatching { VariableLen = 1, } PatternMatching; +typedef struct Account Account; + +typedef struct ControllerAccount ControllerAccount; + +typedef struct Provider Provider; + +typedef struct Subscription Subscription; + +typedef struct ToriiClient ToriiClient; + typedef struct Error { char *message; } Error; @@ -113,6 +98,12 @@ typedef struct FieldElement { uint8_t data[32]; } FieldElement; +typedef struct Policy { + struct FieldElement target; + const char *method; + const char *description; +} Policy; + typedef enum ResultControllerAccount_Tag { OkControllerAccount, ErrControllerAccount, @@ -169,6 +160,12 @@ typedef struct CArrayFieldElement { uintptr_t data_len; } CArrayFieldElement; +typedef struct Call { + struct FieldElement to; + const char *selector; + struct CArrayFieldElement calldata; +} Call; + typedef struct Message { const char *message; struct CArrayFieldElement signature; @@ -191,6 +188,12 @@ typedef struct ResultCArrayFieldElement { }; } ResultCArrayFieldElement; +typedef struct Controller { + struct FieldElement address; + const char *username; + uint64_t deployed_at_timestamp; +} Controller; + typedef struct CArrayController { struct Controller *data; uintptr_t data_len; @@ -246,6 +249,11 @@ typedef struct COptionu32 { }; } COptionu32; +typedef struct OrderBy { + const char *field; + enum OrderDirection direction; +} OrderBy; + typedef struct CArrayOrderBy { struct OrderBy *data; uintptr_t data_len; @@ -269,44 +277,6 @@ typedef struct ControllerQuery { struct CArrayc_char usernames; } ControllerQuery; -typedef struct CArrayEntity { - struct Entity *data; - uintptr_t data_len; -} CArrayEntity; - -typedef struct PageEntity { - struct CArrayEntity items; - struct COptionc_char next_cursor; -} PageEntity; - -typedef enum ResultPageEntity_Tag { - OkPageEntity, - ErrPageEntity, -} ResultPageEntity_Tag; - -typedef struct ResultPageEntity { - ResultPageEntity_Tag tag; - union { - struct { - struct PageEntity ok; - }; - struct { - struct Error err; - }; - }; -} ResultPageEntity; - -typedef struct CArrayCOptionFieldElement { - struct COptionFieldElement *data; - uintptr_t data_len; -} CArrayCOptionFieldElement; - -typedef struct KeysClause { - struct CArrayCOptionFieldElement keys; - enum PatternMatching pattern_matching; - struct CArrayc_char models; -} KeysClause; - typedef struct U256 { uint8_t data[32]; } U256; @@ -384,6 +354,150 @@ typedef struct Primitive { }; } Primitive; +typedef struct EnumOption { + const char *name; + struct Ty *ty; +} EnumOption; + +typedef struct CArrayEnumOption { + struct EnumOption *data; + uintptr_t data_len; +} CArrayEnumOption; + +typedef struct Enum { + const char *name; + uint8_t option; + struct CArrayEnumOption options; +} Enum; + +typedef struct CArrayTy { + struct Ty *data; + uintptr_t data_len; +} CArrayTy; + +typedef struct FixedSizeArray { + struct CArrayTy array; + uint32_t size; +} FixedSizeArray; + +typedef enum Ty_Tag { + Primitive_, + Struct_, + Enum_, + Tuple_, + Array_, + FixedSizeArray_, + ByteArray, +} Ty_Tag; + +typedef struct Ty { + Ty_Tag tag; + union { + struct { + struct Primitive primitive; + }; + struct { + struct Struct struct_; + }; + struct { + struct Enum enum_; + }; + struct { + struct CArrayTy tuple; + }; + struct { + struct CArrayTy array; + }; + struct { + struct FixedSizeArray fixed_size_array; + }; + struct { + const char *byte_array; + }; + }; +} Ty; + +typedef struct Member { + const char *name; + struct Ty *ty; + bool key; +} Member; + +typedef struct CArrayMember { + struct Member *data; + uintptr_t data_len; +} CArrayMember; + +typedef struct Struct { + const char *name; + struct CArrayMember children; +} Struct; + +typedef struct CArrayStruct { + struct Struct *data; + uintptr_t data_len; +} CArrayStruct; + +typedef struct Entity { + struct FieldElement hashed_keys; + struct CArrayStruct models; + uint64_t created_at; + uint64_t updated_at; + uint64_t executed_at; +} Entity; + +typedef struct CArrayEntity { + struct Entity *data; + uintptr_t data_len; +} CArrayEntity; + +typedef struct PageEntity { + struct CArrayEntity items; + struct COptionc_char next_cursor; +} PageEntity; + +typedef enum ResultPageEntity_Tag { + OkPageEntity, + ErrPageEntity, +} ResultPageEntity_Tag; + +typedef struct ResultPageEntity { + ResultPageEntity_Tag tag; + union { + struct { + struct PageEntity ok; + }; + struct { + struct Error err; + }; + }; +} ResultPageEntity; + +typedef enum COptionFieldElement_Tag { + SomeFieldElement, + NoneFieldElement, +} COptionFieldElement_Tag; + +typedef struct COptionFieldElement { + COptionFieldElement_Tag tag; + union { + struct { + struct FieldElement some; + }; + }; +} COptionFieldElement; + +typedef struct CArrayCOptionFieldElement { + struct COptionFieldElement *data; + uintptr_t data_len; +} CArrayCOptionFieldElement; + +typedef struct KeysClause { + struct CArrayCOptionFieldElement keys; + enum PatternMatching pattern_matching; + struct CArrayc_char models; +} KeysClause; + typedef struct CArrayMemberValue { struct MemberValue *data; uintptr_t data_len; @@ -474,6 +588,19 @@ typedef struct Query { bool historical; } Query; +typedef struct Model { + struct Ty schema; + const char *namespace_; + const char *name; + struct FieldElement selector; + uint32_t packed_size; + uint32_t unpacked_size; + struct FieldElement class_hash; + struct FieldElement contract_address; + const char *layout; + bool use_legacy_store; +} Model; + typedef struct CArrayModel { struct Model *data; uintptr_t data_len; @@ -501,6 +628,33 @@ typedef struct ResultWorld { }; } ResultWorld; +typedef struct TransactionCall { + struct FieldElement contract_address; + const char *entrypoint; + struct CArrayFieldElement calldata; + enum CallType call_type; + struct FieldElement caller_address; +} TransactionCall; + +typedef struct CArrayTransactionCall { + struct TransactionCall *data; + uintptr_t data_len; +} CArrayTransactionCall; + +typedef struct Transaction { + struct FieldElement transaction_hash; + struct FieldElement sender_address; + struct CArrayFieldElement calldata; + struct FieldElement max_fee; + struct CArrayFieldElement signature; + struct FieldElement nonce; + uint64_t block_number; + const char *transaction_type; + uint64_t block_timestamp; + struct CArrayTransactionCall calls; + struct CArrayFieldElement unique_models; +} Transaction; + typedef struct CArrayTransaction { struct Transaction *data; uintptr_t data_len; @@ -588,44 +742,36 @@ typedef struct ResultSubscription { }; } ResultSubscription; -typedef struct CArrayTransactionCall { - struct TransactionCall *data; - uintptr_t data_len; -} CArrayTransactionCall; - -typedef struct Transaction { - struct FieldElement transaction_hash; - struct FieldElement sender_address; - struct CArrayFieldElement calldata; - struct FieldElement max_fee; - struct CArrayFieldElement signature; - struct FieldElement nonce; - uint64_t block_number; - const char *transaction_type; - uint64_t block_timestamp; - struct CArrayTransactionCall calls; - struct CArrayFieldElement unique_models; -} Transaction; - -typedef struct CArrayStruct { - struct Struct *data; - uintptr_t data_len; -} CArrayStruct; - -typedef struct Entity { - struct FieldElement hashed_keys; - struct CArrayStruct models; - uint64_t created_at; - uint64_t updated_at; - uint64_t executed_at; -} Entity; - typedef struct Event { struct CArrayFieldElement keys; struct CArrayFieldElement data; struct FieldElement transaction_hash; } Event; +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 COptionU256 token_id; + const char *name; + const char *symbol; + uint8_t decimals; + const char *metadata; + struct COptionU256 total_supply; +} Token; + typedef struct CArrayToken { struct Token *data; uintptr_t data_len; @@ -658,6 +804,11 @@ typedef struct CArrayU256 { uintptr_t data_len; } CArrayU256; +typedef struct AttributeFilter { + const char *trait_name; + const char *trait_value; +} AttributeFilter; + typedef struct CArrayAttributeFilter { struct AttributeFilter *data; uintptr_t data_len; @@ -670,29 +821,12 @@ 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 { +typedef struct TokenBalance { + struct U256 balance; + struct FieldElement account_address; struct FieldElement contract_address; struct COptionU256 token_id; - const char *name; - const char *symbol; - uint8_t decimals; - const char *metadata; - struct COptionU256 total_supply; -} Token; +} TokenBalance; typedef struct CArrayTokenBalance { struct TokenBalance *data; @@ -728,6 +862,15 @@ typedef struct TokenBalanceQuery { struct Pagination pagination; } TokenBalanceQuery; +typedef struct TokenContract { + struct FieldElement contract_address; + const char *name; + const char *symbol; + uint8_t decimals; + const char *metadata; + struct COptionU256 total_supply; +} TokenContract; + typedef struct CArrayTokenContract { struct TokenContract *data; uintptr_t data_len; @@ -766,6 +909,17 @@ typedef struct TokenContractQuery { struct Pagination pagination; } TokenContractQuery; +typedef struct Contract { + struct FieldElement contract_address; + enum ContractType contract_type; + struct COptionu64 head; + struct COptionu64 tps; + struct COptionu64 last_block_timestamp; + struct COptionFieldElement last_pending_block_tx; + uint64_t updated_at; + uint64_t created_at; +} Contract; + typedef struct CArrayContract { struct Contract *data; uintptr_t data_len; @@ -793,38 +947,6 @@ typedef struct ContractQuery { struct CArrayContractType contract_types; } ContractQuery; -typedef enum COptionFieldElement_Tag { - SomeFieldElement, - NoneFieldElement, -} COptionFieldElement_Tag; - -typedef struct COptionFieldElement { - COptionFieldElement_Tag tag; - union { - struct { - struct FieldElement some; - }; - }; -} COptionFieldElement; - -typedef struct Contract { - struct FieldElement contract_address; - enum ContractType contract_type; - struct COptionu64 head; - struct COptionu64 tps; - struct COptionu64 last_block_timestamp; - struct COptionFieldElement last_pending_block_tx; - uint64_t updated_at; - uint64_t created_at; -} Contract; - -typedef struct TokenBalance { - struct U256 balance; - struct FieldElement account_address; - struct FieldElement contract_address; - struct COptionU256 token_id; -} TokenBalance; - typedef enum Resultc_char_Tag { Okc_char, Errc_char, @@ -904,12 +1026,6 @@ typedef struct ResultAccount { }; } ResultAccount; -typedef struct Call { - struct FieldElement to; - const char *selector; - struct CArrayFieldElement calldata; -} Call; - /** * Block hash, number or tag */ @@ -934,137 +1050,6 @@ typedef struct BlockId { }; } BlockId; -typedef struct Policy { - struct FieldElement target; - const char *method; - const char *description; -} Policy; - -typedef struct Controller { - struct FieldElement address; - const char *username; - uint64_t deployed_at_timestamp; -} Controller; - -typedef struct OrderBy { - const char *field; - enum OrderDirection direction; -} OrderBy; - -typedef struct CArrayMember { - struct Member *data; - uintptr_t data_len; -} CArrayMember; - -typedef struct Struct { - const char *name; - struct CArrayMember children; -} Struct; - -typedef struct CArrayEnumOption { - struct EnumOption *data; - uintptr_t data_len; -} CArrayEnumOption; - -typedef struct Enum { - const char *name; - uint8_t option; - struct CArrayEnumOption options; -} Enum; - -typedef struct CArrayTy { - struct Ty *data; - uintptr_t data_len; -} CArrayTy; - -typedef struct FixedSizeArray { - struct CArrayTy array; - uint32_t size; -} FixedSizeArray; - -typedef enum Ty_Tag { - Primitive_, - Struct_, - Enum_, - Tuple_, - Array_, - FixedSizeArray_, - ByteArray, -} Ty_Tag; - -typedef struct Ty { - Ty_Tag tag; - union { - struct { - struct Primitive primitive; - }; - struct { - struct Struct struct_; - }; - struct { - struct Enum enum_; - }; - struct { - struct CArrayTy tuple; - }; - struct { - struct CArrayTy array; - }; - struct { - struct FixedSizeArray fixed_size_array; - }; - struct { - const char *byte_array; - }; - }; -} Ty; - -typedef struct Model { - struct Ty schema; - const char *namespace_; - const char *name; - struct FieldElement selector; - uint32_t packed_size; - uint32_t unpacked_size; - struct FieldElement class_hash; - struct FieldElement contract_address; - const char *layout; - bool use_legacy_store; -} Model; - -typedef struct TransactionCall { - struct FieldElement contract_address; - const char *entrypoint; - struct CArrayFieldElement calldata; - enum CallType call_type; - struct FieldElement caller_address; -} TransactionCall; - -typedef struct AttributeFilter { - const char *trait_name; - const char *trait_value; -} AttributeFilter; - -typedef struct TokenContract { - struct FieldElement contract_address; - const char *name; - const char *symbol; - uint8_t decimals; - const char *metadata; - struct COptionU256 total_supply; -} TokenContract; - -typedef struct Member { - const char *name; - struct Ty *ty; - bool key; -} Member; - -typedef struct EnumOption { - const char *name; - struct Ty *ty; -} EnumOption; - #ifdef __cplusplus extern "C" { #endif // __cplusplus diff --git a/dojo.hpp b/dojo.hpp index e05d175..38d1fea 100644 --- a/dojo.hpp +++ b/dojo.hpp @@ -6,15 +6,6 @@ namespace dojo_bindings { -struct ToriiClient; -struct Policy; -struct ControllerAccount; -struct Call; -struct Ty; -struct Subscription; -struct Provider; -struct Account; - enum class BlockTag { Latest, PreConfirmed, @@ -71,6 +62,16 @@ enum class PatternMatching { VariableLen = 1, }; +struct Account; + +struct ControllerAccount; + +struct Provider; + +struct Subscription; + +struct ToriiClient; + struct Error { char *message; }; @@ -123,12 +124,24 @@ struct FieldElement { uint8_t data[32]; }; +struct Policy { + FieldElement target; + const char *method; + const char *description; +}; + template struct CArray { T *data; uintptr_t data_len; }; +struct Call { + FieldElement to; + const char *selector; + CArray calldata; +}; + struct Message { const char *message; CArray signature; @@ -202,31 +215,6 @@ struct ControllerQuery { CArray usernames; }; -struct Member { - const char *name; - Ty *ty; - bool key; -}; - -struct Struct { - const char *name; - CArray children; -}; - -struct Entity { - FieldElement hashed_keys; - CArray models; - uint64_t created_at; - uint64_t updated_at; - uint64_t executed_at; -}; - -struct KeysClause { - CArray> keys; - PatternMatching pattern_matching; - CArray models; -}; - struct U256 { uint8_t data[32]; }; @@ -516,6 +504,175 @@ struct Primitive { } }; +struct EnumOption { + const char *name; + Ty *ty; +}; + +struct Enum { + const char *name; + uint8_t option; + CArray options; +}; + +struct FixedSizeArray { + CArray array; + uint32_t size; +}; + +struct Ty { + enum class Tag { + Primitive_, + Struct_, + Enum_, + Tuple_, + Array_, + FixedSizeArray_, + ByteArray, + }; + + struct Primitive__Body { + Primitive _0; + }; + + struct Struct__Body { + Struct _0; + }; + + struct Enum__Body { + Enum _0; + }; + + struct Tuple__Body { + CArray _0; + }; + + struct Array__Body { + CArray _0; + }; + + struct FixedSizeArray__Body { + FixedSizeArray _0; + }; + + struct ByteArray_Body { + const char *_0; + }; + + Tag tag; + union { + Primitive__Body primitive; + Struct__Body struct_; + Enum__Body enum_; + Tuple__Body tuple; + Array__Body array; + FixedSizeArray__Body fixed_size_array; + ByteArray_Body byte_array; + }; + + static Ty Primitive_(const Primitive &_0) { + Ty result; + ::new (&result.primitive._0) (Primitive)(_0); + result.tag = Tag::Primitive_; + return result; + } + + bool IsPrimitive_() const { + return tag == Tag::Primitive_; + } + + static Ty Struct_(const Struct &_0) { + Ty result; + ::new (&result.struct_._0) (Struct)(_0); + result.tag = Tag::Struct_; + return result; + } + + bool IsStruct_() const { + return tag == Tag::Struct_; + } + + static Ty Enum_(const Enum &_0) { + Ty result; + ::new (&result.enum_._0) (Enum)(_0); + result.tag = Tag::Enum_; + return result; + } + + bool IsEnum_() const { + return tag == Tag::Enum_; + } + + static Ty Tuple_(const CArray &_0) { + Ty result; + ::new (&result.tuple._0) (CArray)(_0); + result.tag = Tag::Tuple_; + return result; + } + + bool IsTuple_() const { + return tag == Tag::Tuple_; + } + + static Ty Array_(const CArray &_0) { + Ty result; + ::new (&result.array._0) (CArray)(_0); + result.tag = Tag::Array_; + return result; + } + + bool IsArray_() const { + return tag == Tag::Array_; + } + + static Ty FixedSizeArray_(const FixedSizeArray &_0) { + Ty result; + ::new (&result.fixed_size_array._0) (FixedSizeArray)(_0); + result.tag = Tag::FixedSizeArray_; + return result; + } + + bool IsFixedSizeArray_() const { + return tag == Tag::FixedSizeArray_; + } + + static Ty ByteArray(const char *const &_0) { + Ty result; + ::new (&result.byte_array._0) (const char*)(_0); + result.tag = Tag::ByteArray; + return result; + } + + bool IsByteArray() const { + return tag == Tag::ByteArray; + } +}; + +struct Member { + const char *name; + Ty *ty; + bool key; +}; + +struct Struct { + const char *name; + CArray children; +}; + +struct Entity { + FieldElement hashed_keys; + CArray models; + uint64_t created_at; + uint64_t updated_at; + uint64_t executed_at; +}; + +struct KeysClause { + CArray> keys; + PatternMatching pattern_matching; + CArray models; +}; + struct MemberValue { enum class Tag { PrimitiveValue, @@ -673,150 +830,6 @@ struct Query { bool historical; }; -struct EnumOption { - const char *name; - Ty *ty; -}; - -struct Enum { - const char *name; - uint8_t option; - CArray options; -}; - -struct FixedSizeArray { - CArray array; - uint32_t size; -}; - -struct Ty { - enum class Tag { - Primitive_, - Struct_, - Enum_, - Tuple_, - Array_, - FixedSizeArray_, - ByteArray, - }; - - struct Primitive__Body { - Primitive _0; - }; - - struct Struct__Body { - Struct _0; - }; - - struct Enum__Body { - Enum _0; - }; - - struct Tuple__Body { - CArray _0; - }; - - struct Array__Body { - CArray _0; - }; - - struct FixedSizeArray__Body { - FixedSizeArray _0; - }; - - struct ByteArray_Body { - const char *_0; - }; - - Tag tag; - union { - Primitive__Body primitive; - Struct__Body struct_; - Enum__Body enum_; - Tuple__Body tuple; - Array__Body array; - FixedSizeArray__Body fixed_size_array; - ByteArray_Body byte_array; - }; - - static Ty Primitive_(const Primitive &_0) { - Ty result; - ::new (&result.primitive._0) (Primitive)(_0); - result.tag = Tag::Primitive_; - return result; - } - - bool IsPrimitive_() const { - return tag == Tag::Primitive_; - } - - static Ty Struct_(const Struct &_0) { - Ty result; - ::new (&result.struct_._0) (Struct)(_0); - result.tag = Tag::Struct_; - return result; - } - - bool IsStruct_() const { - return tag == Tag::Struct_; - } - - static Ty Enum_(const Enum &_0) { - Ty result; - ::new (&result.enum_._0) (Enum)(_0); - result.tag = Tag::Enum_; - return result; - } - - bool IsEnum_() const { - return tag == Tag::Enum_; - } - - static Ty Tuple_(const CArray &_0) { - Ty result; - ::new (&result.tuple._0) (CArray)(_0); - result.tag = Tag::Tuple_; - return result; - } - - bool IsTuple_() const { - return tag == Tag::Tuple_; - } - - static Ty Array_(const CArray &_0) { - Ty result; - ::new (&result.array._0) (CArray)(_0); - result.tag = Tag::Array_; - return result; - } - - bool IsArray_() const { - return tag == Tag::Array_; - } - - static Ty FixedSizeArray_(const FixedSizeArray &_0) { - Ty result; - ::new (&result.fixed_size_array._0) (FixedSizeArray)(_0); - result.tag = Tag::FixedSizeArray_; - return result; - } - - bool IsFixedSizeArray_() const { - return tag == Tag::FixedSizeArray_; - } - - static Ty ByteArray(const char *const &_0) { - Ty result; - ::new (&result.byte_array._0) (const char*)(_0); - result.tag = Tag::ByteArray; - return result; - } - - bool IsByteArray() const { - return tag == Tag::ByteArray; - } -}; - struct Model { Ty schema; const char *namespace_; @@ -952,12 +965,6 @@ struct Signature { FieldElement s; }; -struct Call { - FieldElement to; - const char *selector; - CArray calldata; -}; - /// Block hash, number or tag struct BlockId { enum class Tag { @@ -1019,12 +1026,6 @@ struct BlockId { } }; -struct Policy { - FieldElement target; - const char *method; - const char *description; -}; - extern "C" { /// Creates a new Torii client instance diff --git a/dojo.pyx b/dojo.pyx index 0553e37..c2c8190 100644 --- a/dojo.pyx +++ b/dojo.pyx @@ -84,6 +84,11 @@ cdef extern from *: cdef struct FieldElement: uint8_t data[32]; + cdef struct Policy: + FieldElement target; + const char *method; + const char *description; + cdef enum ResultControllerAccount_Tag: OkControllerAccount, ErrControllerAccount, @@ -115,6 +120,11 @@ cdef extern from *: FieldElement *data; uintptr_t data_len; + cdef struct Call: + FieldElement to; + const char *selector; + CArrayFieldElement calldata; + cdef struct Message: const char *message; CArrayFieldElement signature; @@ -128,6 +138,11 @@ cdef extern from *: CArrayFieldElement ok; Error err; + cdef struct Controller: + FieldElement address; + const char *username; + uint64_t deployed_at_timestamp; + cdef struct CArrayController: Controller *data; uintptr_t data_len; @@ -161,6 +176,10 @@ cdef extern from *: COptionu32_Tag tag; uint32_t some; + cdef struct OrderBy: + const char *field; + OrderDirection direction; + cdef struct CArrayOrderBy: OrderBy *data; uintptr_t data_len; @@ -180,32 +199,6 @@ cdef extern from *: CArrayFieldElement contract_addresses; CArrayc_char usernames; - cdef struct CArrayEntity: - Entity *data; - uintptr_t data_len; - - cdef struct PageEntity: - CArrayEntity items; - COptionc_char next_cursor; - - cdef enum ResultPageEntity_Tag: - OkPageEntity, - ErrPageEntity, - - cdef struct ResultPageEntity: - ResultPageEntity_Tag tag; - PageEntity ok; - Error err; - - cdef struct CArrayCOptionFieldElement: - COptionFieldElement *data; - uintptr_t data_len; - - cdef struct KeysClause: - CArrayCOptionFieldElement keys; - PatternMatching pattern_matching; - CArrayc_char models; - cdef struct U256: uint8_t data[32]; @@ -246,6 +239,104 @@ cdef extern from *: FieldElement contract_address; FieldElement eth_address; + cdef struct EnumOption: + const char *name; + Ty *ty; + + cdef struct CArrayEnumOption: + EnumOption *data; + uintptr_t data_len; + + cdef struct Enum: + const char *name; + uint8_t option; + CArrayEnumOption options; + + cdef struct CArrayTy: + Ty *data; + uintptr_t data_len; + + cdef struct FixedSizeArray: + CArrayTy array; + uint32_t size; + + cdef enum Ty_Tag: + Primitive_, + Struct_, + Enum_, + Tuple_, + Array_, + FixedSizeArray_, + ByteArray, + + cdef struct Ty: + Ty_Tag tag; + Primitive primitive; + Struct struct_; + Enum enum_; + CArrayTy tuple; + CArrayTy array; + FixedSizeArray fixed_size_array; + const char *byte_array; + + cdef struct Member: + const char *name; + Ty *ty; + bool key; + + cdef struct CArrayMember: + Member *data; + uintptr_t data_len; + + cdef struct Struct: + const char *name; + CArrayMember children; + + cdef struct CArrayStruct: + Struct *data; + uintptr_t data_len; + + cdef struct Entity: + FieldElement hashed_keys; + CArrayStruct models; + uint64_t created_at; + uint64_t updated_at; + uint64_t executed_at; + + cdef struct CArrayEntity: + Entity *data; + uintptr_t data_len; + + cdef struct PageEntity: + CArrayEntity items; + COptionc_char next_cursor; + + cdef enum ResultPageEntity_Tag: + OkPageEntity, + ErrPageEntity, + + cdef struct ResultPageEntity: + ResultPageEntity_Tag tag; + PageEntity ok; + Error err; + + cdef enum COptionFieldElement_Tag: + SomeFieldElement, + NoneFieldElement, + + cdef struct COptionFieldElement: + COptionFieldElement_Tag tag; + FieldElement some; + + cdef struct CArrayCOptionFieldElement: + COptionFieldElement *data; + uintptr_t data_len; + + cdef struct KeysClause: + CArrayCOptionFieldElement keys; + PatternMatching pattern_matching; + CArrayc_char models; + cdef struct CArrayMemberValue: MemberValue *data; uintptr_t data_len; @@ -303,6 +394,18 @@ cdef extern from *: CArrayc_char models; bool historical; + cdef struct Model: + Ty schema; + const char *namespace_; + const char *name; + FieldElement selector; + uint32_t packed_size; + uint32_t unpacked_size; + FieldElement class_hash; + FieldElement contract_address; + const char *layout; + bool use_legacy_store; + cdef struct CArrayModel: Model *data; uintptr_t data_len; @@ -320,6 +423,30 @@ cdef extern from *: World ok; Error err; + cdef struct TransactionCall: + FieldElement contract_address; + const char *entrypoint; + CArrayFieldElement calldata; + CallType call_type; + FieldElement caller_address; + + cdef struct CArrayTransactionCall: + TransactionCall *data; + uintptr_t data_len; + + cdef struct Transaction: + FieldElement transaction_hash; + FieldElement sender_address; + CArrayFieldElement calldata; + FieldElement max_fee; + CArrayFieldElement signature; + FieldElement nonce; + uint64_t block_number; + const char *transaction_type; + uint64_t block_timestamp; + CArrayTransactionCall calls; + CArrayFieldElement unique_models; + cdef struct CArrayTransaction: Transaction *data; uintptr_t data_len; @@ -375,39 +502,28 @@ cdef extern from *: Subscription *ok; Error err; - cdef struct CArrayTransactionCall: - TransactionCall *data; - uintptr_t data_len; - - cdef struct Transaction: - FieldElement transaction_hash; - FieldElement sender_address; - CArrayFieldElement calldata; - FieldElement max_fee; - CArrayFieldElement signature; - FieldElement nonce; - uint64_t block_number; - const char *transaction_type; - uint64_t block_timestamp; - CArrayTransactionCall calls; - CArrayFieldElement unique_models; - - cdef struct CArrayStruct: - Struct *data; - uintptr_t data_len; - - cdef struct Entity: - FieldElement hashed_keys; - CArrayStruct models; - uint64_t created_at; - uint64_t updated_at; - uint64_t executed_at; - cdef struct Event: CArrayFieldElement keys; CArrayFieldElement data; FieldElement transaction_hash; + cdef enum COptionU256_Tag: + SomeU256, + NoneU256, + + cdef struct COptionU256: + COptionU256_Tag tag; + U256 some; + + cdef struct Token: + FieldElement contract_address; + COptionU256 token_id; + const char *name; + const char *symbol; + uint8_t decimals; + const char *metadata; + COptionU256 total_supply; + cdef struct CArrayToken: Token *data; uintptr_t data_len; @@ -429,6 +545,10 @@ cdef extern from *: U256 *data; uintptr_t data_len; + cdef struct AttributeFilter: + const char *trait_name; + const char *trait_value; + cdef struct CArrayAttributeFilter: AttributeFilter *data; uintptr_t data_len; @@ -439,22 +559,11 @@ cdef extern from *: CArrayAttributeFilter attribute_filters; Pagination pagination; - cdef enum COptionU256_Tag: - SomeU256, - NoneU256, - - cdef struct COptionU256: - COptionU256_Tag tag; - U256 some; - - cdef struct Token: + cdef struct TokenBalance: + U256 balance; + FieldElement account_address; FieldElement contract_address; COptionU256 token_id; - const char *name; - const char *symbol; - uint8_t decimals; - const char *metadata; - COptionU256 total_supply; cdef struct CArrayTokenBalance: TokenBalance *data; @@ -479,6 +588,14 @@ cdef extern from *: CArrayU256 token_ids; Pagination pagination; + cdef struct TokenContract: + FieldElement contract_address; + const char *name; + const char *symbol; + uint8_t decimals; + const char *metadata; + COptionU256 total_supply; + cdef struct CArrayTokenContract: TokenContract *data; uintptr_t data_len; @@ -505,6 +622,16 @@ cdef extern from *: CArrayContractType contract_types; Pagination pagination; + cdef struct Contract: + FieldElement contract_address; + ContractType contract_type; + COptionu64 head; + COptionu64 tps; + COptionu64 last_block_timestamp; + COptionFieldElement last_pending_block_tx; + uint64_t updated_at; + uint64_t created_at; + cdef struct CArrayContract: Contract *data; uintptr_t data_len; @@ -522,30 +649,6 @@ cdef extern from *: CArrayFieldElement contract_addresses; CArrayContractType contract_types; - cdef enum COptionFieldElement_Tag: - SomeFieldElement, - NoneFieldElement, - - cdef struct COptionFieldElement: - COptionFieldElement_Tag tag; - FieldElement some; - - cdef struct Contract: - FieldElement contract_address; - ContractType contract_type; - COptionu64 head; - COptionu64 tps; - COptionu64 last_block_timestamp; - COptionFieldElement last_pending_block_tx; - uint64_t updated_at; - uint64_t created_at; - - cdef struct TokenBalance: - U256 balance; - FieldElement account_address; - FieldElement contract_address; - COptionU256 token_id; - cdef enum Resultc_char_Tag: Okc_char, Errc_char, @@ -588,11 +691,6 @@ cdef extern from *: Account *ok; Error err; - cdef struct Call: - FieldElement to; - const char *selector; - CArrayFieldElement calldata; - # Block hash, number or tag cdef enum BlockId_Tag: Hash, @@ -605,104 +703,6 @@ cdef extern from *: uint64_t number; BlockTag block_tag; - cdef struct Policy: - FieldElement target; - const char *method; - const char *description; - - cdef struct Controller: - FieldElement address; - const char *username; - uint64_t deployed_at_timestamp; - - cdef struct OrderBy: - const char *field; - OrderDirection direction; - - cdef struct CArrayMember: - Member *data; - uintptr_t data_len; - - cdef struct Struct: - const char *name; - CArrayMember children; - - cdef struct CArrayEnumOption: - EnumOption *data; - uintptr_t data_len; - - cdef struct Enum: - const char *name; - uint8_t option; - CArrayEnumOption options; - - cdef struct CArrayTy: - Ty *data; - uintptr_t data_len; - - cdef struct FixedSizeArray: - CArrayTy array; - uint32_t size; - - cdef enum Ty_Tag: - Primitive_, - Struct_, - Enum_, - Tuple_, - Array_, - FixedSizeArray_, - ByteArray, - - cdef struct Ty: - Ty_Tag tag; - Primitive primitive; - Struct struct_; - Enum enum_; - CArrayTy tuple; - CArrayTy array; - FixedSizeArray fixed_size_array; - const char *byte_array; - - cdef struct Model: - Ty schema; - const char *namespace_; - const char *name; - FieldElement selector; - uint32_t packed_size; - uint32_t unpacked_size; - FieldElement class_hash; - FieldElement contract_address; - const char *layout; - bool use_legacy_store; - - cdef struct TransactionCall: - FieldElement contract_address; - const char *entrypoint; - CArrayFieldElement calldata; - CallType call_type; - FieldElement caller_address; - - cdef struct AttributeFilter: - const char *trait_name; - const char *trait_value; - - cdef struct TokenContract: - FieldElement contract_address; - const char *name; - const char *symbol; - uint8_t decimals; - const char *metadata; - COptionU256 total_supply; - - cdef struct Member: - const char *name; - Ty *ty; - bool key; - - cdef struct EnumOption: - const char *name; - Ty *ty; - # Creates a new Torii client instance # # # Parameters