@coinbase-sample/prime-sdk-ts 0.6.3 → 0.7.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 (122) hide show
  1. package/dist/constants.js +1 -1
  2. package/dist/financing/index.js +9 -0
  3. package/dist/futures/index.js +18 -0
  4. package/dist/model/CrossMarginOverview.js +21 -0
  5. package/dist/model/EditOrderRequest.js +21 -0
  6. package/dist/model/EditOrderResponse.js +21 -0
  7. package/dist/model/GetCrossMarginOverviewResponse.js +21 -0
  8. package/dist/model/ListTransactionValidatorsRequest.js +21 -0
  9. package/dist/model/ListTransactionValidatorsResponse.js +21 -0
  10. package/dist/model/StakingClaimRewardsRequest.js +21 -0
  11. package/dist/model/StakingClaimRewardsResponse.js +21 -0
  12. package/dist/model/TransactionValidator.js +21 -0
  13. package/dist/model/WalletClaimRewardsInputs.js +21 -0
  14. package/dist/model/XMLoan.js +21 -0
  15. package/dist/model/XMMarginCall.js +21 -0
  16. package/dist/model/XMPosition.js +21 -0
  17. package/dist/model/XMRiskNettingInfo.js +21 -0
  18. package/dist/model/XMSummary.js +21 -0
  19. package/dist/model/enumPrefixes.js +330 -0
  20. package/dist/model/enums/ActivityCategory.js +0 -1
  21. package/dist/model/enums/ActivityLevel.js +3 -3
  22. package/dist/model/enums/AddressBookType.js +3 -3
  23. package/dist/model/enums/AllocationStatus.js +5 -5
  24. package/dist/model/enums/CustodyActivityType.js +29 -29
  25. package/dist/model/enums/DestinationType.js +4 -4
  26. package/dist/model/enums/FcmFuturesSweepStatus.js +5 -5
  27. package/dist/model/enums/FcmMarginCallState.js +5 -5
  28. package/dist/model/enums/FcmMarginCallType.js +3 -3
  29. package/dist/model/enums/HierarchyType.js +3 -3
  30. package/dist/model/enums/InvoiceState.js +5 -5
  31. package/dist/model/enums/InvoiceType.js +6 -6
  32. package/dist/model/enums/LoanType.js +1 -0
  33. package/dist/model/enums/NetworkFamily.js +3 -3
  34. package/dist/model/enums/NetworkType.js +3 -3
  35. package/dist/model/enums/PaymentMethodType.js +3 -3
  36. package/dist/model/enums/ProductPermissions.js +3 -3
  37. package/dist/model/enums/ValidatorStatus.js +31 -0
  38. package/dist/model/enums/WalletVisibility.js +3 -3
  39. package/dist/model/enums/XMCallStatus.js +33 -0
  40. package/dist/model/enums/XMCallType.js +31 -0
  41. package/dist/model/enums/XMControlStatus.js +32 -0
  42. package/dist/model/enums/XMEntityCallStatus.js +33 -0
  43. package/dist/model/enums/XMMarginLevel.js +34 -0
  44. package/dist/model/enums/XMParty.js +31 -0
  45. package/dist/model/enums/index.js +15 -1
  46. package/dist/orders/index.js +12 -0
  47. package/dist/paymentMethods/index.js +2 -1
  48. package/dist/shared/dynamicEnumValidation.js +184 -0
  49. package/dist/shared/dynamicEnumValidation.old.js +746 -0
  50. package/dist/shared/enumHelpers.js +219 -0
  51. package/dist/shared/enumRegistry.js +153 -0
  52. package/dist/shared/enumValidationCore.js +194 -0
  53. package/dist/shared/enumValidators.js +115 -0
  54. package/dist/shared/fieldMapping.js +242 -0
  55. package/dist/shared/serviceContext.js +157 -0
  56. package/dist/staking/index.js +37 -0
  57. package/dist/types/balances/types.d.ts +1 -1
  58. package/dist/types/constants.d.ts +1 -1
  59. package/dist/types/financing/index.d.ts +3 -1
  60. package/dist/types/financing/types.d.ts +5 -1
  61. package/dist/types/futures/index.d.ts +6 -1
  62. package/dist/types/futures/types.d.ts +9 -1
  63. package/dist/types/index.d.ts +3 -3
  64. package/dist/types/model/CrossMarginOverview.d.ts +39 -0
  65. package/dist/types/model/EditOrderRequest.d.ts +61 -0
  66. package/dist/types/model/EditOrderResponse.d.ts +25 -0
  67. package/dist/types/model/GetCrossMarginOverviewResponse.d.ts +23 -0
  68. package/dist/types/model/ListTransactionValidatorsRequest.d.ts +35 -0
  69. package/dist/types/model/ListTransactionValidatorsResponse.d.ts +28 -0
  70. package/dist/types/model/RFQProductDetails.d.ts +21 -0
  71. package/dist/types/model/StakingClaimRewardsRequest.d.ts +27 -0
  72. package/dist/types/model/StakingClaimRewardsResponse.d.ts +33 -0
  73. package/dist/types/model/TransactionValidator.d.ts +31 -0
  74. package/dist/types/model/WalletClaimRewardsInputs.d.ts +28 -0
  75. package/dist/types/model/XMLoan.d.ts +51 -0
  76. package/dist/types/model/XMMarginCall.d.ts +57 -0
  77. package/dist/types/model/XMPosition.d.ts +121 -0
  78. package/dist/types/model/XMRiskNettingInfo.d.ts +76 -0
  79. package/dist/types/model/XMSummary.d.ts +55 -0
  80. package/dist/types/model/enumPrefixes.d.ts +206 -0
  81. package/dist/types/model/enums/ActivityCategory.d.ts +0 -1
  82. package/dist/types/model/enums/ActivityLevel.d.ts +3 -3
  83. package/dist/types/model/enums/AddressBookType.d.ts +3 -3
  84. package/dist/types/model/enums/AllocationStatus.d.ts +5 -5
  85. package/dist/types/model/enums/CustodyActivityType.d.ts +29 -29
  86. package/dist/types/model/enums/DestinationType.d.ts +4 -4
  87. package/dist/types/model/enums/FcmFuturesSweepStatus.d.ts +5 -5
  88. package/dist/types/model/enums/FcmMarginCallState.d.ts +5 -5
  89. package/dist/types/model/enums/FcmMarginCallType.d.ts +3 -3
  90. package/dist/types/model/enums/HierarchyType.d.ts +3 -3
  91. package/dist/types/model/enums/InvoiceState.d.ts +5 -5
  92. package/dist/types/model/enums/InvoiceType.d.ts +6 -6
  93. package/dist/types/model/enums/LoanType.d.ts +2 -1
  94. package/dist/types/model/enums/NetworkFamily.d.ts +3 -3
  95. package/dist/types/model/enums/NetworkType.d.ts +3 -3
  96. package/dist/types/model/enums/PaymentMethodType.d.ts +3 -3
  97. package/dist/types/model/enums/ProductPermissions.d.ts +3 -3
  98. package/dist/types/model/enums/ValidatorStatus.d.ts +27 -0
  99. package/dist/types/model/enums/WalletVisibility.d.ts +3 -3
  100. package/dist/types/model/enums/XMCallStatus.d.ts +29 -0
  101. package/dist/types/model/enums/XMCallType.d.ts +27 -0
  102. package/dist/types/model/enums/XMControlStatus.d.ts +28 -0
  103. package/dist/types/model/enums/XMEntityCallStatus.d.ts +29 -0
  104. package/dist/types/model/enums/XMMarginLevel.d.ts +30 -0
  105. package/dist/types/model/enums/XMParty.d.ts +27 -0
  106. package/dist/types/model/enums/index.d.ts +7 -0
  107. package/dist/types/model/index.d.ts +15 -3
  108. package/dist/types/orders/index.d.ts +3 -1
  109. package/dist/types/orders/types.d.ts +6 -1
  110. package/dist/types/paymentMethods/types.d.ts +1 -0
  111. package/dist/types/shared/dynamicEnumValidation.d.ts +48 -0
  112. package/dist/types/shared/dynamicEnumValidation.old.d.ts +143 -0
  113. package/dist/types/shared/enumHelpers.d.ts +135 -0
  114. package/dist/types/shared/enumRegistry.d.ts +74 -0
  115. package/dist/types/shared/enumValidationCore.d.ts +68 -0
  116. package/dist/types/shared/enumValidators.d.ts +117 -0
  117. package/dist/types/shared/fieldMapping.d.ts +35 -0
  118. package/dist/types/shared/serviceContext.d.ts +46 -0
  119. package/dist/types/staking/index.d.ts +5 -1
  120. package/dist/types/staking/types.d.ts +13 -1
  121. package/dist/types/wallets/types.d.ts +1 -1
  122. package/package.json +5 -4
