-
Notifications
You must be signed in to change notification settings - Fork 3
/
tb_client.d
414 lines (388 loc) · 19.9 KB
/
tb_client.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
module modules.tb_client;
@nogc nothrow:
extern (C):
__gshared:
//////////////////////////////////////////////////////////
// This file was auto-generated by tb_client_header.zig //
// Do not manually modify. //
//////////////////////////////////////////////////////////
public import core.stdc.stdint;
import core.int128;
alias tb_uint128_t = Cent;
enum TB_ACCOUNT_FLAGS
{
TB_ACCOUNT_LINKED = 1 << 0,
TB_ACCOUNT_DEBITS_MUST_NOT_EXCEED_CREDITS = 1 << 1,
TB_ACCOUNT_CREDITS_MUST_NOT_EXCEED_DEBITS = 1 << 2,
}
alias TB_ACCOUNT_LINKED = TB_ACCOUNT_FLAGS.TB_ACCOUNT_LINKED;
alias TB_ACCOUNT_DEBITS_MUST_NOT_EXCEED_CREDITS = TB_ACCOUNT_FLAGS
.TB_ACCOUNT_DEBITS_MUST_NOT_EXCEED_CREDITS;
alias TB_ACCOUNT_CREDITS_MUST_NOT_EXCEED_DEBITS = TB_ACCOUNT_FLAGS
.TB_ACCOUNT_CREDITS_MUST_NOT_EXCEED_DEBITS;
struct tb_account_t
{
tb_uint128_t id;
tb_uint128_t debits_pending;
tb_uint128_t debits_posted;
tb_uint128_t credits_pending;
tb_uint128_t credits_posted;
tb_uint128_t user_data_128;
ulong user_data_64;
uint user_data_32;
uint reserved;
uint ledger;
ushort code;
ushort flags;
ulong timestamp;
}
enum TB_TRANSFER_FLAGS
{
TB_TRANSFER_LINKED = 1 << 0,
TB_TRANSFER_PENDING = 1 << 1,
TB_TRANSFER_POST_PENDING_TRANSFER = 1 << 2,
TB_TRANSFER_VOID_PENDING_TRANSFER = 1 << 3,
TB_TRANSFER_BALANCING_DEBIT = 1 << 4,
TB_TRANSFER_BALANCING_CREDIT = 1 << 5,
}
alias TB_TRANSFER_LINKED = TB_TRANSFER_FLAGS.TB_TRANSFER_LINKED;
alias TB_TRANSFER_PENDING = TB_TRANSFER_FLAGS.TB_TRANSFER_PENDING;
alias TB_TRANSFER_POST_PENDING_TRANSFER = TB_TRANSFER_FLAGS.TB_TRANSFER_POST_PENDING_TRANSFER;
alias TB_TRANSFER_VOID_PENDING_TRANSFER = TB_TRANSFER_FLAGS.TB_TRANSFER_VOID_PENDING_TRANSFER;
alias TB_TRANSFER_BALANCING_DEBIT = TB_TRANSFER_FLAGS.TB_TRANSFER_BALANCING_DEBIT;
alias TB_TRANSFER_BALANCING_CREDIT = TB_TRANSFER_FLAGS.TB_TRANSFER_BALANCING_CREDIT;
struct tb_transfer_t
{
tb_uint128_t id;
tb_uint128_t debit_account_id;
tb_uint128_t credit_account_id;
tb_uint128_t amount;
tb_uint128_t pending_id;
tb_uint128_t user_data_128;
ulong user_data_64;
uint user_data_32;
uint timeout;
uint ledger;
ushort code;
ushort flags;
ulong timestamp;
}
enum TB_CREATE_ACCOUNT_RESULT
{
TB_CREATE_ACCOUNT_OK = 0,
TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED = 1,
TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN = 2,
TB_CREATE_ACCOUNT_TIMESTAMP_MUST_BE_ZERO = 3,
TB_CREATE_ACCOUNT_RESERVED_FIELD = 4,
TB_CREATE_ACCOUNT_RESERVED_FLAG = 5,
TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_ZERO = 6,
TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = 7,
TB_CREATE_ACCOUNT_FLAGS_ARE_MUTUALLY_EXCLUSIVE = 8,
TB_CREATE_ACCOUNT_DEBITS_PENDING_MUST_BE_ZERO = 9,
TB_CREATE_ACCOUNT_DEBITS_POSTED_MUST_BE_ZERO = 10,
TB_CREATE_ACCOUNT_CREDITS_PENDING_MUST_BE_ZERO = 11,
TB_CREATE_ACCOUNT_CREDITS_POSTED_MUST_BE_ZERO = 12,
TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO = 13,
TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO = 14,
TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_FLAGS = 15,
TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_128 = 16,
TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_64 = 17,
TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_32 = 18,
TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_LEDGER = 19,
TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_CODE = 20,
TB_CREATE_ACCOUNT_EXISTS = 21,
}
alias TB_CREATE_ACCOUNT_OK = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_OK;
alias TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED;
alias TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN;
alias TB_CREATE_ACCOUNT_TIMESTAMP_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_TIMESTAMP_MUST_BE_ZERO;
alias TB_CREATE_ACCOUNT_RESERVED_FIELD = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_RESERVED_FIELD;
alias TB_CREATE_ACCOUNT_RESERVED_FLAG = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_RESERVED_FLAG;
alias TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_ZERO = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_ZERO;
alias TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_INT_MAX;
alias TB_CREATE_ACCOUNT_FLAGS_ARE_MUTUALLY_EXCLUSIVE = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_FLAGS_ARE_MUTUALLY_EXCLUSIVE;
alias TB_CREATE_ACCOUNT_DEBITS_PENDING_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_DEBITS_PENDING_MUST_BE_ZERO;
alias TB_CREATE_ACCOUNT_DEBITS_POSTED_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_DEBITS_POSTED_MUST_BE_ZERO;
alias TB_CREATE_ACCOUNT_CREDITS_PENDING_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_CREDITS_PENDING_MUST_BE_ZERO;
alias TB_CREATE_ACCOUNT_CREDITS_POSTED_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_CREDITS_POSTED_MUST_BE_ZERO;
alias TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO;
alias TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO;
alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_FLAGS = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_FLAGS;
alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_128 = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_128;
alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_64 = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_64;
alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_32 = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_32;
alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_LEDGER = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_LEDGER;
alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_CODE = TB_CREATE_ACCOUNT_RESULT
.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_CODE;
alias TB_CREATE_ACCOUNT_EXISTS = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_EXISTS;
enum TB_CREATE_TRANSFER_RESULT
{
TB_CREATE_TRANSFER_OK = 0,
TB_CREATE_TRANSFER_LINKED_EVENT_FAILED = 1,
TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN = 2,
TB_CREATE_TRANSFER_TIMESTAMP_MUST_BE_ZERO = 3,
TB_CREATE_TRANSFER_RESERVED_FLAG = 4,
TB_CREATE_TRANSFER_ID_MUST_NOT_BE_ZERO = 5,
TB_CREATE_TRANSFER_ID_MUST_NOT_BE_INT_MAX = 6,
TB_CREATE_TRANSFER_FLAGS_ARE_MUTUALLY_EXCLUSIVE = 7,
TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO = 8,
TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = 9,
TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO = 10,
TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = 11,
TB_CREATE_TRANSFER_ACCOUNTS_MUST_BE_DIFFERENT = 12,
TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_ZERO = 13,
TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_ZERO = 14,
TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_INT_MAX = 15,
TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_DIFFERENT = 16,
TB_CREATE_TRANSFER_TIMEOUT_RESERVED_FOR_PENDING_TRANSFER = 17,
TB_CREATE_TRANSFER_AMOUNT_MUST_NOT_BE_ZERO = 18,
TB_CREATE_TRANSFER_LEDGER_MUST_NOT_BE_ZERO = 19,
TB_CREATE_TRANSFER_CODE_MUST_NOT_BE_ZERO = 20,
TB_CREATE_TRANSFER_DEBIT_ACCOUNT_NOT_FOUND = 21,
TB_CREATE_TRANSFER_CREDIT_ACCOUNT_NOT_FOUND = 22,
TB_CREATE_TRANSFER_ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER = 23,
TB_CREATE_TRANSFER_TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS = 24,
TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_FOUND = 25,
TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_PENDING = 26,
TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID = 27,
TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID = 28,
TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_LEDGER = 29,
TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CODE = 30,
TB_CREATE_TRANSFER_EXCEEDS_PENDING_TRANSFER_AMOUNT = 31,
TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT = 32,
TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_POSTED = 33,
TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_VOIDED = 34,
TB_CREATE_TRANSFER_PENDING_TRANSFER_EXPIRED = 35,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_FLAGS = 36,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID = 37,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID = 38,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_AMOUNT = 39,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_PENDING_ID = 40,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_128 = 41,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_64 = 42,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_32 = 43,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_TIMEOUT = 44,
TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CODE = 45,
TB_CREATE_TRANSFER_EXISTS = 46,
TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_PENDING = 47,
TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_PENDING = 48,
TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_POSTED = 49,
TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_POSTED = 50,
TB_CREATE_TRANSFER_OVERFLOWS_DEBITS = 51,
TB_CREATE_TRANSFER_OVERFLOWS_CREDITS = 52,
TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT = 53,
TB_CREATE_TRANSFER_EXCEEDS_CREDITS = 54,
TB_CREATE_TRANSFER_EXCEEDS_DEBITS = 55,
}
alias TB_CREATE_TRANSFER_OK = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OK;
alias TB_CREATE_TRANSFER_LINKED_EVENT_FAILED = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_LINKED_EVENT_FAILED;
alias TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN;
alias TB_CREATE_TRANSFER_TIMESTAMP_MUST_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_TIMESTAMP_MUST_BE_ZERO;
alias TB_CREATE_TRANSFER_RESERVED_FLAG = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_RESERVED_FLAG;
alias TB_CREATE_TRANSFER_ID_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_ID_MUST_NOT_BE_ZERO;
alias TB_CREATE_TRANSFER_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_ID_MUST_NOT_BE_INT_MAX;
alias TB_CREATE_TRANSFER_FLAGS_ARE_MUTUALLY_EXCLUSIVE = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_FLAGS_ARE_MUTUALLY_EXCLUSIVE;
alias TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO;
alias TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX;
alias TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO;
alias TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX;
alias TB_CREATE_TRANSFER_ACCOUNTS_MUST_BE_DIFFERENT = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_ACCOUNTS_MUST_BE_DIFFERENT;
alias TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_ZERO;
alias TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_ZERO;
alias TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_INT_MAX;
alias TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_DIFFERENT = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_DIFFERENT;
alias TB_CREATE_TRANSFER_TIMEOUT_RESERVED_FOR_PENDING_TRANSFER = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_TIMEOUT_RESERVED_FOR_PENDING_TRANSFER;
alias TB_CREATE_TRANSFER_AMOUNT_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_AMOUNT_MUST_NOT_BE_ZERO;
alias TB_CREATE_TRANSFER_LEDGER_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_LEDGER_MUST_NOT_BE_ZERO;
alias TB_CREATE_TRANSFER_CODE_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_CODE_MUST_NOT_BE_ZERO;
alias TB_CREATE_TRANSFER_DEBIT_ACCOUNT_NOT_FOUND = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_DEBIT_ACCOUNT_NOT_FOUND;
alias TB_CREATE_TRANSFER_CREDIT_ACCOUNT_NOT_FOUND = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_CREDIT_ACCOUNT_NOT_FOUND;
alias TB_CREATE_TRANSFER_ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER;
alias TB_CREATE_TRANSFER_TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_FOUND = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_FOUND;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_PENDING = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_PENDING;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_LEDGER = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_LEDGER;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CODE = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CODE;
alias TB_CREATE_TRANSFER_EXCEEDS_PENDING_TRANSFER_AMOUNT = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXCEEDS_PENDING_TRANSFER_AMOUNT;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_POSTED = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_POSTED;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_VOIDED = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_VOIDED;
alias TB_CREATE_TRANSFER_PENDING_TRANSFER_EXPIRED = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_PENDING_TRANSFER_EXPIRED;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_FLAGS = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_FLAGS;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_AMOUNT = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_AMOUNT;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_PENDING_ID = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_PENDING_ID;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_128 = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_128;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_64 = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_64;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_32 = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_32;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_TIMEOUT = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_TIMEOUT;
alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CODE = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CODE;
alias TB_CREATE_TRANSFER_EXISTS = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS;
alias TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_PENDING = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_PENDING;
alias TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_PENDING = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_PENDING;
alias TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_POSTED = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_POSTED;
alias TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_POSTED = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_POSTED;
alias TB_CREATE_TRANSFER_OVERFLOWS_DEBITS = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_OVERFLOWS_DEBITS;
alias TB_CREATE_TRANSFER_OVERFLOWS_CREDITS = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_OVERFLOWS_CREDITS;
alias TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT;
alias TB_CREATE_TRANSFER_EXCEEDS_CREDITS = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXCEEDS_CREDITS;
alias TB_CREATE_TRANSFER_EXCEEDS_DEBITS = TB_CREATE_TRANSFER_RESULT
.TB_CREATE_TRANSFER_EXCEEDS_DEBITS;
struct tb_create_accounts_result_t
{
uint index;
uint result;
}
struct tb_create_transfers_result_t
{
uint index;
uint result;
}
enum TB_OPERATION
{
TB_OPERATION_CREATE_ACCOUNTS = 128,
TB_OPERATION_CREATE_TRANSFERS = 129,
TB_OPERATION_LOOKUP_ACCOUNTS = 130,
TB_OPERATION_LOOKUP_TRANSFERS = 131,
}
alias TB_OPERATION_CREATE_ACCOUNTS = TB_OPERATION.TB_OPERATION_CREATE_ACCOUNTS;
alias TB_OPERATION_CREATE_TRANSFERS = TB_OPERATION.TB_OPERATION_CREATE_TRANSFERS;
alias TB_OPERATION_LOOKUP_ACCOUNTS = TB_OPERATION.TB_OPERATION_LOOKUP_ACCOUNTS;
alias TB_OPERATION_LOOKUP_TRANSFERS = TB_OPERATION.TB_OPERATION_LOOKUP_TRANSFERS;
enum TB_PACKET_STATUS
{
TB_PACKET_OK = 0,
TB_PACKET_TOO_MUCH_DATA = 1,
TB_PACKET_INVALID_OPERATION = 2,
TB_PACKET_INVALID_DATA_SIZE = 3,
}
alias TB_PACKET_OK = TB_PACKET_STATUS.TB_PACKET_OK;
alias TB_PACKET_TOO_MUCH_DATA = TB_PACKET_STATUS.TB_PACKET_TOO_MUCH_DATA;
alias TB_PACKET_INVALID_OPERATION = TB_PACKET_STATUS.TB_PACKET_INVALID_OPERATION;
alias TB_PACKET_INVALID_DATA_SIZE = TB_PACKET_STATUS.TB_PACKET_INVALID_DATA_SIZE;
enum TB_PACKET_ACQUIRE_STATUS
{
TB_PACKET_ACQUIRE_OK = 0,
TB_PACKET_ACQUIRE_CONCURRENCY_MAX_EXCEEDED = 1,
TB_PACKET_ACQUIRE_SHUTDOWN = 2,
}
alias TB_PACKET_ACQUIRE_OK = TB_PACKET_ACQUIRE_STATUS.TB_PACKET_ACQUIRE_OK;
alias TB_PACKET_ACQUIRE_CONCURRENCY_MAX_EXCEEDED = TB_PACKET_ACQUIRE_STATUS
.TB_PACKET_ACQUIRE_CONCURRENCY_MAX_EXCEEDED;
alias TB_PACKET_ACQUIRE_SHUTDOWN = TB_PACKET_ACQUIRE_STATUS.TB_PACKET_ACQUIRE_SHUTDOWN;
struct tb_packet_t
{
tb_packet_t* next;
void* user_data;
ubyte operation;
ubyte status;
uint data_size;
void* data;
}
alias tb_client_t = void*;
enum TB_STATUS
{
TB_STATUS_SUCCESS = 0,
TB_STATUS_UNEXPECTED = 1,
TB_STATUS_OUT_OF_MEMORY = 2,
TB_STATUS_ADDRESS_INVALID = 3,
TB_STATUS_ADDRESS_LIMIT_EXCEEDED = 4,
TB_STATUS_CONCURRENCY_MAX_INVALID = 5,
TB_STATUS_SYSTEM_RESOURCES = 6,
TB_STATUS_NETWORK_SUBSYSTEM = 7,
}
alias TB_STATUS_SUCCESS = TB_STATUS.TB_STATUS_SUCCESS;
alias TB_STATUS_UNEXPECTED = TB_STATUS.TB_STATUS_UNEXPECTED;
alias TB_STATUS_OUT_OF_MEMORY = TB_STATUS.TB_STATUS_OUT_OF_MEMORY;
alias TB_STATUS_ADDRESS_INVALID = TB_STATUS.TB_STATUS_ADDRESS_INVALID;
alias TB_STATUS_ADDRESS_LIMIT_EXCEEDED = TB_STATUS.TB_STATUS_ADDRESS_LIMIT_EXCEEDED;
alias TB_STATUS_CONCURRENCY_MAX_INVALID = TB_STATUS.TB_STATUS_CONCURRENCY_MAX_INVALID;
alias TB_STATUS_SYSTEM_RESOURCES = TB_STATUS.TB_STATUS_SYSTEM_RESOURCES;
alias TB_STATUS_NETWORK_SUBSYSTEM = TB_STATUS.TB_STATUS_NETWORK_SUBSYSTEM;
@safe TB_STATUS tb_client_init(
tb_client_t* out_client,
tb_uint128_t cluster_id,
const(char)* address_ptr,
uint address_len,
uint packets_count,
uintptr_t on_completion_ctx,
void function(
uintptr_t, tb_client_t, tb_packet_t*, const(ubyte)*, uint) on_completion_fn);
@safe TB_STATUS tb_client_init_echo(tb_client_t* out_client, uint cluster_id, const(char)* address_ptr, uint address_len, uint packets_count, uintptr_t on_completion_ctx, void function(
uintptr_t, tb_client_t, tb_packet_t*, const(ubyte)*, uint) on_completion_fn);
@safe TB_PACKET_ACQUIRE_STATUS tb_client_acquire_packet(tb_client_t client, tb_packet_t** out_packet);
@safe void tb_client_release_packet(tb_client_t client, tb_packet_t* packet);
@safe void tb_client_submit(tb_client_t client, tb_packet_t* packet);
@safe void tb_client_deinit(tb_client_t client);