Skip to content

Commit 4bd2be5

Browse files
authored
feat(client): refactor proto for tokens & remove rpc (#93)
1 parent e927a2e commit 4bd2be5

File tree

9 files changed

+300
-114
lines changed

9 files changed

+300
-114
lines changed

Cargo.lock

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ version = "1.0.9"
77
crate-type = ["cdylib", "rlib", "staticlib"]
88

99
[dependencies]
10-
dojo-world = { git = "https://github.com/dojoengine/dojo", rev = "1aa06e1" }
11-
dojo-types = { git = "https://github.com/dojoengine/dojo", rev = "1aa06e1"}
12-
torii-client = { git = "https://github.com/dojoengine/dojo", rev = "1aa06e1" }
10+
dojo-world = { git = "https://github.com/dojoengine/dojo", rev = "0a186fa" }
11+
dojo-types = { git = "https://github.com/dojoengine/dojo", rev = "0a186fa"}
12+
torii-client = { git = "https://github.com/dojoengine/dojo", rev = "0a186fa" }
1313
torii-grpc = { git = "https://github.com/dojoengine/dojo", features = [
1414
"client",
15-
], rev = "1aa06e1" }
16-
torii-typed-data = { git = "https://github.com/dojoengine/dojo", rev = "1aa06e1" }
17-
torii-relay = { git = "https://github.com/dojoengine/dojo", rev = "1aa06e1" }
15+
], rev = "0a186fa" }
16+
torii-typed-data = { git = "https://github.com/dojoengine/dojo", rev = "0a186fa" }
17+
torii-relay = { git = "https://github.com/dojoengine/dojo", rev = "0a186fa" }
1818

1919
starknet = "0.12.0"
2020
starknet-crypto = "0.7.2"

dojo.h

+39-12
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ struct Subscription;
1919
struct EntityKeysClause;
2020
struct Struct;
2121
struct Token;
22+
struct U256;
2223
struct TokenBalance;
2324
struct Provider;
2425
struct Account;
@@ -211,6 +212,23 @@ typedef struct WorldMetadata {
211212
struct CArrayCHashItemFieldElementModelMetadata models;
212213
} WorldMetadata;
213214

215+
typedef enum ResultWorldMetadata_Tag {
216+
OkWorldMetadata,
217+
ErrWorldMetadata,
218+
} ResultWorldMetadata_Tag;
219+
220+
typedef struct ResultWorldMetadata {
221+
ResultWorldMetadata_Tag tag;
222+
union {
223+
struct {
224+
struct WorldMetadata ok;
225+
};
226+
struct {
227+
struct Error err;
228+
};
229+
};
230+
} ResultWorldMetadata;
231+
214232
typedef enum ResultSubscription_Tag {
215233
OkSubscription,
216234
ErrSubscription,
@@ -266,9 +284,13 @@ typedef struct ResultCArrayToken {
266284
};
267285
} ResultCArrayToken;
268286