@@ -0,0 +1,242 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2025-present Coinbase Global, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.getFieldNameVariations = getFieldNameVariations;
19
+ exports.extractContextClues = extractContextClues;
20
+ exports.findEnumWithContext = findEnumWithContext;
21
+ exports.findEnumByFieldName = findEnumByFieldName;
22
+ exports.getDirectEnumMapping = getDirectEnumMapping;
23
+ /**
24
+ * Field-to-enum mapping logic for dynamic enum detection
25
+ */
26
+ const enumRegistry_1 = require("./enumRegistry");
27
+ const serviceContext_1 = require("./serviceContext");
28
+ /**
29
+ * Generate field name variations for plural/singular matching
30
+ */
31
+ function getFieldNameVariations(fieldName) {
32
+ const variations = [fieldName];
33
+ // Handle irregular plurals and common patterns
34
+ const irregularPlurals = {
35
+ categories: 'category',
36
+ statuses: 'status',
37
+ activities: 'activity',
38
+ entities: 'entity',
39
+ currencies: 'currency',
40
+ portfolios: 'portfolio',
41
+ };
42
+ const irregularSingulars = {
43
+ category: 'categories',
44
+ status: 'statuses',
45
+ activity: 'activities',
46
+ entity: 'entities',
47
+ currency: 'currencies',
48
+ portfolio: 'portfolios',
49
+ };
50
+ // Check irregular mappings first
51
+ if (irregularPlurals[fieldName]) {
52
+ variations.push(irregularPlurals[fieldName]);
53
+ }
54
+ if (irregularSingulars[fieldName]) {
55
+ variations.push(irregularSingulars[fieldName]);
56
+ }
57
+ // Handle regular -s plurals only if not already handled by irregular rules
58
+ if (!irregularPlurals[fieldName] && !irregularSingulars[fieldName]) {
59
+ if (fieldName.endsWith('s') && fieldName.length > 3) {
60
+ // Remove 's' for potential singular
61
+ const singular = fieldName.slice(0, -1);
62
+ // Avoid cases like "address" -> "addres"
63
+ if (!singular.endsWith('s')) {
64
+ variations.push(singular);
65
+ }
66
+ }
67
+ else {
68
+ // Add regular plural
69
+ variations.push(fieldName + 's');
70
+ }
71
+ }
72
+ return variations;
73
+ }
74
+ /**
75
+ * Extract context clues from field names to resolve enum ambiguity
76
+ */
77
+ function extractContextClues(fieldName) {
78
+ const clues = [];
79
+ const fieldLower = fieldName.toLowerCase();
80
+ // Extract prefix context (e.g., "activitystatus" → ["activity"])
81
+ const prefixMatch = fieldLower.match(/^([a-z]+?)(?:status|type|category)$/);
82
+ if (prefixMatch) {
83
+ clues.push(prefixMatch[1]);
84
+ }
85
+ // Extract camelCase components (e.g., "activityStatus" → ["activity"])
86
+ const camelComponents = fieldName
87
+ .replace(/([A-Z])/g, '_$1')
88
+ .toLowerCase()
89
+ .split('_')
90
+ .filter(Boolean);
91
+ clues.push(...camelComponents.slice(0, -1)); // Exclude the last component (status/type/category)
92
+ // Extract underscore/dash separated components
93
+ const separatedComponents = fieldName.toLowerCase().split(/[_-]+/);
94
+ clues.push(...separatedComponents.slice(0, -1));
95
+ return [...new Set(clues)]; // Remove duplicates
96
+ }
97
+ /**
98
+ * Find enum with context awareness to resolve collisions
99
+ */
100
+ function findEnumWithContext(fieldName, allEnumNames) {
101
+ // Handle ambiguous suffixes that appear in multiple enums
102
+ const ambiguousSuffixes = ['status', 'type', 'category'];
103
+ const fieldLower = fieldName.toLowerCase();
104
+ // Check if this is an ambiguous field name
105
+ const isAmbiguous = ambiguousSuffixes.some((suffix) => fieldLower.endsWith(suffix) || fieldLower === suffix);
106
+ if (isAmbiguous) {
107
+ // For ambiguous cases, look for context clues in the field name
108
+ const contextClues = extractContextClues(fieldName);
109
+ // Find enum that best matches the context
110
+ const matches = allEnumNames.filter((enumName) => {
111
+ const enumLower = enumName.toLowerCase();
112
+ // Exact compound match (e.g., "activitystatus" → "ActivityStatus")
113
+ if (enumLower === fieldLower)
114
+ return true;
115
+ // Context-based matching
116
+ for (const clue of contextClues) {
117
+ if (enumLower.includes(clue) &&
118
+ enumLower.endsWith(fieldLower.split(/(?=[a-z])/).pop() || '')) {
119
+ return true;
120
+ }
121
+ }
122
+ return false;
123
+ });
124
+ // Return the most specific match
125
+ if (matches.length === 1) {
126
+ return matches[0];
127
+ }
128
+ // If multiple matches, prefer the longest/most specific one
129
+ if (matches.length > 1) {
130
+ return matches.reduce((longest, current) => current.length > longest.length ? current : longest);
131
+ }
132
+ }
133
+ // Non-ambiguous cases: use careful substring matching
134
+ // Sort enums by name length (shortest first) to prefer simpler matches
135
+ const sortedEnumNames = allEnumNames
136
+ .slice()
137
+ .sort((a, b) => a.length - b.length);
138
+ for (const enumName of sortedEnumNames) {
139
+ const enumNameLower = enumName.toLowerCase();
140
+ // Only match if field name is a meaningful part of the enum name
141
+ // Avoid greedy matches like "side" matching "FcmPositionSide"
142
+ if (enumNameLower === fieldLower) {
143
+ return enumName; // Exact match
144
+ }
145
+ // Check if field name appears as a word boundary in enum name
146
+ // e.g., "side" should match "OrderSide" but not "FcmPositionSide"
147
+ const wordBoundaryRegex = new RegExp(`\\b${fieldLower}\\b`, 'i');
148
+ if (wordBoundaryRegex.test(enumName)) {
149
+ return enumName;
150
+ }
151
+ // Check for field name at the end of enum name (most common pattern)
152
+ if (enumNameLower.endsWith(fieldLower) && enumNameLower !== fieldLower) {
153
+ // Ensure it's not a substring within a word
154
+ const beforeField = enumNameLower.slice(0, -fieldLower.length);
155
+ if (beforeField.length > 0 && /[a-z]$/.test(beforeField)) {
156
+ continue; // Skip if it's part of a word
157
+ }
158
+ return enumName;
159
+ }
160
+ }
161
+ return null;
162
+ }
163
+ /**
164
+ * Dynamically find enum name based on field name patterns
165
+ */
166
+ function findEnumByFieldName(fieldName) {
167
+ const allEnumNames = enumRegistry_1.enumRegistry.getAllEnumNames();
168
+ // Strategy 1: Direct name match (e.g., "ActivityCategory" field → "ActivityCategory" enum)
169
+ const exactMatch = allEnumNames.find((enumName) => enumName.toLowerCase() === fieldName.toLowerCase());
170
+ if (exactMatch)
171
+ return exactMatch;
172
+ // Strategy 2: Smart plural/singular variations
173
+ const variations = getFieldNameVariations(fieldName);
174
+ for (const enumName of allEnumNames) {
175
+ const enumNameLower = enumName.toLowerCase();
176
+ if (variations.includes(enumNameLower)) {
177
+ return enumName;
178
+ }
179
+ }
180
+ // Strategy 3: Context-aware enum matching (handles collisions)
181
+ const contextMatch = findEnumWithContext(fieldName, allEnumNames);
182
+ if (contextMatch) {
183
+ return contextMatch;
184
+ }
185
+ // Strategy 4: Smart pattern matching for compound field names
186
+ // Handle cases like "activitycategory" → "ActivityCategory"
187
+ for (const enumName of allEnumNames) {
188
+ const enumWords = enumName
189
+ .toLowerCase()
190
+ .replace(/([A-Z])/g, ' $1')
191
+ .trim()
192
+ .split(' ');
193
+ const fieldWords = fieldName
194
+ .replace(/([A-Z])/g, ' $1')
195
+ .trim()
196
+ .split(/[\s_-]+/);
197
+ // Check if all field words are contained in enum words
198
+ const allWordsMatch = fieldWords.every((word) => enumWords.some((enumWord) => enumWord.includes(word) || word.includes(enumWord)));
199
+ if (allWordsMatch && fieldWords.length > 1) {
200
+ return enumName;
201
+ }
202
+ }
203
+ return null;
204
+ }
205
+ /**
206
+ * Get direct field-to-enum mapping with service context and fallback to essential mappings
207
+ */
208
+ function getDirectEnumMapping(fieldName, serviceName) {
209
+ const fieldNameLower = fieldName.toLowerCase();
210
+ // First priority: Service context-specific mapping
211
+ if (serviceName) {
212
+ const serviceMapping = (0, serviceContext_1.resolveFieldWithServiceContext)(fieldName, serviceName);
213
+ if (serviceMapping) {
214
+ return serviceMapping;
215
+ }
216
+ }
217
+ // Second priority: Dynamic enum name matching
218
+ const dynamicMatch = findEnumByFieldName(fieldNameLower);
219
+ if (dynamicMatch) {
220
+ return dynamicMatch;
221
+ }
222
+ // Fall back to essential manual mappings for common patterns that don't follow naming conventions
223
+ // These should be conservative and only include non-ambiguous cases
224
+ const essentialMappings = {
225
+ // Common trading/order fields (most frequent use case)
226
+ side: 'OrderSide',
227
+ status: 'OrderStatus', // Default to OrderStatus, validation will catch mismatches
228
+ role: 'UserRole',
229
+ action: 'Action',
230
+ direction: 'SortDirection',
231
+ // Specific compound fields to prevent wrong mappings
232
+ orderside: 'OrderSide',
233
+ ordertype: 'OrderType',
234
+ orderstatus: 'OrderStatus',
235
+ wallettype: 'WalletType',
236
+ transactiontype: 'TransactionType',
237
+ activitytype: 'CustodyActivityType',
238
+ activitystatus: 'ActivityStatus',
239
+ // Note: 'type' still removed (too ambiguous - let value-based detection handle it)
240
+ };
241
+ return essentialMappings[fieldNameLower] || null;
242
+ }
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2025-present Coinbase Global, Inc.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.SERVICE_CONTEXTS = void 0;
19
+ exports.getServiceContext = getServiceContext;
20
+ exports.resolveFieldWithServiceContext = resolveFieldWithServiceContext;
21
+ exports.getAllServiceContexts = getAllServiceContexts;
22
+ exports.hasServiceContext = hasServiceContext;
23
+ /**
24
+ * Registry of service contexts for accurate enum detection
25
+ */
26
+ exports.SERVICE_CONTEXTS = {
27
+ // Activities Service
28
+ activities: {
29
+ serviceName: 'ActivitiesService',
30
+ fieldMappings: {
31
+ status: 'ActivityStatus',
32
+ type: 'CustodyActivityType',
33
+ category: 'ActivityCategory',
34
+ categories: 'ActivityCategory',
35
+ secondaryType: 'ActivitySecondaryType',
36
+ },
37
+ description: 'Portfolio and entity activity operations',
38
+ },
39
+ // Orders Service
40
+ orders: {
41
+ serviceName: 'OrdersService',
42
+ fieldMappings: {
43
+ status: 'OrderStatus',
44
+ type: 'OrderType',
45
+ side: 'OrderSide',
46
+ timeInForce: 'TimeInForceType',
47
+ },
48
+ description: 'Trading order operations',
49
+ },
50
+ // Transactions Service
51
+ transactions: {
52
+ serviceName: 'TransactionsService',
53
+ fieldMappings: {
54
+ status: 'TransactionStatus',
55
+ type: 'TransactionType',
56
+ destinationType: 'DestinationType',
57
+ },
58
+ description: 'Transaction and transfer operations',
59
+ },
60
+ // Wallets Service
61
+ wallets: {
62
+ serviceName: 'WalletsService',
63
+ fieldMappings: {
64
+ type: 'WalletType',
65
+ status: 'WalletStatus',
66
+ },
67
+ description: 'Wallet management operations',
68
+ },
69
+ // Allocations Service
70
+ allocations: {
71
+ serviceName: 'AllocationsService',
72
+ fieldMappings: {
73
+ status: 'AllocationStatus',
74
+ type: 'AllocationType',
75
+ },
76
+ description: 'Portfolio allocation operations',
77
+ },
78
+ // Users Service
79
+ users: {
80
+ serviceName: 'UsersService',
81
+ fieldMappings: {
82
+ role: 'UserRole',
83
+ status: 'UserStatus',
84
+ },
85
+ description: 'User management operations',
86
+ },
87
+ // Balances Service
88
+ balances: {
89
+ serviceName: 'BalancesService',
90
+ fieldMappings: {
91
+ type: 'PortfolioBalanceType',
92
+ },
93
+ description: 'Balance and portfolio operations',
94
+ },
95
+ // Portfolios Service
96
+ portfolios: {
97
+ serviceName: 'PortfoliosService',
98
+ fieldMappings: {
99
+ type: 'PortfolioType',
100
+ status: 'PortfolioStatus',
101
+ },
102
+ description: 'Portfolio management operations',
103
+ },
104
+ // Products Service
105
+ products: {
106
+ serviceName: 'ProductsService',
107
+ fieldMappings: {
108
+ type: 'ProductType',
109
+ permissions: 'ProductPermissions',
110
+ category: 'ProductCategory',
111
+ },
112
+ description: 'Product and market data operations',
113
+ },
114
+ // Assets Service
115
+ assets: {
116
+ serviceName: 'AssetsService',
117
+ fieldMappings: {
118
+ type: 'AssetType',
119
+ status: 'AssetStatus',
120
+ },
121
+ description: 'Asset management operations',
122
+ },
123
+ };
124
+ /**
125
+ * Get service context by service name
126
+ */
127
+ function getServiceContext(serviceName) {
128
+ // Normalize service name (remove "Service" suffix if present)
129
+ const normalizedName = serviceName.toLowerCase().replace(/service$/, '');
130
+ return exports.SERVICE_CONTEXTS[normalizedName] || null;
131
+ }
132
+ /**
133
+ * Resolve field to enum using service context
134
+ */
135
+ function resolveFieldWithServiceContext(fieldName, serviceName) {
136
+ if (!serviceName) {
137
+ return null;
138
+ }
139
+ const context = getServiceContext(serviceName);
140
+ if (!context) {
141
+ return null;
142
+ }
143
+ const fieldLower = fieldName.toLowerCase();
144
+ return context.fieldMappings[fieldLower] || null;
145
+ }
146
+ /**
147
+ * Get all available service contexts
148
+ */
149
+ function getAllServiceContexts() {
150
+ return Object.assign({}, exports.SERVICE_CONTEXTS);
151
+ }
152
+ /**
153
+ * Check if a service has context defined
154
+ */
155
+ function hasServiceContext(serviceName) {
156
+ return getServiceContext(serviceName) !== null;
157
+ }
@@ -26,6 +26,7 @@ exports.StakingService = void 0;
26
26
  * limitations under the License.
