@ottochain/sdk 1.6.0 → 2.0.0

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.
Files changed (40) hide show
  1. package/dist/cjs/apps/contracts/index.js +18 -13
  2. package/dist/cjs/apps/contracts/state-machines/index.js +139 -7
  3. package/dist/cjs/apps/corporate/index.js +18 -20
  4. package/dist/cjs/apps/corporate/state-machines/index.js +535 -6336
  5. package/dist/cjs/apps/governance/index.js +32 -31
  6. package/dist/cjs/apps/governance/state-machines/index.js +498 -2315
  7. package/dist/cjs/apps/identity/index.js +15 -7
  8. package/dist/cjs/apps/identity/state-machines/index.js +516 -4
  9. package/dist/cjs/apps/index.js +15 -13
  10. package/dist/cjs/apps/markets/index.js +23 -10
  11. package/dist/cjs/apps/markets/state-machines/index.js +1904 -230
  12. package/dist/esm/apps/contracts/index.js +16 -13
  13. package/dist/esm/apps/contracts/state-machines/index.js +138 -6
  14. package/dist/esm/apps/corporate/index.js +14 -20
  15. package/dist/esm/apps/corporate/state-machines/index.js +534 -6335
  16. package/dist/esm/apps/governance/index.js +26 -30
  17. package/dist/esm/apps/governance/state-machines/index.js +497 -2314
  18. package/dist/esm/apps/identity/index.js +13 -7
  19. package/dist/esm/apps/identity/state-machines/index.js +515 -3
  20. package/dist/esm/apps/index.js +14 -12
  21. package/dist/esm/apps/markets/index.js +19 -10
  22. package/dist/esm/apps/markets/state-machines/index.js +1903 -229
  23. package/dist/types/apps/contracts/index.d.ts +661 -9
  24. package/dist/types/apps/contracts/state-machines/index.d.ts +109 -6
  25. package/dist/types/apps/corporate/index.d.ts +4015 -7
  26. package/dist/types/apps/corporate/state-machines/index.d.ts +472 -5587
  27. package/dist/types/apps/governance/index.d.ts +2151 -12
  28. package/dist/types/apps/governance/state-machines/index.d.ts +462 -1875
  29. package/dist/types/apps/identity/index.d.ts +601 -4
  30. package/dist/types/apps/identity/state-machines/index.d.ts +393 -3
  31. package/dist/types/apps/index.d.ts +14 -12
  32. package/dist/types/apps/markets/index.d.ts +1690 -7
  33. package/dist/types/apps/markets/state-machines/index.d.ts +1416 -184
  34. package/package.json +1 -1
  35. package/dist/cjs/apps/oracles/index.js +0 -59
  36. package/dist/cjs/apps/oracles/state-machines/index.js +0 -415
  37. package/dist/esm/apps/oracles/index.js +0 -42
  38. package/dist/esm/apps/oracles/state-machines/index.js +0 -412
  39. package/dist/types/apps/oracles/index.d.ts +0 -34
  40. package/dist/types/apps/oracles/state-machines/index.d.ts +0 -312
@@ -37,14 +37,20 @@ export const DEFAULT_REPUTATION_CONFIG = {
37
37
  challengeThreshold: 5,
38
38
  };
39
39
  // ---------------------------------------------------------------------------
40
- // State Machine Definition (generated from JSON at build time)
40
+ // State Machine Definitions (generated from JSON at build time)
41
41
  // ---------------------------------------------------------------------------
42
- import { agentIdentityDef } from './state-machines/index.js';
42
+ import { identityUniversalDef, identityAgentDef, identityOracleDef, } from './state-machines/index.js';
43
+ export { identityUniversalDef, identityAgentDef, identityOracleDef };
44
+ /** All identity state machine definitions */
45
+ export const IDENTITY_DEFINITIONS = {
46
+ universal: identityUniversalDef,
47
+ agent: identityAgentDef,
48
+ oracle: identityOracleDef,
49
+ };
43
50
  /**
44
- * Get the agent identity state machine definition.
45
- *
46
- * @returns The state machine definition JSON for AgentIdentity
51
+ * Get an identity state machine definition by type.
52
+ * @param type - 'universal' | 'agent' | 'oracle' (default: 'agent')
47
53
  */
