@exodus/analytics-validation 2.77.1 → 2.79.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 (34) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/lib/common-properties.schemasafe.json +34 -0
  3. package/lib/events.d.ts +174 -1
  4. package/lib/index.js +7 -2
  5. package/lib/main.schemasafe.json +81 -0
  6. package/lib/pay/pay-onboarding-screen-view.schemasafe.json +0 -11
  7. package/lib/predictions/pay-predictions-account-activate.schemasafe.json +25 -0
  8. package/lib/predictions/pay-predictions-buy-abandon-during-processing.schemasafe.json +42 -0
  9. package/lib/predictions/pay-predictions-buy-confirm.schemasafe.json +50 -0
  10. package/lib/predictions/pay-predictions-buy-fail.schemasafe.json +45 -0
  11. package/lib/predictions/pay-predictions-buy-fund-trigger.schemasafe.json +34 -0
  12. package/lib/predictions/pay-predictions-buy-insufficient-funds.schemasafe.json +42 -0
  13. package/lib/predictions/pay-predictions-buy-option-change.schemasafe.json +48 -0
  14. package/lib/predictions/pay-predictions-buy-start.schemasafe.json +52 -0
  15. package/lib/predictions/pay-predictions-buy-success.schemasafe.json +61 -0
  16. package/lib/predictions/pay-predictions-fund-entry.schemasafe.json +37 -0
  17. package/lib/predictions/pay-predictions-history-item-tap.schemasafe.json +37 -0
  18. package/lib/predictions/pay-predictions-history-view.schemasafe.json +38 -0
  19. package/lib/predictions/pay-predictions-market-detail-open.schemasafe.json +34 -0
  20. package/lib/predictions/pay-predictions-market-resolve.schemasafe.json +51 -0
  21. package/lib/predictions/pay-predictions-market-swipe.schemasafe.json +37 -0
  22. package/lib/predictions/pay-predictions-market-view.schemasafe.json +56 -0
  23. package/lib/predictions/pay-predictions-open.schemasafe.json +29 -0
  24. package/lib/predictions/pay-predictions-position-tap.schemasafe.json +37 -0
  25. package/lib/predictions/pay-predictions-position-view.schemasafe.json +51 -0
  26. package/lib/predictions/pay-predictions-positions-see-all.schemasafe.json +30 -0
  27. package/lib/predictions/pay-predictions-search.schemasafe.json +34 -0
  28. package/lib/predictions/pay-predictions-sell-fail.schemasafe.json +45 -0
  29. package/lib/predictions/pay-predictions-sell-start.schemasafe.json +45 -0
  30. package/lib/predictions/pay-predictions-sell-success.schemasafe.json +44 -0
  31. package/lib/predictions/pay-predictions-tab-select.schemasafe.json +34 -0
  32. package/lib/predictions/pay-predictions-view-mode-change.schemasafe.json +32 -0
  33. package/lib/predictions/pay-predictions-winnings-claim.schemasafe.json +44 -0
  34. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.79.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/analytics-validation@2.78.0...@exodus/analytics-validation@2.79.0) (2026-06-03)
7
+
8
+ **Note:** Version bump only for package @exodus/analytics-validation
9
+
10
+ ## [2.78.0](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/analytics-validation@2.77.1...@exodus/analytics-validation@2.78.0) (2026-06-02)
11
+
12
+ ### Features
13
+
14
+ - **analytics-validation:** add Predictions event schemas ([#16521](https://github.com/ExodusMovement/exodus-hydra/issues/16521)) ([9cb302b](https://github.com/ExodusMovement/exodus-hydra/commit/9cb302becb668e279837e01acc087d04474d2f84)), closes [ExodusMovement/exodus-mobile#39181](https://github.com/ExodusMovement/exodus-mobile/issues/39181)
15
+
6
16
  ## [2.77.1](https://github.com/ExodusMovement/exodus-hydra/compare/@exodus/analytics-validation@2.77.0...@exodus/analytics-validation@2.77.1) (2026-05-26)
7
17
 
8
18
  **Note:** Version bump only for package @exodus/analytics-validation
@@ -15,6 +15,40 @@
15
15
  }
16
16
  },