27
27
  */
28
28
  const clients_1 = require("../clients");
29
+ const paginatedResponse_1 = require("../shared/paginatedResponse");
29
30
  class StakingService {
30
31
  constructor(client) {
31
32
  this.client = client;
@@ -78,5 +79,41 @@ class StakingService {
78
79
  return response.data;
79
80
  });
80
81
  }
82
+ queryTransactionValidators(request, options) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ const paginationOptions = (0, paginatedResponse_1.getDefaultPaginationOptions)(this.client, options);
85
+ const { transactionIds, cursor, limit, sortDirection } = request;
86
+ const bodyParams = {
87
+ transactionIds,
88
+ cursor,
89
+ limit,
90
+ sortDirection,
91
+ };
92
+ const response = yield this.client.request({
93
+ url: `portfolios/${request.portfolioId}/staking/transaction-validators/query`,
94
+ method: clients_1.Method.POST,
95
+ bodyParams,
96
+ callOptions: options,
97
+ });
98
+ const responseData = response.data;
99
+ return (0, paginatedResponse_1.createPaginatedResponse)(responseData, this.queryTransactionValidators.bind(this), request, (r) => r.transactionValidators || [], paginationOptions);
100
+ });
101
+ }
102
+ claimRewards(request, options) {
103
+ return __awaiter(this, void 0, void 0, function* () {
104
+ const { idempotencyKey, inputs, portfolioId, walletId } = request;
105
+ const bodyParams = {
106
+ idempotencyKey,
107
+ inputs,
108
+ };
109
+ const response = yield this.client.request({
110
+ url: `portfolios/${portfolioId}/wallets/${walletId}/staking/claim_rewards`,
111
+ method: clients_1.Method.POST,
112
+ bodyParams,
113
+ callOptions: options,
114
+ });
115
+ return response.data;
116
+ });
117
+ }
81
118
  }