48
- export function getIdentityDefinition() {
49
- return agentIdentityDef;
54
+ export function getIdentityDefinition(type = 'agent') {
55
+ return IDENTITY_DEFINITIONS[type];
50
56
  }
@@ -2,10 +2,10 @@
2
2
  * Auto-generated from JSON state machine definitions.
3
3
  * DO NOT EDIT - regenerate with: npm run prebuild
4
4
  */
5
- export const agentIdentityDef = {
5
+ export const identityAgentDef = {
6
6
  "metadata": {
7
- "name": "AgentIdentity",
8
- "description": "Decentralized agent identity with reputation tracking and lifecycle management",
7
+ "name": "IdentityAgent",
8
+ "description": "Standard agent identity with reputation tracking, vouching, and lifecycle management",
9
9
  "version": "1.0.0"
10
10
  },
11
11
  "states": {
@@ -272,3 +272,515 @@ export const agentIdentityDef = {
272
272
  }
273
273
  ]
274
274
  };
275
+ export const identityOracleDef = {
276
+ "metadata": {
277
+ "name": "IdentityOracle",
278
+ "description": "Oracle identity with staking, attestations, reputation, and slashing mechanics",
279
+ "version": "1.0.0"
280
+ },
281
+ "states": {
282
+ "UNREGISTERED": {
283
+ "id": "UNREGISTERED",
284
+ "isFinal": false,
285
+ "metadata": null
286
+ },
287
+ "REGISTERED": {
288
+ "id": "REGISTERED",
289
+ "isFinal": false,
290
+ "metadata": null
291
+ },
292
+ "ACTIVE": {
293
+ "id": "ACTIVE",
294
+ "isFinal": false,
295
+ "metadata": null
296
+ },
297
+ "SLASHED": {
298
+ "id": "SLASHED",
299
+ "isFinal": false,
300
+ "metadata": null
301
+ },
302
+ "WITHDRAWN": {
303
+ "id": "WITHDRAWN",
304
+ "isFinal": true,
305
+ "metadata": null
306
+ }
307
+ },
308
+ "initialState": "UNREGISTERED",
309
+ "transitions": [
310
+ {
311
+ "from": "UNREGISTERED",
312
+ "to": "REGISTERED",
313
+ "eventName": "register",
314
+ "guard": {
315
+ ">=": [
316
+ {
317
+ "var": "event.stake"
318
+ },
319
+ {
320
+ "var": "state.minStake"
321
+ }
322
+ ]
323
+ },
324
+ "effect": {
325
+ "merge": [
326
+ {
327
+ "var": "state"
328
+ },
329
+ {
330
+ "status": "REGISTERED",
331
+ "address": {
332
+ "var": "event.agent"
333
+ },
334
+ "stake": {
335
+ "var": "event.stake"
336
+ },
337
+ "registeredAt": {
338
+ "var": "$timestamp"
339
+ },
340
+ "reputation": {
341
+ "accuracy": 100,
342
+ "totalResolutions": 0,
343
+ "disputesWon": 0,
344
+ "disputesLost": 0
345
+ },
346
+ "domains": {
347
+ "var": "event.domains"
348
+ },
349
+ "slashingHistory": []
350
+ }
351
+ ]
352
+ },
353
+ "dependencies": []
354
+ },
355
+ {
356
+ "from": "REGISTERED",
357
+ "to": "ACTIVE",
358
+ "eventName": "activate",
359
+ "guard": {
360
+ "or": [
361
+ {
362
+ "===": [
363
+ {
364
+ "var": "event.agent"
365
+ },
366
+ {
367
+ "var": "state.address"
368
+ }
369
+ ]
370
+ },
371
+ {
372
+ "var": "event.adminOverride"
373
+ }
374
+ ]
375
+ },
376
+ "effect": {
377
+ "merge": [
378
+ {
379
+ "var": "state"
380
+ },
381
+ {
382
+ "status": "ACTIVE",
383
+ "activatedAt": {
384
+ "var": "$timestamp"
385
+ }
386
+ }
387
+ ]
388
+ },
389
+ "dependencies": []
390
+ },
391
+ {
392
+ "from": "ACTIVE",
393
+ "to": "ACTIVE",
394
+ "eventName": "add_stake",
395
+ "guard": {
396
+ "and": [
397
+ {
398
+ "===": [
399
+ {
400
+ "var": "event.agent"
401
+ },
402
+ {
403
+ "var": "state.address"
404
+ }
405
+ ]
406
+ },
407
+ {
408
+ ">": [
409
+ {
410
+ "var": "event.amount"
411
+ },
412
+ 0
413
+ ]
414
+ }
415
+ ]
416
+ },
417
+ "effect": {
418
+ "merge": [
419
+ {
420
+ "var": "state"
421
+ },
422
+ {
423
+ "stake": {
424
+ "+": [
425
+ {
426
+ "var": "state.stake"
427
+ },
428
+ {
429
+ "var": "event.amount"
430
+ }
431
+ ]
432
+ },
433
+ "lastStakeAt": {
434
+ "var": "$timestamp"
435
+ }
436
+ }
437
+ ]
438
+ },
439
+ "dependencies": []
440
+ },
441
+ {
442
+ "from": "ACTIVE",
443
+ "to": "ACTIVE",
444
+ "eventName": "record_resolution",
445
+ "guard": {
446
+ "var": "event.marketId"
447
+ },
448
+ "effect": {
449
+ "merge": [
450
+ {
451
+ "var": "state"
452
+ },
453
+ {
454
+ "reputation": {
455
+ "merge": [
456
+ {
457
+ "var": "state.reputation"
458
+ },
459
+ {
460
+ "totalResolutions": {
461
+ "+": [
462
+ {
463
+ "var": "state.reputation.totalResolutions"
464
+ },
465
+ 1
466
+ ]
467
+ },
468
+ "accuracy": {
469
+ "if": [
470
+ {
471
+ "var": "event.correct"
472
+ },
473
+ {
474
+ "var": "state.reputation.accuracy"
475
+ },
476
+ {
477
+ "-": [
478
+ {
479
+ "var": "state.reputation.accuracy"
480
+ },
481
+ 5
482
+ ]
483
+ }
484
+ ]
485
+ }
486
+ }
487
+ ]
488
+ },
489
+ "lastResolutionAt": {
490
+ "var": "$timestamp"
491
+ }
492
+ }
493
+ ]
494
+ },
495
+ "dependencies": []
496
+ },
497
+ {
498
+ "from": "ACTIVE",
499
+ "to": "SLASHED",
500
+ "eventName": "slash",
501
+ "guard": {
502
+ "and": [
503
+ {
504
+ "var": "event.reason"
505
+ },
506
+ {
507
+ ">": [
508
+ {
509
+ "var": "event.amount"
510
+ },
511
+ 0
512
+ ]
513
+ },
514
+ {
515
+ "<=": [
516
+ {
517
+ "var": "event.amount"
518
+ },
519
+ {
520
+ "var": "state.stake"
521
+ }
522
+ ]
523
+ }
524
+ ]
525
+ },
526
+ "effect": {
527
+ "merge": [
528
+ {
529
+ "var": "state"
530
+ },
531
+ {
532
+ "status": "SLASHED",
533
+ "stake": {
534
+ "-": [
535
+ {
536
+ "var": "state.stake"
537
+ },
538
+ {
539
+ "var": "event.amount"
540
+ }
541
+ ]
542
+ },
543
+ "slashingHistory": {
544
+ "cat": [
545
+ {
546
+ "var": "state.slashingHistory"
547
+ },
548
+ [
549
+ {
550
+ "reason": {
551
+ "var": "event.reason"
552
+ },
553
+ "amount": {
554
+ "var": "event.amount"
555
+ },
556
+ "marketId": {
557
+ "var": "event.marketId"
558
+ },
559
+ "slashedAt": {
560
+ "var": "$timestamp"
561
+ }
562
+ }
563
+ ]
564
+ ]
565
+ },
566
+ "slashedAt": {
567
+ "var": "$timestamp"
568
+ }
569
+ }
570
+ ]
571
+ },
572
+ "dependencies": []
573
+ },
574
+ {
575
+ "from": "SLASHED",
576
+ "to": "ACTIVE",
577
+ "eventName": "reactivate",
578
+ "guard": {
579
+ "and": [
580
+ {
581
+ "===": [
582
+ {
583
+ "var": "event.agent"
584
+ },
585
+ {
586
+ "var": "state.address"
587
+ }
588
+ ]
589
+ },
590
+ {
591
+ ">=": [
592
+ {
593
+ "var": "state.stake"
594
+ },
595
+ {
596
+ "var": "state.minStake"
597
+ }
598
+ ]
599
+ }
600
+ ]
601
+ },
602
+ "effect": {
603
+ "merge": [
604
+ {
605
+ "var": "state"
606
+ },
607
+ {
608
+ "status": "ACTIVE",
609
+ "reactivatedAt": {
610
+ "var": "$timestamp"
611
+ }
612
+ }
613
+ ]
614
+ },
615
+ "dependencies": []
616
+ },
617
+ {
618
+ "from": "ACTIVE",
619
+ "to": "WITHDRAWN",
620
+ "eventName": "withdraw",
621
+ "guard": {
622
+ "===": [
623
+ {
624
+ "var": "event.agent"
625
+ },
626
+ {
627
+ "var": "state.address"
628
+ }
629
+ ]
630
+ },
631
+ "effect": {
632
+ "merge": [
633
+ {
634
+ "var": "state"
635
+ },
636
+ {
637
+ "status": "WITHDRAWN",
638
+ "withdrawnAt": {
639
+ "var": "$timestamp"
640
+ },
641
+ "finalStake": {
642
+ "var": "state.stake"
643
+ }
644
+ }
645
+ ]
646
+ },
647
+ "dependencies": []
648
+ },
649
+ {
650
+ "from": "SLASHED",
651
+ "to": "WITHDRAWN",
652
+ "eventName": "withdraw",
653
+ "guard": {
654
+ "===": [
655
+ {
656
+ "var": "event.agent"
657
+ },
658
+ {
659
+ "var": "state.address"
660
+ }
661
+ ]
662
+ },
663
+ "effect": {
664
+ "merge": [
665
+ {
666
+ "var": "state"
667
+ },
668
+ {
669
+ "status": "WITHDRAWN",
670
+ "withdrawnAt": {
671
+ "var": "$timestamp"
672
+ },
673
+ "finalStake": {
674
+ "var": "state.stake"
675
+ }
676
+ }
677
+ ]
678
+ },
679
+ "dependencies": []
680
+ }
681
+ ]
682
+ };
683
+ export const identityUniversalDef = {
684
+ "metadata": {
685
+ "name": "IdentityUniversal",
686
+ "description": "Minimal identity state machine - extend for custom use cases",
687
+ "version": "1.0.0"
688
+ },
689
+ "states": {
690
+ "CREATED": {
691
+ "id": "CREATED",
692
+ "isFinal": false,
693
+ "metadata": null
694
+ },
695
+ "ACTIVE": {
696
+ "id": "ACTIVE",
697
+ "isFinal": false,
698
+ "metadata": null
699
+ },
700
+ "INACTIVE": {
701
+ "id": "INACTIVE",
702
+ "isFinal": true,
703
+ "metadata": null
704
+ }
705
+ },
706
+ "initialState": "CREATED",
707
+ "transitions": [
708
+ {
709
+ "from": "CREATED",
710
+ "to": "ACTIVE",
711
+ "eventName": "activate",
712
+ "guard": {
713
+ "==": [
714
+ 1,
715
+ 1
716
+ ]
717
+ },
718
+ "effect": {
719
+ "merge": [
720
+ {
721
+ "var": "state"
722
+ },
723
+ {
724
+ "status": "ACTIVE",
725
+ "activatedAt": {
726
+ "var": "$timestamp"
727
+ }
728
+ }
729
+ ]
730
+ },
731
+ "dependencies": []
732
+ },
733
+ {
734
+ "from": "ACTIVE",
735
+ "to": "ACTIVE",
736
+ "eventName": "update",
737
+ "guard": {
738
+ "==": [
739
+ 1,
740
+ 1
741
+ ]
742
+ },
743
+ "effect": {
744
+ "merge": [
745
+ {
746
+ "var": "state"
747
+ },
748
+ {
749
+ "updatedAt": {
750
+ "var": "$timestamp"
751
+ },
752
+ "metadata": {
753
+ "var": "event.metadata"
754
+ }
755
+ }
756
+ ]
757
+ },
758
+ "dependencies": []
759
+ },
760
+ {
761
+ "from": "ACTIVE",
762
+ "to": "INACTIVE",
763
+ "eventName": "deactivate",
764
+ "guard": {
765
+ "==": [
766
+ 1,
767
+ 1
768
+ ]
769
+ },
770
+ "effect": {
771
+ "merge": [
772
+ {
773
+ "var": "state"
774
+ },
775
+ {
776
+ "status": "INACTIVE",
777
+ "deactivatedAt": {
778
+ "var": "$timestamp"
779
+ }
780
+ }
781
+ ]
782
+ },
783
+ "dependencies": []
784
+ }
785
+ ]
786
+ };
@@ -3,22 +3,25 @@
3
3
  *
4
4
  * Application-specific types and utilities for OttoChain SDK.
5
5
  *
6
+ * Each app provides:
7
+ * - Universal state machine (minimal, extensible)
8
+ * - Specialized state machines (opinionated defaults)
9
+ * - getXxxDefinition() helper to retrieve definitions
10
+ *
6
11
  * @example
7
12
  * ```typescript
8
- * import { identity, contracts, markets, oracles, governance } from '@ottochain/sdk/apps';
13
+ * import { identity, contracts, markets, governance, corporate } from '@ottochain/sdk/apps';
9
14
  *
10
- * // Use identity types
11
- * const { AgentState } = identity;
15
+ * // Get identity definitions
16
+ * const agentDef = identity.getIdentityDefinition('agent');
17
+ * const oracleDef = identity.getIdentityDefinition('oracle');
12
18
  *
13
- * // Check oracle reputation
14
- * const state = oracles.OracleState.ACTIVE;
19
+ * // Get market definitions
20
+ * const predictionDef = markets.getMarketDefinition('prediction');
21
+ * const auctionDef = markets.getMarketDefinition('auction');
15
22
  *
16
- * // Create a multisig DAO
17
- * const dao = governance.createMultisigState({
18
- * name: 'Treasury',
19
- * signers: ['DAG...', 'DAG...', 'DAG...'],
20
- * threshold: 2
21
- * });
23
+ * // Get DAO definitions
24
+ * const multisigDef = governance.getGovernanceDefinition('daoMultisig');
22
25
  * ```
23
26
  *
24
27
  * @packageDocumentation
@@ -27,6 +30,5 @@
27
30
  export * as identity from './identity/index.js';
28
31
  export * as contracts from './contracts/index.js';
29
32
  export * as markets from './markets/index.js';
30
- export * as oracles from './oracles/index.js';
31
33
  export * as governance from './governance/index.js';
32
34
  export * as corporate from './corporate/index.js';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Markets Application
3
3
  *
4
- * Types and utilities for prediction markets on OttoChain.
4
+ * Types and utilities for markets on OttoChain: predictions, auctions, crowdfunding, group buys.
5
5
  *
6
6
  * @example
7
7
  * ```typescript
@@ -9,10 +9,12 @@
9
9
  * MarketType,
10
10
  * MarketState,
11
11
  * Market,
12
- * getMarketDefinition
12
+ * getMarketDefinition,
13
+ * MARKETS_DEFINITIONS
13
14
  * } from '@ottochain/sdk/apps/markets';
14
15
  *
15
- * const marketDef = getMarketDefinition();
16
+ * const predictionDef = getMarketDefinition('prediction');
17
+ * const auctionDef = getMarketDefinition('auction');
16
18
  * ```
17
19
  *
18
20
  * @packageDocumentation
@@ -20,15 +22,22 @@
20
22
  // Re-export generated protobuf types (source of truth)
21
23
  export { MarketType, MarketState, Commitment, Resolution, Market, CreateMarketRequest, CommitToMarketRequest, SubmitResolutionRequest, CancelMarketRequest, MarketDefinition, marketTypeFromJSON, marketTypeToJSON, marketStateFromJSON, marketStateToJSON, } from '../../generated/ottochain/apps/markets/v1/market.js';
22
24
  // ---------------------------------------------------------------------------
23
- // State Machine JSON Definitions
25
+ // State Machine Definitions (generated from JSON at build time)
24
26
  // ---------------------------------------------------------------------------
25
- import { marketUniversalDef } from './state-machines/index.js';
26
- export const MARKET_DEFINITIONS = {
27
- Universal: marketUniversalDef,
27
+ import { marketUniversalDef, marketPredictionDef, marketAuctionDef, marketCrowdfundDef, marketGroupBuyDef, } from './state-machines/index.js';
28
+ export { marketUniversalDef, marketPredictionDef, marketAuctionDef, marketCrowdfundDef, marketGroupBuyDef, };
29
+ /** All market state machine definitions */
30
+ export const MARKETS_DEFINITIONS = {
31
+ universal: marketUniversalDef,
32
+ prediction: marketPredictionDef,
33
+ auction: marketAuctionDef,
34
+ crowdfund: marketCrowdfundDef,
35
+ groupBuy: marketGroupBuyDef,
28
36
  };
29
37
  /**
30
- * Get the market state machine definition.
38
+ * Get a market state machine definition by type.
39
+ * @param type - 'universal' | 'prediction' | 'auction' | 'crowdfund' | 'groupBuy' (default: 'universal')
31
40
  */
32
- export function getMarketDefinition(type = 'Universal') {
33
- return MARKET_DEFINITIONS[type];
41
+ export function getMarketDefinition(type = 'universal') {
42
+ return MARKETS_DEFINITIONS[type];
34
43
  }