17
17
  "$comment": "It explicitly omits the 'unevaluatedProperties' keyword to make it usable with 'allOf' syntax."
18
+ },
19
+ "predictionsProperties": {
20
+ "description": "Global properties shared by every Predictions (PayPredictions*) event.",
21
+ "type": "object",
22
+ "required": [],
23
+ "properties": {
24
+ "funded_state": {
25
+ "enum": ["funded", "non_funded"]
26
+ },
27
+ "entry_source": {
28
+ "enum": ["tab_nav", "deeplink", "p2p_share", "rewards_card", "home_recommendation"]
29
+ },
30
+ "user_type": {
31
+ "type": "string",
32
+ "format": "any-string"
33
+ },
34
+ "prediction_account_activated": {
35
+ "type": "boolean"
36
+ },
37
+ "view_mode": {
38
+ "enum": ["card", "list"]
39
+ },
40
+ "provider": {
41
+ "enum": ["polymarket", "kalshi"]
42
+ },
43
+ "market_type": {
44
+ "enum": ["binary", "multi"]
45
+ },
46
+ "balance_usd_at_event": {
47
+ "type": "number",
48
+ "minimum": 0
49
+ }
50
+ },
51
+ "$comment": "It explicitly omits the 'unevaluatedProperties' keyword to make it usable with 'allOf' syntax."
18
52
  }
19
53
  },
