@triadxyz/triad-protocol 0.1.0 → 0.1.1-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,32 @@ export type TriadProtocol = {
2
2
  version: '0.1.0';
3
3
  name: 'triad_protocol';
4
4
  instructions: [
5
+ {
6
+ name: 'createUserPosition';
7
+ accounts: [
8
+ {
9
+ name: 'signer';
10
+ isMut: true;
11
+ isSigner: true;
12
+ },
13
+ {
14
+ name: 'ticker';
15
+ isMut: true;
16
+ isSigner: false;
17
+ },
18
+ {
19
+ name: 'userPosition';
20
+ isMut: true;
21
+ isSigner: false;
22
+ },
23
+ {
24
+ name: 'systemProgram';
25
+ isMut: false;
26
+ isSigner: false;
27
+ }
28
+ ];
29
+ args: [];
30
+ },
5
31
  {
6
32
  name: 'createTicker';
7
33
  accounts: [
@@ -15,28 +41,252 @@ export type TriadProtocol = {
15
41
  isMut: true;
16
42
  isSigner: false;
17
43
  },
44
+ {
45
+ name: 'vault';
46
+ isMut: true;
47
+ isSigner: false;
48
+ },
49
+ {
50
+ name: 'payerTokenMint';
51
+ isMut: false;
52
+ isSigner: false;
53
+ },
54
+ {
55
+ name: 'tokenAccount';
56
+ isMut: true;
57
+ isSigner: false;
58
+ },
18
59
  {
19
60
  name: 'systemProgram';
20
61
  isMut: false;
21
62
  isSigner: false;
63
+ },
64
+ {
65
+ name: 'tokenProgram';
66
+ isMut: false;
67
+ isSigner: false;
22
68
  }
23
69
  ];
24
70
  args: [
25
71
  {
26
- name: 'arg';
72
+ name: 'args';
27
73
  type: {
28
74
  defined: 'CreateTickerArgs';
29
75
  };
30
76
  }
31
77
  ];
78
+ },
79
+ {
80
+ name: 'updateTickerPrice';
81
+ accounts: [
82
+ {
83
+ name: 'signer';
84
+ isMut: true;
85
+ isSigner: true;
86
+ },
87
+ {
88
+ name: 'ticker';
89
+ isMut: true;
90
+ isSigner: false;
91
+ },
92
+ {
93
+ name: 'systemProgram';
94
+ isMut: false;
95
+ isSigner: false;
96
+ }
97
+ ];
98
+ args: [
99
+ {
100
+ name: 'args';
101
+ type: {
102
+ defined: 'UpdateTickerPriceArgs';
103
+ };
104
+ }
105
+ ];
106
+ },
107
+ {
108
+ name: 'openPosition';
109
+ accounts: [
110
+ {
111
+ name: 'signer';
112
+ isMut: true;
113
+ isSigner: true;
114
+ },
115
+ {
116
+ name: 'ticker';
117
+ isMut: true;
118
+ isSigner: false;
119
+ },
120
+ {
121
+ name: 'vault';
122
+ isMut: true;
123
+ isSigner: false;
124
+ },
125
+ {
126
+ name: 'userPosition';
127
+ isMut: true;
128
+ isSigner: false;
129
+ },
130
+ {
131
+ name: 'vaultTokenAccount';
132
+ isMut: true;
133
+ isSigner: false;
134
+ },
135
+ {
136
+ name: 'userTokenAccount';
137
+ isMut: true;
138
+ isSigner: false;
139
+ },
140
+ {
141
+ name: 'systemProgram';
142
+ isMut: false;
143
+ isSigner: false;
144
+ },
145
+ {
146
+ name: 'tokenProgram';
147
+ isMut: false;
148
+ isSigner: false;
149
+ }
150
+ ];
151
+ args: [
152
+ {
153
+ name: 'args';
154
+ type: {
155
+ defined: 'OpenPositionArgs';
156
+ };
157
+ }
158
+ ];
159
+ },
160
+ {
161
+ name: 'closePosition';
162
+ accounts: [
163
+ {
164
+ name: 'signer';
165
+ isMut: true;
166
+ isSigner: true;
167
+ },
168
+ {
169
+ name: 'ticker';
170
+ isMut: true;
171
+ isSigner: false;
172
+ },
173
+ {
174
+ name: 'vault';
175
+ isMut: true;
176
+ isSigner: false;
177
+ },
178
+ {
179
+ name: 'userPosition';
180
+ isMut: true;
181
+ isSigner: false;
182
+ },
183
+ {
184
+ name: 'vaultTokenAccount';
185
+ isMut: true;
186
+ isSigner: false;
187
+ },
188
+ {
189
+ name: 'userTokenAccount';
190
+ isMut: true;
191
+ isSigner: false;
192
+ },
193
+ {
194
+ name: 'systemProgram';
195
+ isMut: false;
196
+ isSigner: false;
197
+ },
198
+ {
199
+ name: 'tokenProgram';
200
+ isMut: false;
201
+ isSigner: false;
202
+ }
203
+ ];
204
+ args: [
205
+ {
206
+ name: 'args';
207
+ type: {
208
+ defined: 'ClosePositionArgs';
209
+ };
210
+ }
211
+ ];
32
212
  }
33
213
  ];
34
214
  accounts: [
215
+ {
216
+ name: 'userPosition';
217
+ type: {
218
+ kind: 'struct';
219
+ fields: [
220
+ {
221
+ name: 'ts';
222
+ docs: ['timestamp'];
223
+ type: 'i64';
224
+ },
225
+ {
226
+ name: 'bump';
227
+ docs: ['bump seed'];
228
+ type: 'u8';
229
+ },
230
+ {
231
+ name: 'totalDeposited';
232
+ docs: ['total deposited'];
233
+ type: 'u64';
234
+ },
235
+ {
236
+ name: 'totalWithdrawn';
237
+ docs: ['total withdrawn'];
238
+ type: 'u64';
239
+ },
240
+ {
241
+ name: 'lpShare';
242
+ docs: ['total liquidity provided'];
243
+ type: 'u64';
244
+ },
245
+ {
246
+ name: 'totalPositions';
247
+ docs: ['total positions'];
248
+ type: 'u16';
249
+ },
250
+ {
251
+ name: 'ticker';
252
+ docs: ['ticker account'];
253
+ type: 'publicKey';
254
+ },
255
+ {
256
+ name: 'authority';
257
+ docs: ["user's authority"];
258
+ type: 'publicKey';
259
+ },
260
+ {
261
+ name: 'positions';
262
+ docs: ["user's position"];
263
+ type: {
264
+ array: [
265
+ {
266
+ defined: 'Position';
267
+ },
268
+ 3
269
+ ];
270
+ };
271
+ }
272
+ ];
273
+ };
274
+ },
35
275
  {
36
276
  name: 'ticker';
37
277
  type: {
38
278
  kind: 'struct';
39
279
  fields: [
280
+ {
281
+ name: 'initTs';
282
+ docs: ['timestamp of the creation of the ticker'];
283
+ type: 'i64';
284
+ },
285
+ {
286
+ name: 'updatedTs';
287
+ docs: ['timestamp of the last update of the ticker'];
288
+ type: 'i64';
289
+ },
40
290
  {
41
291
  name: 'bump';
42
292
  docs: ['The bump for the ticker pda'];
@@ -50,25 +300,140 @@ export type TriadProtocol = {
50
300
  {
51
301
  name: 'name';
52
302
  docs: ['name of the ticekt'];
53
- type: {
54
- array: ['u8', 32];
55
- };
303
+ type: 'string';
304
+ },
305
+ {
306
+ name: 'protocolProgramId';
307
+ docs: [
308
+ 'protocol program id like dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH to get data info'
309
+ ];
310
+ type: 'publicKey';
311
+ },
312
+ {
313
+ name: 'price';
314
+ docs: ['ticker price'];
315
+ type: 'u64';
316
+ },
317
+ {
318
+ name: 'vault';
319
+ docs: ['Vault PDA'];
320
+ type: 'publicKey';
321
+ }
322
+ ];
323
+ };
324
+ },
325
+ {
326
+ name: 'vault';
327
+ type: {
328
+ kind: 'struct';
329
+ fields: [
330
+ {
331
+ name: 'bump';
332
+ docs: ['The bump for the vault pda'];
333
+ type: 'u8';
334
+ },
335
+ {
336
+ name: 'authority';
337
+ docs: ['authority for the vault'];
338
+ type: 'publicKey';
339
+ },
340
+ {
341
+ name: 'name';
342
+ docs: ['name of the vault'];
343
+ type: 'string';
56
344
  },
57
345
  {
58
346
  name: 'tokenAccount';
59
- docs: ['token account for the ticker e.g. $tDRIFT'];
347
+ docs: ['token account for the vault e.g. tDRIFT'];
348
+ type: 'publicKey';
349
+ },
350
+ {
351
+ name: 'tickerAddress';
352
+ docs: ['ticker address'];
60
353
  type: 'publicKey';
61
354
  },
355
+ {
356
+ name: 'totalDeposited';
357
+ docs: ['lifetime total deposited'];
358
+ type: 'u64';
359
+ },
360
+ {
361
+ name: 'totalWithdrawn';
362
+ docs: ['lifetime total withdrawn'];
363
+ type: 'u64';
364
+ },
62
365
  {
63
366
  name: 'initTs';
64
- docs: ['timestamp ticker initialized'];
367
+ docs: ['timestamp vault initialized'];
65
368
  type: 'i64';
369
+ },
370
+ {
371
+ name: 'netDeposits';
372
+ docs: ['lifetime net deposits'];
373
+ type: 'u128';
374
+ },
375
+ {
376
+ name: 'netWithdraws';
377
+ docs: ['lifetime net withdraws'];
378
+ type: 'u128';
379
+ },
380
+ {
381
+ name: 'longBalance';
382
+ docs: ['Long bet balance'];
383
+ type: 'u64';
384
+ },
385
+ {
386
+ name: 'shortBalance';
387
+ docs: ['Short bet balance'];
388
+ type: 'u64';
389
+ },
390
+ {
391
+ name: 'longPositionsOpened';
392
+ docs: ['Opened long positions'];
393
+ type: 'u64';
394
+ },
395
+ {
396
+ name: 'shortPositionsOpened';
397
+ docs: ['Opened short positions'];
398
+ type: 'u64';
66
399
  }
67
400
  ];
68
401
  };
69
402
  }
70
403
  ];
71
404
  types: [
405
+ {
406
+ name: 'Position';
407
+ type: {
408
+ kind: 'struct';
409
+ fields: [
410
+ {
411
+ name: 'amount';
412
+ type: 'u64';
413
+ },
414
+ {
415
+ name: 'entryPrice';
416
+ type: 'u64';
417
+ },
418
+ {
419
+ name: 'ts';
420
+ type: 'i64';
421
+ },
422
+ {
423
+ name: 'isLong';
424
+ type: 'bool';
425
+ },
426
+ {
427
+ name: 'isOpen';
428
+ type: 'bool';
429
+ },
430
+ {
431
+ name: 'pnl';
432
+ type: 'i64';
433
+ }
434
+ ];
435
+ };
436
+ },
72
437
  {
73
438
  name: 'CreateTickerArgs';
74
439
  type: {
@@ -76,52 +441,221 @@ export type TriadProtocol = {
76
441
  fields: [
77
442
  {
78
443
  name: 'name';
79
- type: {
80
- array: ['u8', 32];
81
- };
444
+ type: 'string';
445
+ },
446
+ {
447
+ name: 'protocolProgramId';
448
+ type: 'publicKey';
82
449
  }
83
450
  ];
84
451
  };
452
+ },
453
+ {
454
+ name: 'UpdateTickerPriceArgs';
455
+ type: {
456
+ kind: 'struct';
457
+ fields: [
458
+ {
459
+ name: 'price';
460
+ type: 'u64';
461
+ }
462
+ ];
463
+ };
464
+ },
465
+ {
466
+ name: 'OpenPositionArgs';
467
+ type: {
468
+ kind: 'struct';
469
+ fields: [
470
+ {
471
+ name: 'amount';
472
+ type: 'u64';
473
+ },
474
+ {
475
+ name: 'isLong';
476
+ type: 'bool';
477
+ }
478
+ ];
479
+ };
480
+ },
481
+ {
482
+ name: 'ClosePositionArgs';
483
+ type: {
484
+ kind: 'struct';
485
+ fields: [
486
+ {
487
+ name: 'positionIndex';
488
+ type: 'u8';
489
+ }
490
+ ];
491
+ };
492
+ }
493
+ ];
494
+ events: [
495
+ {
496
+ name: 'OpenPositionRecord';
497
+ fields: [
498
+ {
499
+ name: 'amount';
500
+ type: 'u64';
501
+ index: false;
502
+ },
503
+ {
504
+ name: 'ticker';
505
+ type: 'publicKey';
506
+ index: false;
507
+ },
508
+ {
509
+ name: 'entryPrice';
510
+ type: 'u64';
511
+ index: false;
512
+ },
513
+ {
514
+ name: 'ts';
515
+ type: 'i64';
516
+ index: false;
517
+ },
518
+ {
519
+ name: 'isLong';
520
+ type: 'bool';
521
+ index: false;
522
+ },
523
+ {
524
+ name: 'user';
525
+ type: 'publicKey';
526
+ index: false;
527
+ }
528
+ ];
529
+ },
530
+ {
531
+ name: 'ClosePositionRecord';
532
+ fields: [
533
+ {
534
+ name: 'amount';
535
+ type: 'u64';
536
+ index: false;
537
+ },
538
+ {
539
+ name: 'ticker';
540
+ type: 'publicKey';
541
+ index: false;
542
+ },
543
+ {
544
+ name: 'closePrice';
545
+ type: 'u64';
546
+ index: false;
547
+ },
548
+ {
549
+ name: 'ts';
550
+ type: 'i64';
551
+ index: false;
552
+ },
553
+ {
554
+ name: 'isLong';
555
+ type: 'bool';
556
+ index: false;
557
+ },
558
+ {
559
+ name: 'pnl';
560
+ type: 'i64';
561
+ index: false;
562
+ },
563
+ {
564
+ name: 'user';
565
+ type: 'publicKey';
566
+ index: false;
567
+ }
568
+ ];
569
+ },
570
+ {
571
+ name: 'TickerPriceUpdateRecord';
572
+ fields: [
573
+ {
574
+ name: 'price';
575
+ type: 'u64';
576
+ index: false;
577
+ },
578
+ {
579
+ name: 'ts';
580
+ type: 'i64';
581
+ index: false;
582
+ },
583
+ {
584
+ name: 'ticker';
585
+ type: 'publicKey';
586
+ index: false;
587
+ }
588
+ ];
85
589
  }
86
590
  ];
87
591
  errors: [
88
592
  {
89
593
  code: 6000;
90
- name: 'InvalidAccount';
91
- msg: 'Invalid account';
594
+ name: 'UnauthorizedToDeleteProject';
595
+ msg: 'Unauthorized to delete the project';
92
596
  },
93
597
  {
94
598
  code: 6001;
95
- name: 'Unauthorized';
96
- msg: 'Unauthorized access';
599
+ name: 'InvalidShadowAccount';
600
+ msg: 'Invalid shadow account';
97
601
  },
98
602
  {
99
603
  code: 6002;
100
- name: 'InvalidOwnerAuthority';
101
- msg: 'Invalid owner authority';
604
+ name: 'InvalidAccount';
605
+ msg: 'Invalid account';
102
606
  },
103
607
  {
104
608
  code: 6003;
105
- name: 'InvalidMintAddress';
106
- msg: 'Invalid mint address';
609
+ name: 'Unauthorized';
610
+ msg: 'Unauthorized access';
107
611
  },
108
612
  {
109
613
  code: 6004;
110
- name: 'InvalidMaxTokens';
111
- msg: 'Invalid Max Tokens';
614
+ name: 'AlphaVantageApiError';
615
+ msg: 'Failed to get data from Vybe Network';
112
616
  },
113
617
  {
114
618
  code: 6005;
619
+ name: 'DepositFailed';
620
+ msg: 'Failed to deposit';
621
+ },
622
+ {
623
+ code: 6006;
624
+ name: 'InvalidOwnerAuthority';
625
+ msg: 'Invalid Owner authority';
626
+ },
627
+ {
628
+ code: 6007;
629
+ name: 'InvalidPosition';
630
+ msg: 'Invalid Position';
631
+ },
632
+ {
633
+ code: 6008;
634
+ name: 'InvalidTickerPosition';
635
+ msg: 'Invalid Ticker position';
636
+ },
637
+ {
638
+ code: 6009;
639
+ name: 'NoFreePositionSlot';
640
+ msg: 'No free position slot';
641
+ },
642
+ {
643
+ code: 6010;
644
+ name: 'InvalidMintAddress';
645
+ msg: 'Invalid Mint address';
646
+ },
647
+ {
648
+ code: 6011;
115
649
  name: 'InvalidProfitShare';
116
650
  msg: 'Invalid Profit Share';
117
651
  },
118
652
  {
119
- code: 6006;
653
+ code: 6012;
120
654
  name: 'InvalidDepositAmount';
121
655
  msg: 'Invalid Deposit Amount';
122
656
  },
123
657
  {
124
- code: 6007;
658
+ code: 6013;
125
659
  name: 'InvalidWithdrawAmount';
126
660
  msg: 'Invalid Withdraw Amount';
127
661
  }