287+
typedef struct U256 {
288+
uint8_t data[32];
289+
} U256;
290+
269291
typedef struct Token {
270-
const char *id;
271292
struct FieldElement contract_address;
293+
struct U256 token_id;
272294
const char *name;
273295
const char *symbol;
274296
uint8_t decimals;
@@ -305,14 +327,10 @@ typedef struct IndexerUpdate {
305327
} IndexerUpdate;
306328

307329
typedef struct TokenBalance {
308-
uint64_t balance[4];
309-
#if defined(TARGET_POINTER_WIDTH_32)
310-
uint32_t balance[8]
311-
#endif
312-
;
330+
struct U256 balance;
313331
struct FieldElement account_address;
314332
struct FieldElement contract_address;
315-
const char *token_id;
333+
struct U256 token_id;
316334
} TokenBalance;
317335

318336
typedef enum ResultCArrayFieldElement_Tag {
@@ -788,7 +806,6 @@ extern "C" {
788806
* Result containing pointer to new ToriiClient instance or error
789807
*/
790808
struct ResultToriiClient client_new(const char *torii_url,
791-
const char *rpc_url,
792809
const char *libp2p_relay_url,
793810
struct FieldElement world);
794811

@@ -1015,7 +1032,7 @@ struct ResultCArrayEntity client_event_messages(struct ToriiClient *client,
10151032
* # Returns
10161033
* WorldMetadata structure containing world information
10171034
*/
1018-
struct WorldMetadata client_metadata(struct ToriiClient *client);
1035+
struct ResultWorldMetadata client_metadata(struct ToriiClient *client);
10191036

10201037
/**
10211038
* Subscribes to entity state updates
@@ -1121,7 +1138,9 @@ struct ResultSubscription client_on_starknet_event(struct ToriiClient *client,
11211138
*/
11221139
struct ResultCArrayToken client_tokens(struct ToriiClient *client,
11231140
const struct FieldElement *contract_addresses,
1124-
uintptr_t contract_addresses_len);
1141+
uintptr_t contract_addresses_len,
1142+
const struct U256 *token_ids,
1143+
uintptr_t token_ids_len);
11251144

11261145
/**
11271146
* Subscribes to token updates
@@ -1137,6 +1156,8 @@ struct ResultCArrayToken client_tokens(struct ToriiClient *client,
11371156
struct ResultSubscription client_on_token_update(struct ToriiClient *client,
11381157
const struct FieldElement *contract_addresses,
11391158
uintptr_t contract_addresses_len,
1159+
const struct U256 *token_ids,
1160+
uintptr_t token_ids_len,
11401161
void (*callback)(struct Token));
11411162

11421163
/**
@@ -1156,7 +1177,9 @@ struct ResultCArrayTokenBalance client_token_balances(struct ToriiClient *client
11561177
const struct FieldElement *contract_addresses,
11571178
uintptr_t contract_addresses_len,
11581179
const struct FieldElement *account_addresses,
1159-
uintptr_t account_addresses_len);
1180+
uintptr_t account_addresses_len,
1181+
const struct U256 *token_ids,
1182+
uintptr_t token_ids_len);
11601183

11611184
/**
11621185
* Subscribes to indexer updates
@@ -1192,6 +1215,8 @@ struct ResultSubscription client_on_token_balance_update(struct ToriiClient *cli
11921215
uintptr_t contract_addresses_len,
11931216
const struct FieldElement *account_addresses,
11941217
uintptr_t account_addresses_len,
1218+
const struct U256 *token_ids,
1219+
uintptr_t token_ids_len,
11951220
void (*callback)(struct TokenBalance));
11961221

11971222
/**
@@ -1213,7 +1238,9 @@ struct Resultbool client_update_token_balance_subscription(struct ToriiClient *c
12131238
const struct FieldElement *contract_addresses,
12141239
uintptr_t contract_addresses_len,
12151240
const struct FieldElement *account_addresses,
1216-
uintptr_t account_addresses_len);
1241+
uintptr_t account_addresses_len,
1242+
const struct U256 *token_ids,
1243+
uintptr_t token_ids_len);
12171244

12181245
/**
12191246
* Serializes a string into a byte array

dojo.hpp

+21-12
Original file line numberDiff line numberDiff line change
@@ -592,24 +592,24 @@ struct Event {
592592
FieldElement transaction_hash;
593593
};
594594

595+
struct U256 {
596+
uint8_t data[32];
597+
};
598+
595599
struct Token {
596-
const char *id;
597600
FieldElement contract_address;
601+
U256 token_id;
598602
const char *name;
599603
const char *symbol;
600604
uint8_t decimals;
601605
const char *metadata;
602606
};
603607

604608
struct TokenBalance {
605-
uint64_t balance[4];
606-
#if defined(TARGET_POINTER_WIDTH_32)
607-
uint32_t balance[8]
608-
#endif
609-
;
609+
U256 balance;
610610
FieldElement account_address;
611611
FieldElement contract_address;
612-
const char *token_id;
612+
U256 token_id;
613613
};
614614

615615
struct IndexerUpdate {
@@ -947,7 +947,6 @@ extern "C" {
947947
/// # Returns
948948
/// Result containing pointer to new ToriiClient instance or error
949949
Result<ToriiClient*> client_new(const char *torii_url,
950-
const char *rpc_url,
951950
const char *libp2p_relay_url,
952951
FieldElement world);
953952

@@ -1144,7 +1143,7 @@ Result<CArray<Entity>> client_event_messages(ToriiClient *client,
11441143
///
11451144
/// # Returns
11461145
/// WorldMetadata structure containing world information
1147-
WorldMetadata client_metadata(ToriiClient *client);
1146+
Result<WorldMetadata> client_metadata(ToriiClient *client);
11481147

11491148
/// Subscribes to entity state updates
11501149
///
@@ -1236,7 +1235,9 @@ Result<Subscription*> client_on_starknet_event(ToriiClient *client,
12361235
/// Result containing array of Token information or error
12371236
Result<CArray<Token>> client_tokens(ToriiClient *client,
12381237
const FieldElement *contract_addresses,
1239-
uintptr_t contract_addresses_len);
1238+
uintptr_t contract_addresses_len,
1239+
const U256 *token_ids,
1240+
uintptr_t token_ids_len);
12401241

12411242
/// Subscribes to token updates
12421243
///
@@ -1250,6 +1251,8 @@ Result<CArray<Token>> client_tokens(ToriiClient *client,
12501251
Result<Subscription*> client_on_token_update(ToriiClient *client,
12511252
const FieldElement *contract_addresses,
12521253
uintptr_t contract_addresses_len,
1254+
const U256 *token_ids,
1255+
uintptr_t token_ids_len,
12531256
void (*callback)(Token));
12541257

12551258
/// Gets token balances for given accounts and contracts
@@ -1267,7 +1270,9 @@ Result<CArray<TokenBalance>> client_token_balances(ToriiClient *client,
12671270
const FieldElement *contract_addresses,
12681271
uintptr_t contract_addresses_len,
12691272
const FieldElement *account_addresses,
1270-
uintptr_t account_addresses_len);
1273+
uintptr_t account_addresses_len,
1274+
const U256 *token_ids,
1275+
uintptr_t token_ids_len);
12711276

12721277
/// Subscribes to indexer updates
12731278
///
@@ -1299,6 +1304,8 @@ Result<Subscription*> client_on_token_balance_update(ToriiClient *client,
12991304
uintptr_t contract_addresses_len,
13001305
const FieldElement *account_addresses,
13011306
uintptr_t account_addresses_len,
1307+
const U256 *token_ids,
1308+
uintptr_t token_ids_len,
13021309
void (*callback)(TokenBalance));
13031310

13041311
/// Updates an existing token balance subscription
@@ -1318,7 +1325,9 @@ Result<bool> client_update_token_balance_subscription(ToriiClient *client,
13181325
const FieldElement *contract_addresses,
13191326
uintptr_t contract_addresses_len,
13201327
const FieldElement *account_addresses,
1321-
uintptr_t account_addresses_len);
1328+
uintptr_t account_addresses_len,
1329+
const U256 *token_ids,
1330+
uintptr_t token_ids_len);
13221331

13231332
/// Serializes a string into a byte array
13241333
///

0 commit comments

Comments
 (0)