20
54
  "properties": {
package/lib/events.d.ts CHANGED
@@ -83,6 +83,17 @@ export type AnalyticsCommonProperties = {
83
83
  payHasSavedDepositMethod?: boolean
84
84
  }
85
85
 
86
+ export type PredictionsProperties = {
87
+ fundedState?: "funded" | "non_funded"
88
+ entrySource?: "tab_nav" | "deeplink" | "p2p_share" | "rewards_card" | "home_recommendation"
89
+ userType?: string
90
+ predictionAccountActivated?: boolean
91
+ viewMode?: "card" | "list"
92
+ provider?: "polymarket" | "kalshi"
93
+ marketType?: "binary" | "multi"
94
+ balanceUsdAtEvent?: number
95
+ }
96
+
86
97
  export type Web3Properties = {
87
98
  dappDomain?: string
88
99
  }
@@ -845,7 +856,6 @@ export interface AnalyticsEventMap {
845
856
  screenName?: string
846
857
  screenIndex?: number
847
858
  inviteCode?: string | number | null
848
- origin?: "default-region" | "invite-code" | "xo-cash" | "wallet-banner" | "classic-wallet-menu" | "spend-card-promo"
849
859
  }
850
860
  "PayOnboardingSlidesView": {
851
861
  origin?: "default-region" | "invite-code" | "xo-cash" | "wallet-banner" | "classic-wallet-menu" | "spend-card-promo"
@@ -879,6 +889,169 @@ export interface AnalyticsEventMap {
879
889
  "PayPayQRScan": {}
880
890
  "PayPayQRScannerView": {}
881
891
  "PayPayView": {}
892
+ "PayPredictionsAccountActivate": {} & PredictionsProperties
893
+ "PayPredictionsBuyAbandonDuringProcessing": {
894
+ marketId?: string
895
+ optionId?: string
896
+ amountUsd?: number
897
+ msInPendingState?: number
898
+ } & PredictionsProperties
899
+ "PayPredictionsBuyConfirm": {
900
+ marketId?: string
901
+ optionId?: string
902
+ amountUsd?: number
903
+ feeUsd?: number
904
+ rewardPct?: number
905
+ expectedPayoutUsd?: number
906
+ } & PredictionsProperties
907
+ "PayPredictionsBuyFail": {
908
+ marketId?: string
909
+ optionId?: string
910
+ amountUsd?: number
911
+ failureReason?: "provider_error" | "network" | "market_closed" | "price_changed" | "other"
912
+ errorCode?: string
913
+ } & PredictionsProperties
914
+ "PayPredictionsBuyFundTrigger": {
915
+ marketId?: string
916
+ amountAttemptedUsd?: number
917
+ } & PredictionsProperties
918
+ "PayPredictionsBuyInsufficientFunds": {
919
+ marketId?: string
920
+ amountAttemptedUsd?: number
921
+ balanceUsd?: number
922
+ shortfallUsd?: number
923
+ } & PredictionsProperties
924
+ "PayPredictionsBuyOptionChange": {
925
+ marketId?: string
926
+ fromOptionId?: string
927
+ toOptionId?: string
928
+ fromOptionPrice?: number
929
+ toOptionPrice?: number
930
+ amountEnteredUsd?: number
931
+ } & PredictionsProperties
932
+ "PayPredictionsBuyStart": {
933
+ marketId?: string
934
+ optionSelected?: string
935
+ optionId?: string
936
+ optionPrice?: number
937
+ rewardPct?: number
938
+ availableBalanceUsd?: number
939
+ isPositionExisting?: boolean
940
+ } & PredictionsProperties
941
+ "PayPredictionsBuySuccess": {
942
+ marketId?: string
943
+ optionId?: string
944
+ positionId?: string
945
+ amountUsd?: number
946
+ feeUsd?: number
947
+ rewardPct?: number
948
+ expectedPayoutUsd?: number
949
+ isFirstBuy?: boolean
950
+ latencyMs?: number
951
+ } & PredictionsProperties
952
+ "PayPredictionsFundEntry": {
953
+ source?: "empty_state" | "insufficient_funds" | "proactive_top_up"
954
+ marketId?: string
955
+ amountPrefilledUsd?: number
956
+ } & PredictionsProperties
957
+ "PayPredictionsHistoryItemTap": {
958
+ positionId?: string
959
+ marketId?: string
960
+ positionStatus?: "active" | "won" | "lost" | "void"
961
+ } & PredictionsProperties
962
+ "PayPredictionsHistoryView": {
963
+ positionsCount?: number
964
+ activeCount?: number
965
+ resolvedCount?: number
966
+ } & PredictionsProperties
967
+ "PayPredictionsMarketDetailOpen": {
968
+ marketId?: string
969
+ sourceSurface?: string
970
+ } & PredictionsProperties
971
+ "PayPredictionsMarketResolve": {
972
+ positionId?: string
973
+ marketId?: string
974
+ outcome?: "won" | "lost" | "void"
975
+ payoutUsd?: number
976
+ costBasisUsd?: number
977
+ realizedPnlUsd?: number
978
+ source?: "client"
979
+ } & PredictionsProperties
980
+ "PayPredictionsMarketSwipe": {
981
+ marketId?: string
982
+ direction?: "left" | "right" | "up" | "down"
983
+ viewDurationMs?: number
984
+ } & PredictionsProperties
985
+ "PayPredictionsMarketView": {
986
+ marketId?: string
987
+ marketCategory?: string
988
+ marketQuestion?: string
989
+ optionsCount?: number
990
+ timeRemainingSeconds?: number
991
+ marketVolumeUsd?: number
992
+ surface?: "feed" | "detail" | "history" | "search_results"
993
+ position?: number
994
+ } & PredictionsProperties
995
+ "PayPredictionsOpen": {
996
+ isFirstOpen?: boolean
997
+ } & PredictionsProperties
998
+ "PayPredictionsPositionsSeeAll": {
999
+ activePositionsCount?: number
1000
+ } & PredictionsProperties
1001
+ "PayPredictionsPositionTap": {
1002
+ positionId?: string
1003
+ marketId?: string
1004
+ unrealizedPnlPct?: number
1005
+ } & PredictionsProperties
1006
+ "PayPredictionsPositionView": {
1007
+ positionId?: string
1008
+ marketId?: string
1009
+ currentValueUsd?: number
1010
+ costBasisUsd?: number
1011
+ unrealizedPnlUsd?: number
1012
+ unrealizedPnlPct?: number
1013
+ timeToResolutionSeconds?: number
1014
+ } & PredictionsProperties
1015
+ "PayPredictionsSearch": {
1016
+ queryLength?: number
1017
+ resultsCount?: number
1018
+ } & PredictionsProperties
1019
+ "PayPredictionsSellFail": {
1020
+ positionId?: string
1021
+ marketId?: string
1022
+ sellAmountUsd?: number
1023
+ failureReason?: "provider_error" | "network" | "market_closed" | "price_changed" | "other"
1024
+ errorCode?: string
1025
+ } & PredictionsProperties
1026
+ "PayPredictionsSellStart": {
1027
+ positionId?: string
1028
+ marketId?: string
1029
+ currentPositionValueUsd?: number
1030
+ costBasisUsd?: number
1031
+ unrealizedPnlUsd?: number
1032
+ } & PredictionsProperties
1033
+ "PayPredictionsSellSuccess": {
1034
+ positionId?: string
1035
+ marketId?: string
1036
+ sellAmountUsd?: number
1037
+ realizedPnlUsd?: number
1038
+ isFirstSell?: boolean
1039
+ } & PredictionsProperties
1040
+ "PayPredictionsTabSelect": {
1041
+ tabName?: string
1042
+ tabPosition?: number
1043
+ } & PredictionsProperties
1044
+ "PayPredictionsViewModeChange": {
1045
+ fromMode?: "card" | "list"
1046
+ toMode?: "card" | "list"
1047
+ } & PredictionsProperties
1048
+ "PayPredictionsWinningsClaim": {
1049
+ positionId?: string
1050
+ marketId?: string
1051
+ payoutUsd?: number
1052
+ claimMethod?: "auto" | "manual"
1053
+ isFirstClaim?: boolean
1054
+ } & PredictionsProperties
882
1055
  "PayProfileDirectDepositShareTap": {}
883
1056
  "PayProfileDirectDepositView": {}
884
1057
  "PayProfilePaymentMethodsAdd": {
package/lib/index.js CHANGED
@@ -1,2 +1,7 @@
1
- import validateEvent from './main.schemasafe.json';
2
- export default validateEvent;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const main_schemasafe_json_1 = __importDefault(require("./main.schemasafe.json"));
7
+ exports.default = main_schemasafe_json_1.default;
@@ -656,6 +656,87 @@
656
656
  {
657
657
  "$ref": "performance-view-render#"
658
658
  },
659
+ {
660
+ "$ref": "pay-predictions-account-activate#"
661
+ },
662
+ {
663
+ "$ref": "pay-predictions-buy-abandon-during-processing#"
664
+ },
665
+ {
666
+ "$ref": "pay-predictions-buy-confirm#"
667
+ },
668
+ {
669
+ "$ref": "pay-predictions-buy-fail#"
670
+ },
671
+ {
672
+ "$ref": "pay-predictions-buy-fund-trigger#"
673
+ },
674
+ {
675
+ "$ref": "pay-predictions-buy-insufficient-funds#"
676
+ },
677
+ {
678
+ "$ref": "pay-predictions-buy-option-change#"
679
+ },
680
+ {
681
+ "$ref": "pay-predictions-buy-start#"
682
+ },
683
+ {
684
+ "$ref": "pay-predictions-buy-success#"
685
+ },
686
+ {
687
+ "$ref": "pay-predictions-fund-entry#"
688
+ },
689
+ {
690
+ "$ref": "pay-predictions-history-item-tap#"
691
+ },
692
+ {
693
+ "$ref": "pay-predictions-history-view#"
694
+ },
695
+ {
696
+ "$ref": "pay-predictions-market-detail-open#"
697
+ },
698
+ {
699
+ "$ref": "pay-predictions-market-resolve#"
700
+ },
701
+ {
702
+ "$ref": "pay-predictions-market-swipe#"
703
+ },
704
+ {
705
+ "$ref": "pay-predictions-market-view#"
706
+ },
707
+ {
708
+ "$ref": "pay-predictions-open#"
709
+ },
710
+ {
711
+ "$ref": "pay-predictions-position-tap#"
712
+ },
713
+ {
714
+ "$ref": "pay-predictions-position-view#"
715
+ },
716
+ {
717
+ "$ref": "pay-predictions-positions-see-all#"
718
+ },
719
+ {
720
+ "$ref": "pay-predictions-search#"
721
+ },
722
+ {
723
+ "$ref": "pay-predictions-sell-fail#"
724
+ },
725
+ {
726
+ "$ref": "pay-predictions-sell-start#"
727
+ },
728
+ {
729
+ "$ref": "pay-predictions-sell-success#"
730
+ },
731
+ {
732
+ "$ref": "pay-predictions-tab-select#"
733
+ },
734
+ {
735
+ "$ref": "pay-predictions-view-mode-change#"
736
+ },
737
+ {
738
+ "$ref": "pay-predictions-winnings-claim#"
739
+ },
659
740
  {
660
741
  "$ref": "profile-features-order-change#"
661
742
  },
@@ -22,17 +22,6 @@
22
22
  },
23
23
  "invite_code": {
24
24
  "type": ["string", "number", "null"]
25
- },
26
- "origin": {
27
- "type": "string",
28
- "enum": [
29
- "default-region",
30
- "invite-code",
31
- "xo-cash",
32
- "wallet-banner",
33
- "classic-wallet-menu",
34
- "spend-card-promo"
35
- ]
36
25
  }
37
26
  },
38
27
  "unevaluatedProperties": false
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayPredictionsAccountActivate"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ },
13
+ {
14
+ "$ref": "common-properties#/definitions/predictionsProperties"
15
+ }
16
+ ],
17
+ "type": "object",
18
+ "required": [],
19
+ "properties": {},
20
+ "unevaluatedProperties": false
21
+ }
22
+ },
23
+ "unevaluatedProperties": false,
24
+ "required": ["event", "properties"]
25
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayPredictionsBuyAbandonDuringProcessing"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ },
13
+ {
14
+ "$ref": "common-properties#/definitions/predictionsProperties"
15
+ }
16
+ ],
17
+ "type": "object",
18
+ "required": [],
19
+ "properties": {
20
+ "market_id": {
21
+ "type": "string",
22
+ "format": "any-string"
23
+ },
24
+ "option_id": {
25
+ "type": "string",
26
+ "format": "any-string"
27
+ },
28
+ "amount_usd": {
29
+ "type": "number",
30
+ "minimum": 0
31
+ },
32
+ "ms_in_pending_state": {
33
+ "type": "number",
34
+ "minimum": 0
35
+ }
36
+ },
37
+ "unevaluatedProperties": false
38
+ }
39
+ },
40
+ "unevaluatedProperties": false,
41
+ "required": ["event", "properties"]
42
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayPredictionsBuyConfirm"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ },
13
+ {
14
+ "$ref": "common-properties#/definitions/predictionsProperties"
15
+ }
16
+ ],
17
+ "type": "object",
18
+ "required": [],
19
+ "properties": {
20
+ "market_id": {
21
+ "type": "string",
22
+ "format": "any-string"
23
+ },
24
+ "option_id": {
25
+ "type": "string",
26
+ "format": "any-string"
27
+ },
28
+ "amount_usd": {
29
+ "type": "number",
30
+ "minimum": 0
31
+ },
32
+ "fee_usd": {
33
+ "type": "number",
34
+ "minimum": 0
35
+ },
36
+ "reward_pct": {
37
+ "type": "number",
38
+ "minimum": 0
39
+ },
40
+ "expected_payout_usd": {
41
+ "type": "number",
42
+ "minimum": 0
43
+ }
44
+ },
45
+ "unevaluatedProperties": false
46
+ }
47
+ },
48
+ "unevaluatedProperties": false,
49
+ "required": ["event", "properties"]
50
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayPredictionsBuyFail"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ },
13
+ {
14
+ "$ref": "common-properties#/definitions/predictionsProperties"
15
+ }
16
+ ],
17
+ "type": "object",
18
+ "required": [],
19
+ "properties": {
20
+ "market_id": {
21
+ "type": "string",
22
+ "format": "any-string"
23
+ },
24
+ "option_id": {
25
+ "type": "string",
26
+ "format": "any-string"
27
+ },
28
+ "amount_usd": {
29
+ "type": "number",
30
+ "minimum": 0
31
+ },
32
+ "failure_reason": {
33
+ "enum": ["provider_error", "network", "market_closed", "price_changed", "other"]
34
+ },
35
+ "error_code": {
36
+ "type": "string",
37
+ "format": "any-string"
38
+ }
39
+ },
40
+ "unevaluatedProperties": false
41
+ }
42
+ },
43
+ "unevaluatedProperties": false,
44
+ "required": ["event", "properties"]
45
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayPredictionsBuyFundTrigger"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ },
13
+ {
14
+ "$ref": "common-properties#/definitions/predictionsProperties"
15
+ }
16
+ ],
17
+ "type": "object",
18
+ "required": [],
19
+ "properties": {
20
+ "market_id": {
21
+ "type": "string",
22
+ "format": "any-string"
23
+ },
24
+ "amount_attempted_usd": {
25
+ "type": "number",
26
+ "minimum": 0
27
+ }
28
+ },
29
+ "unevaluatedProperties": false
30
+ }
31
+ },
32
+ "unevaluatedProperties": false,
33
+ "required": ["event", "properties"]
34
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayPredictionsBuyInsufficientFunds"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ },
13
+ {
14
+ "$ref": "common-properties#/definitions/predictionsProperties"
15
+ }
16
+ ],
17
+ "type": "object",
18
+ "required": [],
19
+ "properties": {
20
+ "market_id": {
21
+ "type": "string",
22
+ "format": "any-string"
23
+ },
24
+ "amount_attempted_usd": {
25
+ "type": "number",
26
+ "minimum": 0
27
+ },
28
+ "balance_usd": {
29
+ "type": "number",
30
+ "minimum": 0
31
+ },
32
+ "shortfall_usd": {
33
+ "type": "number",
34
+ "minimum": 0
35
+ }
36
+ },
37
+ "unevaluatedProperties": false
38
+ }
39
+ },
40
+ "unevaluatedProperties": false,
41
+ "required": ["event", "properties"]
42
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "event": {
6
+ "const": "PayPredictionsBuyOptionChange"
7
+ },
8
+ "properties": {
9
+ "allOf": [
10
+ {
11
+ "$ref": "common-properties#"
12
+ },
13
+ {
14
+ "$ref": "common-properties#/definitions/predictionsProperties"
15
+ }
16
+ ],
17
+ "type": "object",
18
+ "required": [],
19
+ "properties": {
20
+ "market_id": {
21
+ "type": "string",
22
+ "format": "any-string"
23
+ },
24
+ "from_option_id": {
25
+ "type": "string",
26
+ "format": "any-string"
27
+ },
28
+ "to_option_id": {
29
+ "type": "string",
30
+ "format": "any-string"
31
+ },
32
+ "from_option_price": {
33
+ "type": "number"
34
+ },
35
+ "to_option_price": {
36
+ "type": "number"
37
+ },
38
+ "amount_entered_usd": {
39
+ "type": "number",
40
+ "minimum": 0
41
+ }
42
+ },
43
+ "unevaluatedProperties": false
44
+ }
45
+ },
46
+ "unevaluatedProperties": false,
47
+ "required": ["event", "properties"]
48
+ }