diff --git a/Cargo.lock b/Cargo.lock index ba7cad2..8bf9480 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -911,12 +911,11 @@ dependencies = [ [[package]] name = "cbindgen" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "975982cdb7ad6a142be15bdf84aea7ec6a9e5d4d797c004d43185b24cfe4e684" +version = "0.27.0" +source = "git+https://github.com/masnagam/cbindgen?branch=fix-issue-43#7fcd29d7a7bd204cff6887ae099aa40f716367ed" dependencies = [ "clap", - "heck 0.5.0", + "heck 0.4.1", "indexmap 2.11.3", "log", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 0742a71..777310a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,7 +69,8 @@ base64 = "0.22.1" # this addresses issue with cyclical dependencies when generating C header # see. https://github.com/mozilla/cbindgen/issues/43 # cbindgen = { git = "https://github.com/flaviojs/cbindgen_tmp", branch = "resolve-order-dependencies-clike" } -cbindgen = "0.29" +# cbindgen = "0.29" +cbindgen = { git = "https://github.com/masnagam/cbindgen", branch = "fix-issue-43" } [dev-dependencies] diff --git a/dojo.h b/dojo.h index adfa350..3eeed5d 100644 --- a/dojo.h +++ b/dojo.h @@ -7,6 +7,31 @@ 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, @@ -63,16 +88,6 @@ 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; @@ -98,12 +113,6 @@ 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, @@ -160,12 +169,6 @@ 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; @@ -188,12 +191,6 @@ 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; @@ -249,11 +246,6 @@ typedef struct COptionu32 { }; } COptionu32; -typedef struct OrderBy { - const char *field; - enum OrderDirection direction; -} OrderBy; - typedef struct CArrayOrderBy { struct OrderBy *data; uintptr_t data_len; @@ -277,6 +269,44 @@ 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; @@ -354,150 +384,6 @@ 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; @@ -588,19 +474,6 @@ 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; @@ -628,33 +501,6 @@ 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; @@ -742,35 +588,43 @@ typedef struct ResultSubscription { }; } ResultSubscription; -typedef struct Event { - struct CArrayFieldElement keys; - struct CArrayFieldElement data; - struct FieldElement transaction_hash; -} Event; +typedef struct CArrayTransactionCall { + struct TransactionCall *data; + uintptr_t data_len; +} CArrayTransactionCall; -typedef enum COptionU256_Tag { - SomeU256, - NoneU256, -} COptionU256_Tag; +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 COptionU256 { - COptionU256_Tag tag; - union { - struct { - struct U256 some; - }; - }; -} COptionU256; +typedef struct CArrayStruct { + struct Struct *data; + uintptr_t data_len; +} CArrayStruct; -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 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 struct CArrayToken { struct Token *data; @@ -804,11 +658,6 @@ 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; @@ -821,12 +670,29 @@ typedef struct TokenQuery { struct Pagination pagination; } TokenQuery; -typedef struct TokenBalance { - struct U256 balance; - struct FieldElement account_address; +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; -} TokenBalance; + const char *name; + const char *symbol; + uint8_t decimals; + const char *metadata; + struct COptionU256 total_supply; +} Token; typedef struct CArrayTokenBalance { struct TokenBalance *data; @@ -862,15 +728,6 @@ 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; @@ -909,17 +766,6 @@ 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; @@ -947,6 +793,38 @@ 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, @@ -1026,6 +904,12 @@ typedef struct ResultAccount { }; } ResultAccount; +typedef struct Call { + struct FieldElement to; + const char *selector; + struct CArrayFieldElement calldata; +} Call; + /** * Block hash, number or tag */ @@ -1050,6 +934,137 @@ 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 38d1fea..e05d175 100644 --- a/dojo.hpp +++ b/dojo.hpp @@ -6,6 +6,15 @@ namespace dojo_bindings { +struct ToriiClient; +struct Policy; +struct ControllerAccount; +struct Call; +struct Ty; +struct Subscription; +struct Provider; +struct Account; + enum class BlockTag { Latest, PreConfirmed, @@ -62,16 +71,6 @@ enum class PatternMatching { VariableLen = 1, }; -struct Account; - -struct ControllerAccount; - -struct Provider; - -struct Subscription; - -struct ToriiClient; - struct Error { char *message; }; @@ -124,24 +123,12 @@ 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; @@ -215,6 +202,31 @@ 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]; }; @@ -504,175 +516,6 @@ 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, @@ -830,6 +673,150 @@ 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_; @@ -965,6 +952,12 @@ struct Signature { FieldElement s; }; +struct Call { + FieldElement to; + const char *selector; + CArray calldata; +}; + /// Block hash, number or tag struct BlockId { enum class Tag { @@ -1026,6 +1019,12 @@ 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 c2c8190..0553e37 100644 --- a/dojo.pyx +++ b/dojo.pyx @@ -84,11 +84,6 @@ 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, @@ -120,11 +115,6 @@ 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; @@ -138,11 +128,6 @@ 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; @@ -176,10 +161,6 @@ 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; @@ -199,6 +180,32 @@ 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]; @@ -239,104 +246,6 @@ 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; @@ -394,18 +303,6 @@ 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; @@ -423,30 +320,6 @@ 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; @@ -502,27 +375,38 @@ cdef extern from *: Subscription *ok; Error err; - cdef struct Event: - CArrayFieldElement keys; - CArrayFieldElement data; + 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 enum COptionU256_Tag: - SomeU256, - NoneU256, + cdef struct CArrayStruct: + Struct *data; + uintptr_t data_len; - cdef struct COptionU256: - COptionU256_Tag tag; - U256 some; + cdef struct Entity: + FieldElement hashed_keys; + CArrayStruct models; + uint64_t created_at; + uint64_t updated_at; + uint64_t executed_at; - 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 Event: + CArrayFieldElement keys; + CArrayFieldElement data; + FieldElement transaction_hash; cdef struct CArrayToken: Token *data; @@ -545,10 +429,6 @@ 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; @@ -559,11 +439,22 @@ cdef extern from *: CArrayAttributeFilter attribute_filters; Pagination pagination; - cdef struct TokenBalance: - U256 balance; - FieldElement account_address; + 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 CArrayTokenBalance: TokenBalance *data; @@ -588,14 +479,6 @@ 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; @@ -622,16 +505,6 @@ 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; @@ -649,6 +522,30 @@ 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, @@ -691,6 +588,11 @@ 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, @@ -703,6 +605,104 @@ 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 diff --git a/example/main.c b/example/main.c index bb42a79..8a66cc1 100644 --- a/example/main.c +++ b/example/main.c @@ -1,4 +1,4 @@ -#include "dojo.h" +#include "../dojo.h" #include #include #include @@ -29,7 +29,6 @@ void on_entity_state_update(FieldElement key, CArrayStruct models) void hex_to_bytes(const char *hex, FieldElement *felt) { - if (hex[0] == '0' && hex[1] == 'x') { hex += 2;