82
119
  exports.StakingService = StakingService;
@@ -19,7 +19,7 @@ import { GetPortfolioBalancesResponse, GetWalletBalanceResponse as internalGetRe
19
19
  import { BasePaginatedRequest, PaginatedResponseMethods } from '../shared/paginatedResponse';
20
20
  export type ListPortfolioBalancesRequest = {
21
21
  portfolioId: string;
22
- symbol: string;
22
+ symbols?: string[];
23
23
  balanceType?: PortfolioBalanceType;
24
24
  };
25
25
  export type ListPortfolioBalancesResponse = Brand<GetPortfolioBalancesResponse, 'ListPortfolioBalancesResponse'>;
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- export declare const VERSION = "0.6.3";
16
+ export declare const VERSION = "0.7.0";
17
17
  export declare const API_BASE_PATH = "https://api.prime.coinbase.com/v1/";
18
18
  export declare const USER_AGENT: string;
19
19
  export declare const CB_ACCESS_KEY_HEADER = "X-CB-ACCESS-KEY";
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { IPrimeApiClient, CoinbaseCallOptions } from '../clients';
17
- import { ListExistingLocatesRequest, ListExistingLocatesResponse, ListInterestAccrualsRequest, ListInterestAccrualsResponse, ListPortfolioInterestAccrualsRequest, ListPortfolioInterestAccrualsResponse, ListMarginCallSummariesRequest, ListMarginCallSummariesResponse, ListMarginConversionsRequest, ListMarginConversionsResponse, GetEntityLocateAvailabilitiesRequest, GetEntityLocateAvailabilitiesResponse, GetMarginInformationRequest, GetMarginInformationResponse, GetPortfolioBuyingPowerRequest, GetPortfolioBuyingPowerResponse, GetPortfolioCreditInformationRequest, GetPortfolioCreditInformationResponse, GetPortfolioWithdrawalPowerRequest, GetPortfolioWithdrawalPowerResponse, GetTieredPricingFeesRequest, GetTieredPricingFeesResponse, GetFcmMarginCallDetailsRequest, GetFcmMarginCallDetailsResponse, GetFcmRiskLimitsRequest, GetFcmRiskLimitsResponse, CreateNewLocatesRequest, CreateNewLocatesResponse } from './types';
17
+ import { ListExistingLocatesRequest, ListExistingLocatesResponse, ListInterestAccrualsRequest, ListInterestAccrualsResponse, ListPortfolioInterestAccrualsRequest, ListPortfolioInterestAccrualsResponse, ListMarginCallSummariesRequest, ListMarginCallSummariesResponse, ListMarginConversionsRequest, ListMarginConversionsResponse, GetEntityLocateAvailabilitiesRequest, GetEntityLocateAvailabilitiesResponse, GetMarginInformationRequest, GetMarginInformationResponse, GetPortfolioBuyingPowerRequest, GetPortfolioBuyingPowerResponse, GetPortfolioCreditInformationRequest, GetPortfolioCreditInformationResponse, GetPortfolioWithdrawalPowerRequest, GetPortfolioWithdrawalPowerResponse, GetTieredPricingFeesRequest, GetTieredPricingFeesResponse, GetFcmMarginCallDetailsRequest, GetFcmMarginCallDetailsResponse, GetFcmRiskLimitsRequest, GetFcmRiskLimitsResponse, CreateNewLocatesRequest, CreateNewLocatesResponse, GetCrossMarginOverviewRequest, GetCrossMarginOverviewResponse } from './types';
18
18
  export interface IFinancingService {
19
19
  listExistingLocates(request: ListExistingLocatesRequest, options?: CoinbaseCallOptions): Promise<ListExistingLocatesResponse>;
20
20
  listInterestAccruals(request: ListInterestAccrualsRequest, options?: CoinbaseCallOptions): Promise<ListInterestAccrualsResponse>;
@@ -30,6 +30,7 @@ export interface IFinancingService {
30
30
  getFcmMarginCallDetails(request: GetFcmMarginCallDetailsRequest, options?: CoinbaseCallOptions): Promise<GetFcmMarginCallDetailsResponse>;
31
31
  getFcmRiskLimits(request: GetFcmRiskLimitsRequest, options?: CoinbaseCallOptions): Promise<GetFcmRiskLimitsResponse>;
32
32
  createNewLocates(request: CreateNewLocatesRequest, options?: CoinbaseCallOptions): Promise<CreateNewLocatesResponse>;
33
+ getCrossMarginOverview(request: GetCrossMarginOverviewRequest, options?: CoinbaseCallOptions): Promise<GetCrossMarginOverviewResponse>;
33
34
  }
34
35
  export declare class FinancingService implements IFinancingService {
35
36
  private client;
@@ -48,4 +49,5 @@ export declare class FinancingService implements IFinancingService {
48
49
  getFcmMarginCallDetails(request: GetFcmMarginCallDetailsRequest, options?: CoinbaseCallOptions): Promise<GetFcmMarginCallDetailsResponse>;
49
50
  getFcmRiskLimits(request: GetFcmRiskLimitsRequest, options?: CoinbaseCallOptions): Promise<GetFcmRiskLimitsResponse>;
50
51
  createNewLocates(request: CreateNewLocatesRequest, options?: CoinbaseCallOptions): Promise<CreateNewLocatesResponse>;
52
+ getCrossMarginOverview(request: GetCrossMarginOverviewRequest, options?: CoinbaseCallOptions): Promise<GetCrossMarginOverviewResponse>;
51
53
  }
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { Brand } from '../shared/brand';
17
- import { GetExistingLocatesResponse, GetInterestAccrualsResponse, GetLocateAvailabilitiesResponse, GetMarginConversionsResponse, GetMarginSummariesResponse, GetMarginInformationResponse as internalGetMarginInformationResponse, GetBuyingPowerResponse, GetPostTradeCreditResponse, GetTFTieredPricingFeesResponse, GetWithdrawalPowerResponse, GetFcmMarginCallDetailsResponse as internalGetFcmMarginCallDetailsResponse, GetFcmRiskLimitsResponse as internalGetFcmRiskLimitsResponse, CreateNewLocatesResponse as internalCreateNewLocatesResponse } from '../model/';
17
+ import { GetExistingLocatesResponse, GetInterestAccrualsResponse, GetLocateAvailabilitiesResponse, GetMarginConversionsResponse, GetMarginSummariesResponse, GetMarginInformationResponse as internalGetMarginInformationResponse, GetBuyingPowerResponse, GetPostTradeCreditResponse, GetTFTieredPricingFeesResponse, GetWithdrawalPowerResponse, GetFcmMarginCallDetailsResponse as internalGetFcmMarginCallDetailsResponse, GetFcmRiskLimitsResponse as internalGetFcmRiskLimitsResponse, CreateNewLocatesResponse as internalCreateNewLocatesResponse, GetCrossMarginOverviewResponse as internalGetCrossMarginOverviewResponse } from '../model/';
18
18
  export type ListExistingLocatesRequest = {
19
19
  portfolioId: string;
20
20
  locateIds?: string[];
@@ -91,3 +91,7 @@ export type GetFcmRiskLimitsRequest = {
91
91
  entityId: string;
92
92
  };
93
93
  export type GetFcmRiskLimitsResponse = Brand<internalGetFcmRiskLimitsResponse, 'GetFcmRiskLimitsResponse'>;
94
+ export type GetCrossMarginOverviewRequest = {
95
+ entityId: string;
96
+ };
97
+ export type GetCrossMarginOverviewResponse = Brand<internalGetCrossMarginOverviewResponse, 'GetCrossMarginOverviewResponse'>;
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { CoinbaseCallOptions, IPrimeApiClient } from '../clients';
17
- import { ListEntityFuturesSweepsRequest, ListEntityFuturesSweepsResponse, GetEntityFuturesBalanceRequest, GetEntityFuturesBalanceResponse, GetEntityFuturesPositionsRequest, GetEntityFuturesPositionsResponse, ScheduleEntityFuturesSweepRequest, ScheduleEntityFuturesSweepResponse, UpdateEntityFuturesAutoSweepRequest, UpdateEntityFuturesAutoSweepResponse, CancelEntitySweepRequest, CancelEntitySweepResponse } from './types';
17
+ import { ListEntityFuturesSweepsRequest, ListEntityFuturesSweepsResponse, GetEntityFuturesBalanceRequest, GetEntityFuturesBalanceResponse, GetEntityFuturesPositionsRequest, GetEntityFuturesPositionsResponse, ScheduleEntityFuturesSweepRequest, ScheduleEntityFuturesSweepResponse, UpdateEntityFuturesAutoSweepRequest, UpdateEntityFuturesAutoSweepResponse, CancelEntitySweepRequest, CancelEntitySweepResponse, GetEntityFuturesRiskLimitsRequest, GetEntityFuturesRiskLimitsResponse, GetEntityFuturesMarginCallDetailsRequest, GetEntityFuturesMarginCallDetailsResponse } from './types';
18
18
  export interface IFuturesService {
19
19
  listEntitySweeps(request: ListEntityFuturesSweepsRequest, options?: CoinbaseCallOptions): Promise<ListEntityFuturesSweepsResponse>;
20
20
  getEntityBalance(request: GetEntityFuturesBalanceRequest, options?: CoinbaseCallOptions): Promise<GetEntityFuturesBalanceResponse>;
@@ -22,6 +22,8 @@ export interface IFuturesService {
22
22
  scheduleEntitySweep(request: ScheduleEntityFuturesSweepRequest, options?: CoinbaseCallOptions): Promise<ScheduleEntityFuturesSweepResponse>;
23
23
  updateEntityAutoSweep(request: UpdateEntityFuturesAutoSweepRequest, options?: CoinbaseCallOptions): Promise<UpdateEntityFuturesAutoSweepResponse>;
24
24
  cancelEntitySweep(request: CancelEntitySweepRequest, options?: CoinbaseCallOptions): Promise<CancelEntitySweepResponse>;
25
+ getRiskLimits(request: GetEntityFuturesRiskLimitsRequest, options?: CoinbaseCallOptions): Promise<GetEntityFuturesRiskLimitsResponse>;
26
+ getMarginCallDetails(request: GetEntityFuturesMarginCallDetailsRequest, options?: CoinbaseCallOptions): Promise<GetEntityFuturesMarginCallDetailsResponse>;
25
27
  }
26
28
  export declare class FuturesService implements IFuturesService {
27
29
  private client;
@@ -32,4 +34,7 @@ export declare class FuturesService implements IFuturesService {
32
34
  scheduleEntitySweep(request: ScheduleEntityFuturesSweepRequest, options?: CoinbaseCallOptions): Promise<ScheduleEntityFuturesSweepResponse>;
33
35
  updateEntityAutoSweep(request: UpdateEntityFuturesAutoSweepRequest, options?: CoinbaseCallOptions): Promise<UpdateEntityFuturesAutoSweepResponse>;
34
36
  cancelEntitySweep(request: CancelEntitySweepRequest, options?: CoinbaseCallOptions): Promise<CancelEntitySweepResponse>;
37
+ getRiskLimits(request: GetEntityFuturesRiskLimitsRequest, options?: CoinbaseCallOptions): Promise<GetEntityFuturesRiskLimitsResponse>;
38
+ getMarginCallDetails(request: GetEntityFuturesMarginCallDetailsRequest, options?: CoinbaseCallOptions): Promise<GetEntityFuturesMarginCallDetailsResponse>;
35
39
  }
40
+ export type { ListEntityFuturesSweepsRequest, ListEntityFuturesSweepsResponse, GetEntityFuturesBalanceRequest, GetEntityFuturesBalanceResponse, GetEntityFuturesPositionsRequest, GetEntityFuturesPositionsResponse, ScheduleEntityFuturesSweepRequest, ScheduleEntityFuturesSweepResponse, UpdateEntityFuturesAutoSweepRequest, UpdateEntityFuturesAutoSweepResponse, CancelEntitySweepRequest, CancelEntitySweepResponse, GetEntityFuturesRiskLimitsRequest, GetEntityFuturesRiskLimitsResponse, GetEntityFuturesMarginCallDetailsRequest, GetEntityFuturesMarginCallDetailsResponse, } from './types';
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { Brand } from '../shared/brand';
17
- import { GetFcmBalanceResponse, GetFuturesSweepsResponse, GetPositionsResponse, SetAutoSweepResponse, ScheduleFuturesSweepRequest, ScheduleFuturesSweepResponse, CancelFuturesSweepResponse } from '../model/';
17
+ import { GetFcmBalanceResponse, GetFuturesSweepsResponse, GetPositionsResponse, SetAutoSweepResponse, ScheduleFuturesSweepRequest, ScheduleFuturesSweepResponse, CancelFuturesSweepResponse, GetFcmRiskLimitsResponse, GetFcmMarginCallDetailsResponse } from '../model/';
18
18
  export type ListEntityFuturesSweepsRequest = {
19
19
  entityId: string;
20
20
  };
@@ -41,3 +41,11 @@ export type CancelEntitySweepRequest = {
41
41
  entityId: string;
42
42
  };
43
43
  export type CancelEntitySweepResponse = Brand<CancelFuturesSweepResponse, 'CancelEntitySweepResponse'>;
44
+ export type GetEntityFuturesRiskLimitsRequest = {
45
+ entityId: string;
46
+ };
47
+ export type GetEntityFuturesRiskLimitsResponse = Brand<GetFcmRiskLimitsResponse, 'GetEntityFuturesRiskLimitsResponse'>;
48
+ export type GetEntityFuturesMarginCallDetailsRequest = {
49
+ entityId: string;
50
+ };
51
+ export type GetEntityFuturesMarginCallDetailsResponse = Brand<GetFcmMarginCallDetailsResponse, 'GetEntityFuturesMarginCallDetailsResponse'>;
@@ -43,16 +43,16 @@ export type { CreateAllocationRequest, CreateAllocationResponse, CreateNetAlloca
43
43
  export type { ListAssetsRequest, ListAssetsResponse } from './assets/types';
44
44
  export type { GetWalletBalanceRequest, GetWalletBalanceResponse, ListOnchainWalletBalancesRequest, ListOnchainWalletBalancesResponse, ListPortfolioBalancesRequest, ListPortfolioBalancesResponse, ListEntityBalancesRequest, ListEntityBalancesResponse, } from './balances/types';
45
45
  export type { GetPortfolioCommissionRequest, GetPortfolioCommissionResponse, } from './commission/types';
46
- export type { ListExistingLocatesRequest, ListExistingLocatesResponse, ListInterestAccrualsRequest, ListInterestAccrualsResponse, ListPortfolioInterestAccrualsRequest, ListPortfolioInterestAccrualsResponse, ListMarginCallSummariesRequest, ListMarginCallSummariesResponse, ListMarginConversionsRequest, ListMarginConversionsResponse, GetEntityLocateAvailabilitiesRequest, GetEntityLocateAvailabilitiesResponse, GetMarginInformationRequest, GetMarginInformationResponse, GetPortfolioBuyingPowerRequest, GetPortfolioBuyingPowerResponse, GetPortfolioCreditInformationRequest, GetPortfolioCreditInformationResponse, GetPortfolioWithdrawalPowerRequest, GetPortfolioWithdrawalPowerResponse, GetFcmMarginCallDetailsRequest, GetFcmMarginCallDetailsResponse, GetFcmRiskLimitsRequest, GetFcmRiskLimitsResponse, GetTieredPricingFeesRequest, GetTieredPricingFeesResponse, CreateNewLocatesRequest, CreateNewLocatesResponse, } from './financing/types';
46
+ export type { ListExistingLocatesRequest, ListExistingLocatesResponse, ListInterestAccrualsRequest, ListInterestAccrualsResponse, ListPortfolioInterestAccrualsRequest, ListPortfolioInterestAccrualsResponse, ListMarginCallSummariesRequest, ListMarginCallSummariesResponse, ListMarginConversionsRequest, ListMarginConversionsResponse, GetEntityLocateAvailabilitiesRequest, GetEntityLocateAvailabilitiesResponse, GetMarginInformationRequest, GetMarginInformationResponse, GetPortfolioBuyingPowerRequest, GetPortfolioBuyingPowerResponse, GetPortfolioCreditInformationRequest, GetPortfolioCreditInformationResponse, GetPortfolioWithdrawalPowerRequest, GetPortfolioWithdrawalPowerResponse, GetFcmMarginCallDetailsRequest, GetFcmMarginCallDetailsResponse, GetFcmRiskLimitsRequest, GetFcmRiskLimitsResponse, GetTieredPricingFeesRequest, GetTieredPricingFeesResponse, CreateNewLocatesRequest, CreateNewLocatesResponse, GetCrossMarginOverviewRequest, GetCrossMarginOverviewResponse, } from './financing/types';
47
47
  export type { CancelEntitySweepRequest, CancelEntitySweepResponse, GetEntityFuturesBalanceRequest, GetEntityFuturesBalanceResponse, GetEntityFuturesPositionsRequest, GetEntityFuturesPositionsResponse, ListEntityFuturesSweepsRequest, ListEntityFuturesSweepsResponse, ScheduleEntityFuturesSweepRequest, ScheduleEntityFuturesSweepResponse, UpdateEntityFuturesAutoSweepRequest, UpdateEntityFuturesAutoSweepResponse, } from './futures/types';
48
48
  export type { ListInvoicesRequest, ListInvoicesResponse, } from './invoices/types';
49
49
  export type { CreateOnchainAddressBookEntryRequest, CreateOnchainAddressBookEntryResponse, DeleteOnchainAddressBookEntryRequest, DeleteOnchainAddressBookEntryResponse, ListOnchainAddressBookRequest, ListOnchainAddressBookResponse, UpdateOnchainAddressBookEntryRequest, UpdateOnchainAddressBookEntryResponse, } from './onchainAddressBook/types';
50
- export type { AcceptQuoteRequest, AcceptQuoteResponse, CancelOrderRequest, CancelOrderResponse, CreateOrderPreviewRequest, CreateOrderPreviewResponse, CreateOrderRequest, CreateOrderResponse, CreateQuoteRequest, CreateQuoteResponse, GetOrderRequest, GetOrderResponse, GetOrderEditHistoryRequest, GetOrderEditHistoryResponse, ListOpenOrdersRequest, ListOpenOrdersResponse, ListOrderFillsRequest, ListOrderFillsResponse, ListPortfolioFillsRequest, ListPortfolioFillsResponse, ListPortfolioOrdersRequest, ListPortfolioOrdersResponse, } from './orders/types';
50
+ export type { AcceptQuoteRequest, AcceptQuoteResponse, CancelOrderRequest, CancelOrderResponse, CreateOrderPreviewRequest, CreateOrderPreviewResponse, CreateOrderRequest, CreateOrderResponse, CreateQuoteRequest, CreateQuoteResponse, GetOrderRequest, GetOrderResponse, GetOrderEditHistoryRequest, GetOrderEditHistoryResponse, ListOpenOrdersRequest, ListOpenOrdersResponse, ListOrderFillsRequest, ListOrderFillsResponse, ListPortfolioFillsRequest, ListPortfolioFillsResponse, ListPortfolioOrdersRequest, ListPortfolioOrdersResponse, EditOrderRequest, EditOrderResponse, } from './orders/types';
51
51
  export type { GetPaymentMethodRequest, GetPaymentMethodResponse, ListEntityPaymentMethodsRequest, ListEntityPaymentMethodsResponse, } from './paymentMethods/types';
52
52
  export type { ListPortfoliosRequest, ListPortfoliosResponse, GetPortfolioCreditRequest, GetPortfolioCreditResponse, GetPortfolioRequest, GetPortfolioResponse, GetCounterpartyIdRequest, GetCounterpartyIdResponse, } from './portfolios/types';
53
53
  export type { ListAggregateEntityPositionsRequest, ListAggregateEntityPositionsResponse, ListEntityPositionsRequest, ListEntityPositionsResponse, } from './positions/types';
54
54
  export type { ListProductsRequest, ListProductsResponse, } from './products/types';
55
- export type { CreateStakeRequest, CreateStakeResponse, CreateUnstakeRequest, CreateUnstakeResponse, CreatePortfolioStakeRequest, CreatePortfolioStakeResponse, CreatePortfolioUnstakeRequest, CreatePortfolioUnstakeResponse, } from './staking/types';
55
+ export type { CreateStakeRequest, CreateStakeResponse, CreateUnstakeRequest, CreateUnstakeResponse, CreatePortfolioStakeRequest, CreatePortfolioStakeResponse, CreatePortfolioUnstakeRequest, CreatePortfolioUnstakeResponse, QueryTransactionValidatorsRequest, QueryTransactionValidatorsResponse, BaseQueryTransactionValidatorsResponse, ClaimRewardsRequest, ClaimRewardsResponse, } from './staking/types';
56
56
  export type { CreateConversionRequest, CreateConversionResponse, CreateOnchainTransactionRequest, CreateOnchainTransactionResponse, CreateTransferRequest, CreateTransferResponse, CreateWithdrawalRequest, CreateWithdrawalResponse, GetTransactionRequest, GetTransactionResponse, ListPortfolioTransactionsRequest, ListPortfolioTransactionsResponse, ListWalletTransactionsRequest, ListWalletTransactionsResponse, } from './transactions/types';
57
57
  export type { ListPortfolioUsersRequest, ListPortfolioUsersResponse, ListUsersRequest, ListUsersResponse, } from './users/types';
58
58
  export type { CreateWalletRequest, CreateWalletResponse, CreateWalletDepositAddressRequest, CreateWalletDepositAddressResponse, GetWalletDepositInstructionsRequest, GetWalletDepositInstructionsResponse, GetWalletRequest, GetWalletResponse, ListWalletAddressesRequest, ListWalletAddressesResponse, ListWalletsRequest, ListWalletsResponse, } from './wallets/types';
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Copyright 2025-present Coinbase Global, Inc.
3
+ *
4
+ * This file is generated by Openapi Generator https://github.com/openapitools/openapi-generator
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ * Do not edit the class manually.
19
+ */
20
+ import { XMControlStatus } from './enums/XMControlStatus';
21
+ import { XMEntityCallStatus } from './enums/XMEntityCallStatus';
22
+ import { XMLoan } from './XMLoan';
23
+ import { XMMarginCall } from './XMMarginCall';
24
+ import { XMMarginLevel } from './enums/XMMarginLevel';
25
+ import { XMSummary } from './XMSummary';
26
+ export type CrossMarginOverview = {
27
+ controlStatus?: XMControlStatus;
28
+ callStatus?: XMEntityCallStatus;
29
+ marginLevel?: XMMarginLevel;
30
+ marginSummary?: XMSummary;
31
+ /**
32
+ * List of active XM margin calls
33
+ */
34
+ activeMarginCalls?: Array<XMMarginCall>;
35
+ /**
36
+ * List of active XM loans
37
+ */
38
+ activeLoans?: Array<XMLoan>;
39
+ };