@cowprotocol/cow-sdk 2.0.0-alpha.0 → 2.0.0-alpha.1

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 (219) hide show
  1. package/dist/README.md +411 -0
  2. package/dist/common/chains.d.ts +5 -0
  3. package/dist/common/chains.js +10 -0
  4. package/dist/common/chains.js.map +1 -0
  5. package/dist/common/configs.d.ts +17 -0
  6. package/dist/common/configs.js +7 -0
  7. package/dist/common/configs.js.map +1 -0
  8. package/dist/common/cow-error.d.ts +5 -0
  9. package/dist/common/cow-error.js +12 -0
  10. package/dist/common/cow-error.js.map +1 -0
  11. package/dist/common/ipfs.d.ts +2 -0
  12. package/dist/common/ipfs.js +6 -0
  13. package/dist/common/ipfs.js.map +1 -0
  14. package/dist/index.d.ts +4 -0
  15. package/dist/index.js +8 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/metadata/api.d.ts +56 -0
  18. package/dist/metadata/api.js +149 -0
  19. package/dist/metadata/api.js.map +1 -0
  20. package/dist/metadata/index.d.ts +2 -0
  21. package/dist/metadata/index.js +6 -0
  22. package/dist/metadata/index.js.map +1 -0
  23. package/dist/metadata/types.d.ts +22 -0
  24. package/dist/metadata/types.js +3 -0
  25. package/dist/metadata/types.js.map +1 -0
  26. package/dist/metadata/utils/appData.d.ts +3 -0
  27. package/dist/metadata/utils/appData.js +36 -0
  28. package/dist/metadata/utils/appData.js.map +1 -0
  29. package/dist/metadata/utils/ipfs.d.ts +16 -0
  30. package/dist/metadata/utils/ipfs.js +45 -0
  31. package/dist/metadata/utils/ipfs.js.map +1 -0
  32. package/dist/order-book/api.d.ts +31 -0
  33. package/dist/order-book/api.js +127 -0
  34. package/dist/order-book/api.js.map +1 -0
  35. package/dist/order-book/generated/OrderBookClient.d.ts +10 -0
  36. package/dist/order-book/generated/OrderBookClient.js +24 -0
  37. package/dist/order-book/generated/OrderBookClient.js.map +1 -0
  38. package/dist/order-book/generated/core/ApiError.d.ts +10 -0
  39. package/dist/order-book/generated/core/ApiError.js +16 -0
  40. package/dist/order-book/generated/core/ApiError.js.map +1 -0
  41. package/dist/order-book/generated/core/ApiRequestOptions.d.ts +13 -0
  42. package/dist/order-book/generated/core/ApiRequestOptions.js +3 -0
  43. package/dist/order-book/generated/core/ApiRequestOptions.js.map +1 -0
  44. package/dist/order-book/generated/core/ApiResult.d.ts +7 -0
  45. package/dist/order-book/generated/core/ApiResult.js +3 -0
  46. package/dist/order-book/generated/core/ApiResult.js.map +1 -0
  47. package/dist/order-book/generated/core/BaseHttpRequest.d.ts +8 -0
  48. package/dist/order-book/generated/core/BaseHttpRequest.js +10 -0
  49. package/dist/order-book/generated/core/BaseHttpRequest.js.map +1 -0
  50. package/dist/order-book/generated/core/CancelablePromise.d.ts +26 -0
  51. package/dist/order-book/generated/core/CancelablePromise.js +95 -0
  52. package/dist/order-book/generated/core/CancelablePromise.js.map +1 -0
  53. package/dist/order-book/generated/core/FetchHttpRequest.d.ts +14 -0
  54. package/dist/order-book/generated/core/FetchHttpRequest.js +21 -0
  55. package/dist/order-book/generated/core/FetchHttpRequest.js.map +1 -0
  56. package/dist/order-book/generated/core/OpenAPI.d.ts +16 -0
  57. package/dist/order-book/generated/core/OpenAPI.js +15 -0
  58. package/dist/order-book/generated/core/OpenAPI.js.map +1 -0
  59. package/dist/order-book/generated/core/request.d.ts +13 -0
  60. package/dist/order-book/generated/core/request.js +254 -0
  61. package/dist/order-book/generated/core/request.js.map +1 -0
  62. package/dist/order-book/generated/index.d.ts +50 -0
  63. package/dist/order-book/generated/index.js +48 -0
  64. package/dist/order-book/generated/index.js.map +1 -0
  65. package/dist/order-book/generated/models/Address.d.ts +4 -0
  66. package/dist/order-book/generated/models/Address.js +6 -0
  67. package/dist/order-book/generated/models/Address.js.map +1 -0
  68. package/dist/order-book/generated/models/AmountEstimate.d.ts +16 -0
  69. package/dist/order-book/generated/models/AmountEstimate.js +6 -0
  70. package/dist/order-book/generated/models/AmountEstimate.js.map +1 -0
  71. package/dist/order-book/generated/models/AppData.d.ts +4 -0
  72. package/dist/order-book/generated/models/AppData.js +6 -0
  73. package/dist/order-book/generated/models/AppData.js.map +1 -0
  74. package/dist/order-book/generated/models/Auction.d.ts +40 -0
  75. package/dist/order-book/generated/models/Auction.js +6 -0
  76. package/dist/order-book/generated/models/Auction.js.map +1 -0
  77. package/dist/order-book/generated/models/BigUint.d.ts +4 -0
  78. package/dist/order-book/generated/models/BigUint.js +6 -0
  79. package/dist/order-book/generated/models/BigUint.js.map +1 -0
  80. package/dist/order-book/generated/models/BuyTokenDestination.d.ts +7 -0
  81. package/dist/order-book/generated/models/BuyTokenDestination.js +15 -0
  82. package/dist/order-book/generated/models/BuyTokenDestination.js.map +1 -0
  83. package/dist/order-book/generated/models/EcdsaSignature.d.ts +4 -0
  84. package/dist/order-book/generated/models/EcdsaSignature.js +6 -0
  85. package/dist/order-book/generated/models/EcdsaSignature.js.map +1 -0
  86. package/dist/order-book/generated/models/EcdsaSigningScheme.d.ts +7 -0
  87. package/dist/order-book/generated/models/EcdsaSigningScheme.js +15 -0
  88. package/dist/order-book/generated/models/EcdsaSigningScheme.js.map +1 -0
  89. package/dist/order-book/generated/models/EthflowData.d.ts +20 -0
  90. package/dist/order-book/generated/models/EthflowData.js +6 -0
  91. package/dist/order-book/generated/models/EthflowData.js.map +1 -0
  92. package/dist/order-book/generated/models/FeeAndQuoteBuyResponse.d.ts +9 -0
  93. package/dist/order-book/generated/models/FeeAndQuoteBuyResponse.js +6 -0
  94. package/dist/order-book/generated/models/FeeAndQuoteBuyResponse.js.map +1 -0
  95. package/dist/order-book/generated/models/FeeAndQuoteError.d.ts +12 -0
  96. package/dist/order-book/generated/models/FeeAndQuoteError.js +17 -0
  97. package/dist/order-book/generated/models/FeeAndQuoteError.js.map +1 -0
  98. package/dist/order-book/generated/models/FeeAndQuoteSellResponse.d.ts +9 -0
  99. package/dist/order-book/generated/models/FeeAndQuoteSellResponse.js +6 -0
  100. package/dist/order-book/generated/models/FeeAndQuoteSellResponse.js.map +1 -0
  101. package/dist/order-book/generated/models/FeeInformation.d.ts +17 -0
  102. package/dist/order-book/generated/models/FeeInformation.js +6 -0
  103. package/dist/order-book/generated/models/FeeInformation.js.map +1 -0
  104. package/dist/order-book/generated/models/NativePriceResponse.d.ts +10 -0
  105. package/dist/order-book/generated/models/NativePriceResponse.js +6 -0
  106. package/dist/order-book/generated/models/NativePriceResponse.js.map +1 -0
  107. package/dist/order-book/generated/models/OnchainOrderData.d.ts +30 -0
  108. package/dist/order-book/generated/models/OnchainOrderData.js +22 -0
  109. package/dist/order-book/generated/models/OnchainOrderData.js.map +1 -0
  110. package/dist/order-book/generated/models/Order.d.ts +3 -0
  111. package/dist/order-book/generated/models/Order.js +6 -0
  112. package/dist/order-book/generated/models/Order.js.map +1 -0
  113. package/dist/order-book/generated/models/OrderCancellation.d.ts +13 -0
  114. package/dist/order-book/generated/models/OrderCancellation.js +6 -0
  115. package/dist/order-book/generated/models/OrderCancellation.js.map +1 -0
  116. package/dist/order-book/generated/models/OrderCancellationError.d.ts +15 -0
  117. package/dist/order-book/generated/models/OrderCancellationError.js +20 -0
  118. package/dist/order-book/generated/models/OrderCancellationError.js.map +1 -0
  119. package/dist/order-book/generated/models/OrderCancellations.d.ts +18 -0
  120. package/dist/order-book/generated/models/OrderCancellations.js +6 -0
  121. package/dist/order-book/generated/models/OrderCancellations.js.map +1 -0
  122. package/dist/order-book/generated/models/OrderClass.d.ts +8 -0
  123. package/dist/order-book/generated/models/OrderClass.js +16 -0
  124. package/dist/order-book/generated/models/OrderClass.js.map +1 -0
  125. package/dist/order-book/generated/models/OrderCreation.d.ts +25 -0
  126. package/dist/order-book/generated/models/OrderCreation.js +6 -0
  127. package/dist/order-book/generated/models/OrderCreation.js.map +1 -0
  128. package/dist/order-book/generated/models/OrderKind.d.ts +7 -0
  129. package/dist/order-book/generated/models/OrderKind.js +15 -0
  130. package/dist/order-book/generated/models/OrderKind.js.map +1 -0
  131. package/dist/order-book/generated/models/OrderMetaData.d.ts +86 -0
  132. package/dist/order-book/generated/models/OrderMetaData.js +6 -0
  133. package/dist/order-book/generated/models/OrderMetaData.js.map +1 -0
  134. package/dist/order-book/generated/models/OrderParameters.d.ts +60 -0
  135. package/dist/order-book/generated/models/OrderParameters.js +6 -0
  136. package/dist/order-book/generated/models/OrderParameters.js.map +1 -0
  137. package/dist/order-book/generated/models/OrderPostError.d.ts +27 -0
  138. package/dist/order-book/generated/models/OrderPostError.js +32 -0
  139. package/dist/order-book/generated/models/OrderPostError.js.map +1 -0
  140. package/dist/order-book/generated/models/OrderQuoteRequest.d.ts +47 -0
  141. package/dist/order-book/generated/models/OrderQuoteRequest.js +6 -0
  142. package/dist/order-book/generated/models/OrderQuoteRequest.js.map +1 -0
  143. package/dist/order-book/generated/models/OrderQuoteResponse.d.ts +23 -0
  144. package/dist/order-book/generated/models/OrderQuoteResponse.js +6 -0
  145. package/dist/order-book/generated/models/OrderQuoteResponse.js.map +1 -0
  146. package/dist/order-book/generated/models/OrderQuoteSide.d.ts +30 -0
  147. package/dist/order-book/generated/models/OrderQuoteSide.js +14 -0
  148. package/dist/order-book/generated/models/OrderQuoteSide.js.map +1 -0
  149. package/dist/order-book/generated/models/OrderQuoteValidity.d.ts +14 -0
  150. package/dist/order-book/generated/models/OrderQuoteValidity.js +6 -0
  151. package/dist/order-book/generated/models/OrderQuoteValidity.js.map +1 -0
  152. package/dist/order-book/generated/models/OrderStatus.d.ts +10 -0
  153. package/dist/order-book/generated/models/OrderStatus.js +18 -0
  154. package/dist/order-book/generated/models/OrderStatus.js.map +1 -0
  155. package/dist/order-book/generated/models/PreSignature.d.ts +4 -0
  156. package/dist/order-book/generated/models/PreSignature.js +6 -0
  157. package/dist/order-book/generated/models/PreSignature.js.map +1 -0
  158. package/dist/order-book/generated/models/PriceQuality.d.ts +9 -0
  159. package/dist/order-book/generated/models/PriceQuality.js +17 -0
  160. package/dist/order-book/generated/models/PriceQuality.js.map +1 -0
  161. package/dist/order-book/generated/models/ReplaceOrderError.d.ts +29 -0
  162. package/dist/order-book/generated/models/ReplaceOrderError.js +34 -0
  163. package/dist/order-book/generated/models/ReplaceOrderError.js.map +1 -0
  164. package/dist/order-book/generated/models/SellTokenSource.d.ts +8 -0
  165. package/dist/order-book/generated/models/SellTokenSource.js +16 -0
  166. package/dist/order-book/generated/models/SellTokenSource.js.map +1 -0
  167. package/dist/order-book/generated/models/Signature.d.ts +6 -0
  168. package/dist/order-book/generated/models/Signature.js +6 -0
  169. package/dist/order-book/generated/models/Signature.js.map +1 -0
  170. package/dist/order-book/generated/models/SigningScheme.d.ts +9 -0
  171. package/dist/order-book/generated/models/SigningScheme.js +17 -0
  172. package/dist/order-book/generated/models/SigningScheme.js.map +1 -0
  173. package/dist/order-book/generated/models/SolverCompetitionResponse.d.ts +28 -0
  174. package/dist/order-book/generated/models/SolverCompetitionResponse.js +6 -0
  175. package/dist/order-book/generated/models/SolverCompetitionResponse.js.map +1 -0
  176. package/dist/order-book/generated/models/SolverSettlement.d.ts +34 -0
  177. package/dist/order-book/generated/models/SolverSettlement.js +6 -0
  178. package/dist/order-book/generated/models/SolverSettlement.js.map +1 -0
  179. package/dist/order-book/generated/models/TokenAmount.d.ts +4 -0
  180. package/dist/order-book/generated/models/TokenAmount.js +6 -0
  181. package/dist/order-book/generated/models/TokenAmount.js.map +1 -0
  182. package/dist/order-book/generated/models/Trade.d.ts +51 -0
  183. package/dist/order-book/generated/models/Trade.js +6 -0
  184. package/dist/order-book/generated/models/Trade.js.map +1 -0
  185. package/dist/order-book/generated/models/TransactionHash.d.ts +4 -0
  186. package/dist/order-book/generated/models/TransactionHash.js +6 -0
  187. package/dist/order-book/generated/models/TransactionHash.js.map +1 -0
  188. package/dist/order-book/generated/models/UID.d.ts +7 -0
  189. package/dist/order-book/generated/models/UID.js +6 -0
  190. package/dist/order-book/generated/models/UID.js.map +1 -0
  191. package/dist/order-book/generated/models/VersionResponse.d.ts +18 -0
  192. package/dist/order-book/generated/models/VersionResponse.js +6 -0
  193. package/dist/order-book/generated/models/VersionResponse.js.map +1 -0
  194. package/dist/order-book/generated/services/DefaultService.d.ts +164 -0
  195. package/dist/order-book/generated/services/DefaultService.js +314 -0
  196. package/dist/order-book/generated/services/DefaultService.js.map +1 -0
  197. package/dist/order-book/index.d.ts +3 -0
  198. package/dist/order-book/index.js +7 -0
  199. package/dist/order-book/index.js.map +1 -0
  200. package/dist/order-book/transformOrder.d.ts +3 -0
  201. package/dist/order-book/transformOrder.js +37 -0
  202. package/dist/order-book/transformOrder.js.map +1 -0
  203. package/dist/order-book/types.d.ts +4 -0
  204. package/dist/order-book/types.js +3 -0
  205. package/dist/order-book/types.js.map +1 -0
  206. package/dist/package.json +77 -0
  207. package/dist/subgraph/api.d.ts +18 -0
  208. package/dist/subgraph/api.js +65 -0
  209. package/dist/subgraph/api.js.map +1 -0
  210. package/dist/subgraph/graphql.d.ts +3195 -0
  211. package/dist/subgraph/graphql.js +421 -0
  212. package/dist/subgraph/graphql.js.map +1 -0
  213. package/dist/subgraph/index.d.ts +1 -0
  214. package/dist/subgraph/index.js +5 -0
  215. package/dist/subgraph/index.js.map +1 -0
  216. package/dist/subgraph/queries.d.ts +3 -0
  217. package/dist/subgraph/queries.js +35 -0
  218. package/dist/subgraph/queries.js.map +1 -0
  219. package/package.json +2 -1
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MetadataApi = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const appData_1 = require("./utils/appData");
6
+ const ipfs_1 = require("./utils/ipfs");
7
+ const cow_error_1 = require("../common/cow-error");
8
+ const DEFAULT_APP_CODE = 'CowSwap';
9
+ class MetadataApi {
10
+ /**
11
+ * Creates an appDataDoc with the latest version format
12
+ *
13
+ * Without params creates a default minimum appData doc
14
+ * Optionally creates metadata docs
15
+ */
16
+ generateAppDataDoc(params) {
17
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
18
+ const { appDataParams, metadataParams } = params || {};
19
+ const { referrerParams, quoteParams, orderClassParams } = metadataParams || {};
20
+ const { createReferrerMetadata, createQuoteMetadata, createOrderClassMetadata, createAppDataDoc } = yield Promise.resolve().then(() => tslib_1.__importStar(require('@cowprotocol/app-data')));
21
+ const metadata = {};
22
+ if (referrerParams) {
23
+ metadata.referrer = createReferrerMetadata(referrerParams);
24
+ }
25
+ if (quoteParams) {
26
+ metadata.quote = createQuoteMetadata(quoteParams);
27
+ }
28
+ if (orderClassParams) {
29
+ metadata.orderClass = createOrderClassMetadata(orderClassParams);
30
+ }
31
+ const appCode = (appDataParams === null || appDataParams === void 0 ? void 0 : appDataParams.appCode) || DEFAULT_APP_CODE;
32
+ return createAppDataDoc(Object.assign(Object.assign({}, appDataParams), { appCode, metadata }));
33
+ });
34
+ }
35
+ /**
36
+ * Wrapper around @cowprotocol/app-data getAppDataSchema
37
+ *
38
+ * Returns the appData schema for given version, if any
39
+ * Throws CowError when version doesn't exist
40
+ */
41
+ getAppDataSchema(version) {
42
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
43
+ const { getAppDataSchema } = yield Promise.resolve().then(() => tslib_1.__importStar(require('@cowprotocol/app-data')));
44
+ try {
45
+ return yield getAppDataSchema(version);
46
+ }
47
+ catch (e) {
48
+ // Wrapping @cowprotocol/app-data Error into CowError
49
+ const error = e;
50
+ throw new cow_error_1.CowError(error.message);
51
+ }
52
+ });
53
+ }
54
+ /**
55
+ * Wrapper around @cowprotocol/app-data validateAppDataDoc
56
+ *
57
+ * Validates given doc against the doc's own version
58
+ */
59
+ validateAppDataDoc(appDataDoc) {
60
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
61
+ const { validateAppDataDoc } = yield Promise.resolve().then(() => tslib_1.__importStar(require('@cowprotocol/app-data')));
62
+ return validateAppDataDoc(appDataDoc);
63
+ });
64
+ }
65
+ decodeAppData(hash) {
66
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
67
+ try {
68
+ const cidV0 = yield (0, appData_1.getSerializedCID)(hash);
69
+ if (!cidV0)
70
+ throw new cow_error_1.CowError('Error getting serialized CID');
71
+ return (0, appData_1.loadIpfsFromCid)(cidV0);
72
+ }
73
+ catch (e) {
74
+ const error = e;
75
+ console.error('Error decoding AppData:', error);
76
+ throw new cow_error_1.CowError('Error decoding AppData: ' + error.message);
77
+ }
78
+ });
79
+ }
80
+ cidToAppDataHex(ipfsHash) {
81
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
82
+ const { CID } = yield Promise.resolve().then(() => tslib_1.__importStar(require('multiformats/cid')));
83
+ const { digest } = CID.parse(ipfsHash).multihash;
84
+ return `0x${Buffer.from(digest).toString('hex')}`;
85
+ });
86
+ }
87
+ appDataHexToCid(hash) {
88
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
89
+ const cidV0 = yield (0, appData_1.getSerializedCID)(hash);
90
+ if (!cidV0)
91
+ throw new cow_error_1.CowError('Error getting serialized CID');
92
+ return cidV0;
93
+ });
94
+ }
95
+ /**
96
+ * Calculates appDataHash WITHOUT publishing file to IPFS
97
+ *
98
+ * This method is intended to quickly generate the appDataHash independent
99
+ * of IPFS upload/pinning
100
+ * The hash is deterministic thus uploading it to IPFS will give you the same
101
+ * result
102
+ *
103
+ * WARNING!
104
+ * One important caveat is that - like `uploadMetadataDocToIpfs` method - the
105
+ * calculation is done with a stringified file without a new line at the end.
106
+ * That means that you will get different results if the file is uploaded
107
+ * directly as a file. For example:
108
+ *
109
+ * Consider the content `hello world`.
110
+ *
111
+ * Using IPFS's cli tool to updload a file with the contents above
112
+ * (`ipfs add file`), it'll have the line ending and result in this CIDv0:
113
+ * QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o
114
+ *
115
+ * While using this method - and `uploadMetadataDocToIpfs` - will give you
116
+ * this CIDv0:
117
+ * Qmf412jQZiuVUtdgnB36FXFX7xg5V6KEbSJ4dpQuhkLyfD
118
+ *
119
+ * @param appData
120
+ */
121
+ calculateAppDataHash(appData) {
122
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
123
+ const validation = yield this.validateAppDataDoc(appData);
124
+ if (!(validation === null || validation === void 0 ? void 0 : validation.success)) {
125
+ throw new cow_error_1.CowError('Invalid appData provided', validation === null || validation === void 0 ? void 0 : validation.errors);
126
+ }
127
+ try {
128
+ const cidV0 = yield (0, ipfs_1.calculateIpfsCidV0)(appData);
129
+ const appDataHash = yield this.cidToAppDataHex(cidV0);
130
+ if (!appDataHash) {
131
+ throw new cow_error_1.CowError(`Could not extract appDataHash from calculated cidV0 ${cidV0}`);
132
+ }
133
+ return { cidV0, appDataHash };
134
+ }
135
+ catch (e) {
136
+ const error = e;
137
+ throw new cow_error_1.CowError('Failed to calculate appDataHash', error.message);
138
+ }
139
+ });
140
+ }
141
+ uploadMetadataDocToIpfs(appDataDoc, ipfsConfig) {
142
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
143
+ const { IpfsHash } = yield (0, ipfs_1.pinJSONToIPFS)(appDataDoc, ipfsConfig);
144
+ return this.cidToAppDataHex(IpfsHash);
145
+ });
146
+ }
147
+ }
148
+ exports.MetadataApi = MetadataApi;
149
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/metadata/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './api';
2
+ export * from './types';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./api"), exports);
5
+ tslib_1.__exportStar(require("./types"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":";;;AAAA,gDAAqB;AACrB,kDAAuB"}
@@ -0,0 +1,22 @@
1
+ import type { createAppDataDoc, createOrderClassMetadata, createQuoteMetadata, createReferrerMetadata } from '@cowprotocol/app-data';
2
+ export type { AnyAppDataDocVersion, LatestAppDataDocVersion } from '@cowprotocol/app-data';
3
+ export type GenerateAppDataDocParams = {
4
+ appDataParams?: Omit<Parameters<typeof createAppDataDoc>[0], 'metadata'>;
5
+ metadataParams?: {
6
+ referrerParams?: Parameters<typeof createReferrerMetadata>[0];
7
+ quoteParams?: Parameters<typeof createQuoteMetadata>[0];
8
+ orderClassParams?: Parameters<typeof createOrderClassMetadata>[0];
9
+ };
10
+ };
11
+ export type IpfsHashInfo = {
12
+ /**
13
+ * IPFS's content identifier v0
14
+ * Begins with Qm. See https://docs.ipfs.io/concepts/content-addressing/#identifier-formats
15
+ */
16
+ cidV0: string;
17
+ /**
18
+ * IPFS's content identifier hash
19
+ * NOT a file hash. See https://docs.ipfs.io/concepts/hashing/#important-hash-characteristics
20
+ */
21
+ appDataHash: string;
22
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { AnyAppDataDocVersion } from '@cowprotocol/app-data';
2
+ export declare function getSerializedCID(hash: string): Promise<void | string>;
3
+ export declare function loadIpfsFromCid(cid: string, ipfsUri?: string): Promise<AnyAppDataDocVersion>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadIpfsFromCid = exports.getSerializedCID = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const ipfs_1 = require("../../common/ipfs");
6
+ function fromHexString(hexString) {
7
+ const stringMatch = hexString.match(/.{1,2}/g);
8
+ if (!stringMatch)
9
+ return;
10
+ return new Uint8Array(stringMatch.map((byte) => parseInt(byte, 16)));
11
+ }
12
+ function getSerializedCID(hash) {
13
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
14
+ const cidVersion = 0x1; //cidv1
15
+ const codec = 0x70; //dag-pb
16
+ const type = 0x12; //sha2-256
17
+ const length = 32; //256 bits
18
+ const _hash = hash.replace(/(^0x)/, '');
19
+ const hexHash = fromHexString(_hash);
20
+ if (!hexHash)
21
+ return;
22
+ const uint8array = Uint8Array.from([cidVersion, codec, type, length, ...hexHash]);
23
+ const { CID } = yield Promise.resolve().then(() => tslib_1.__importStar(require('multiformats/cid')));
24
+ return CID.decode(uint8array).toV0().toString();
25
+ });
26
+ }
27
+ exports.getSerializedCID = getSerializedCID;
28
+ function loadIpfsFromCid(cid, ipfsUri = ipfs_1.DEFAULT_IPFS_READ_URI) {
29
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
30
+ const { default: fetch } = yield Promise.resolve().then(() => tslib_1.__importStar(require('cross-fetch')));
31
+ const response = yield fetch(`${ipfsUri}/${cid}`);
32
+ return yield response.json();
33
+ });
34
+ }
35
+ exports.loadIpfsFromCid = loadIpfsFromCid;
36
+ //# sourceMappingURL=appData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appData.js","sourceRoot":"","sources":["../../../src/metadata/utils/appData.ts"],"names":[],"mappings":";;;;AAAA,4CAAyD;AAGzD,SAAS,aAAa,CAAC,SAAiB;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC9C,IAAI,CAAC,WAAW;QAAE,OAAM;IACxB,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,SAAsB,gBAAgB,CAAC,IAAY;;QACjD,MAAM,UAAU,GAAG,GAAG,CAAA,CAAC,OAAO;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAA,CAAC,QAAQ;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAA,CAAC,UAAU;QAC5B,MAAM,MAAM,GAAG,EAAE,CAAA,CAAC,UAAU;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QAEpC,IAAI,CAAC,OAAO;YAAE,OAAM;QAEpB,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;QACjF,MAAM,EAAE,GAAG,EAAE,GAAG,gEAAa,kBAAkB,GAAC,CAAA;QAChD,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAA;IACjD,CAAC;CAAA;AAdD,4CAcC;AAED,SAAsB,eAAe,CAAC,GAAW,EAAE,OAAO,GAAG,4BAAqB;;QAChF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,gEAAa,aAAa,GAAC,CAAA;QACtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC,CAAA;QAEjD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC9B,CAAC;CAAA;AALD,0CAKC"}
@@ -0,0 +1,16 @@
1
+ import { AnyAppDataDocVersion } from '../types';
2
+ type PinataPinResponse = {
3
+ IpfsHash: string;
4
+ PinSize: number;
5
+ Timestamp: string;
6
+ };
7
+ export interface Ipfs {
8
+ uri?: string;
9
+ writeUri?: string;
10
+ readUri?: string;
11
+ pinataApiKey?: string;
12
+ pinataApiSecret?: string;
13
+ }
14
+ export declare function pinJSONToIPFS(file: unknown, { writeUri, pinataApiKey, pinataApiSecret }: Ipfs): Promise<PinataPinResponse>;
15
+ export declare function calculateIpfsCidV0(doc: AnyAppDataDocVersion): Promise<string>;
16
+ export {};
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateIpfsCidV0 = exports.pinJSONToIPFS = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const cow_error_1 = require("../../common/cow-error");
6
+ const ipfs_1 = require("../../common/ipfs");
7
+ function pinJSONToIPFS(file, { writeUri = ipfs_1.DEFAULT_IPFS_WRITE_URI, pinataApiKey = '', pinataApiSecret = '' }) {
8
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
+ const { default: fetch } = yield Promise.resolve().then(() => tslib_1.__importStar(require('cross-fetch')));
10
+ if (!pinataApiKey || !pinataApiSecret) {
11
+ throw new cow_error_1.CowError('You need to pass IPFS api credentials.');
12
+ }
13
+ const body = JSON.stringify({
14
+ pinataContent: file,
15
+ pinataMetadata: { name: 'appData' },
16
+ });
17
+ const pinataUrl = `${writeUri}/pinning/pinJSONToIPFS`;
18
+ const response = yield fetch(pinataUrl, {
19
+ method: 'POST',
20
+ body,
21
+ headers: {
22
+ 'Content-Type': 'application/json',
23
+ pinata_api_key: pinataApiKey,
24
+ pinata_secret_api_key: pinataApiSecret,
25
+ },
26
+ });
27
+ const data = yield response.json();
28
+ if (response.status !== 200) {
29
+ throw new Error(data.error.details || data.error);
30
+ }
31
+ return data;
32
+ });
33
+ }
34
+ exports.pinJSONToIPFS = pinJSONToIPFS;
35
+ function calculateIpfsCidV0(doc) {
36
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
+ const docString = JSON.stringify(doc);
38
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
39
+ // @ts-ignore
40
+ const { of } = yield Promise.resolve().then(() => tslib_1.__importStar(require('ipfs-only-hash')));
41
+ return of(docString, { cidVersion: 0 });
42
+ });
43
+ }
44
+ exports.calculateIpfsCidV0 = calculateIpfsCidV0;
45
+ //# sourceMappingURL=ipfs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipfs.js","sourceRoot":"","sources":["../../../src/metadata/utils/ipfs.ts"],"names":[],"mappings":";;;;AAAA,sDAAiD;AAEjD,4CAA0D;AAgB1D,SAAsB,aAAa,CACjC,IAAa,EACb,EAAE,QAAQ,GAAG,6BAAsB,EAAE,YAAY,GAAG,EAAE,EAAE,eAAe,GAAG,EAAE,EAAQ;;QAEpF,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,gEAAa,aAAa,GAAC,CAAA;QAEtD,IAAI,CAAC,YAAY,IAAI,CAAC,eAAe,EAAE;YACrC,MAAM,IAAI,oBAAQ,CAAC,wCAAwC,CAAC,CAAA;SAC7D;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACpC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,GAAG,QAAQ,wBAAwB,CAAA;QAErD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,cAAc,EAAE,YAAY;gBAC5B,qBAAqB,EAAE,eAAe;aACvC;SACF,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;SAClD;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CAAA;AAlCD,sCAkCC;AAED,SAAsB,kBAAkB,CAAC,GAAyB;;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QAErC,6DAA6D;QAC7D,aAAa;QACb,MAAM,EAAE,EAAE,EAAE,GAAG,gEAAa,gBAAgB,GAAC,CAAA;QAC7C,OAAO,EAAE,CAAC,SAAS,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;IACzC,CAAC;CAAA;AAPD,gDAOC"}
@@ -0,0 +1,31 @@
1
+ import { Address, CancelablePromise, NativePriceResponse, OrderCancellation, OrderCreation, OrderQuoteRequest, OrderQuoteResponse, Trade, TransactionHash, UID } from './generated';
2
+ import { ApiContext, EnvConfigs, PartialApiContext } from '../common/configs';
3
+ import { EnrichedOrder } from './types';
4
+ export declare const ORDER_BOOK_PROD_CONFIG: EnvConfigs;
5
+ export declare const ORDER_BOOK_STAGING_CONFIG: EnvConfigs;
6
+ export declare class OrderBookApi {
7
+ context: ApiContext;
8
+ customEnvConfigs?: EnvConfigs;
9
+ private servicePerNetwork;
10
+ constructor(context?: PartialApiContext, customEnvConfigs?: EnvConfigs);
11
+ getTrades({ owner, orderId }: {
12
+ owner?: Address;
13
+ orderId?: UID;
14
+ }, contextOverride?: PartialApiContext): CancelablePromise<Array<Trade>>;
15
+ getOrders({ owner, offset, limit, }: {
16
+ owner: Address;
17
+ offset?: number;
18
+ limit?: number;
19
+ }, contextOverride?: PartialApiContext): Promise<Array<EnrichedOrder>>;
20
+ getTxOrders(txHash: TransactionHash, contextOverride?: PartialApiContext): Promise<Array<EnrichedOrder>>;
21
+ getOrder(uid: UID, contextOverride?: PartialApiContext): Promise<EnrichedOrder>;
22
+ getOrderMultiEnv(uid: UID, contextOverride?: PartialApiContext): Promise<EnrichedOrder>;
23
+ getQuote(requestBody: OrderQuoteRequest, contextOverride?: PartialApiContext): CancelablePromise<OrderQuoteResponse>;
24
+ sendSignedOrderCancellation(uid: UID, requestBody: OrderCancellation, contextOverride?: PartialApiContext): CancelablePromise<void>;
25
+ sendOrder(requestBody: OrderCreation, contextOverride?: PartialApiContext): Promise<UID>;
26
+ getNativePrice(tokenAddress: Address, contextOverride?: PartialApiContext): CancelablePromise<NativePriceResponse>;
27
+ getOrderLink(uid: UID, contextOverride?: PartialApiContext): string;
28
+ private getServiceForNetwork;
29
+ private getContextWithOverride;
30
+ private getEnvConfigs;
31
+ }
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderBookApi = exports.ORDER_BOOK_STAGING_CONFIG = exports.ORDER_BOOK_PROD_CONFIG = void 0;
4
+ const generated_1 = require("./generated");
5
+ const cow_error_1 = require("../common/cow-error");
6
+ const configs_1 = require("../common/configs");
7
+ const transformOrder_1 = require("./transformOrder");
8
+ const request_1 = require("./generated/core/request");
9
+ const chains_1 = require("../common/chains");
10
+ exports.ORDER_BOOK_PROD_CONFIG = {
11
+ [chains_1.SupportedChainId.MAINNET]: 'https://api.cow.fi/mainnet',
12
+ [chains_1.SupportedChainId.GNOSIS_CHAIN]: 'https://api.cow.fi/xdai',
13
+ [chains_1.SupportedChainId.GOERLI]: 'https://api.cow.fi/goerli',
14
+ };
15
+ exports.ORDER_BOOK_STAGING_CONFIG = {
16
+ [chains_1.SupportedChainId.MAINNET]: 'https://barn.api.cow.fi/mainnet',
17
+ [chains_1.SupportedChainId.GNOSIS_CHAIN]: 'https://barn.api.cow.fi/xdai',
18
+ [chains_1.SupportedChainId.GOERLI]: 'https://barn.api.cow.fi/goerli',
19
+ };
20
+ class FetchHttpRequest extends generated_1.BaseHttpRequest {
21
+ constructor(config) {
22
+ super(config);
23
+ }
24
+ /**
25
+ * Request method
26
+ * @param options The request options from the service
27
+ * @returns CancelablePromise<T>
28
+ * @throws ApiError
29
+ */
30
+ request(options) {
31
+ return (0, request_1.request)(this.config, Object.assign(Object.assign({}, options), { headers: Object.assign(Object.assign({}, options.headers), { 'Content-Type': 'application/json' }) }));
32
+ }
33
+ }
34
+ class OrderBookApi {
35
+ constructor(context = {}, customEnvConfigs) {
36
+ this.servicePerNetwork = {};
37
+ this.context = Object.assign(Object.assign({}, configs_1.DEFAULT_COW_API_CONTEXT), context);
38
+ this.customEnvConfigs = customEnvConfigs;
39
+ }
40
+ getTrades({ owner, orderId }, contextOverride = {}) {
41
+ if (owner && orderId) {
42
+ return new generated_1.CancelablePromise((_, reject) => {
43
+ reject(new cow_error_1.CowError('Cannot specify both owner and orderId'));
44
+ });
45
+ }
46
+ return this.getServiceForNetwork(contextOverride).getApiV1Trades(owner, orderId);
47
+ }
48
+ getOrders({ owner, offset = 0, limit = 1000, }, contextOverride = {}) {
49
+ return this.getServiceForNetwork(contextOverride)
50
+ .getApiV1AccountOrders(owner, offset, limit)
51
+ .then((orders) => {
52
+ return orders.map(transformOrder_1.transformOrder);
53
+ });
54
+ }
55
+ getTxOrders(txHash, contextOverride = {}) {
56
+ return this.getServiceForNetwork(contextOverride)
57
+ .getApiV1TransactionsOrders(txHash)
58
+ .then((orders) => {
59
+ return orders.map(transformOrder_1.transformOrder);
60
+ });
61
+ }
62
+ getOrder(uid, contextOverride = {}) {
63
+ return this.getServiceForNetwork(contextOverride)
64
+ .getApiV1Orders(uid)
65
+ .then((order) => {
66
+ return (0, transformOrder_1.transformOrder)(order);
67
+ });
68
+ }
69
+ getOrderMultiEnv(uid, contextOverride = {}) {
70
+ const { env } = this.getContextWithOverride(contextOverride);
71
+ const otherEnvs = configs_1.ENVS_LIST.filter((i) => i !== env);
72
+ let attemptsCount = 0;
73
+ const fallback = (error) => {
74
+ const nextEnv = otherEnvs[attemptsCount];
75
+ if (error instanceof generated_1.ApiError && error.status === 404 && nextEnv) {
76
+ attemptsCount++;
77
+ return this.getOrder(uid, Object.assign(Object.assign({}, contextOverride), { env: nextEnv })).catch(fallback);
78
+ }
79
+ return Promise.reject(error);
80
+ };
81
+ return this.getOrder(uid, Object.assign(Object.assign({}, contextOverride), { env })).catch(fallback);
82
+ }
83
+ getQuote(requestBody, contextOverride = {}) {
84
+ return this.getServiceForNetwork(contextOverride).postApiV1Quote(requestBody);
85
+ }
86
+ sendSignedOrderCancellation(uid, requestBody, contextOverride = {}) {
87
+ return this.getServiceForNetwork(contextOverride).deleteApiV1Orders1(uid, requestBody);
88
+ }
89
+ sendOrder(requestBody, contextOverride = {}) {
90
+ return this.getServiceForNetwork(contextOverride)
91
+ .postApiV1Orders(requestBody)
92
+ .catch((error) => {
93
+ const body = error.body;
94
+ if (body === null || body === void 0 ? void 0 : body.errorType) {
95
+ throw new Error(body.errorType);
96
+ }
97
+ throw error;
98
+ });
99
+ }
100
+ getNativePrice(tokenAddress, contextOverride = {}) {
101
+ return this.getServiceForNetwork(contextOverride).getApiV1TokenNativePrice(tokenAddress);
102
+ }
103
+ getOrderLink(uid, contextOverride = {}) {
104
+ const { chainId, env } = this.getContextWithOverride(contextOverride);
105
+ return this.getEnvConfigs(env)[chainId] + `/api/v1/orders/${uid}`;
106
+ }
107
+ getServiceForNetwork(contextOverride) {
108
+ const { chainId, env } = this.getContextWithOverride(contextOverride);
109
+ const key = `${env}|${chainId}`;
110
+ const cached = this.servicePerNetwork[key];
111
+ if (cached)
112
+ return cached.default;
113
+ const client = new generated_1.OrderBookClient({ BASE: this.getEnvConfigs(env)[chainId] }, FetchHttpRequest);
114
+ this.servicePerNetwork[key] = client;
115
+ return client.default;
116
+ }
117
+ getContextWithOverride(contextOverride = {}) {
118
+ return Object.assign(Object.assign({}, this.context), contextOverride);
119
+ }
120
+ getEnvConfigs(env) {
121
+ if (this.customEnvConfigs)
122
+ return this.customEnvConfigs;
123
+ return env === 'prod' ? exports.ORDER_BOOK_PROD_CONFIG : exports.ORDER_BOOK_STAGING_CONFIG;
124
+ }
125
+ }
126
+ exports.OrderBookApi = OrderBookApi;
127
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/order-book/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { BaseHttpRequest } from './core/BaseHttpRequest';
2
+ import type { OpenAPIConfig } from './core/OpenAPI';
3
+ import { DefaultService } from './services/DefaultService';
4
+ type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;
5
+ export declare class OrderBookClient {
6
+ readonly default: DefaultService;
7
+ readonly request: BaseHttpRequest;
8
+ constructor(config?: Partial<OpenAPIConfig>, HttpRequest?: HttpRequestConstructor);
9
+ }
10
+ export {};
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrderBookClient = void 0;
4
+ const FetchHttpRequest_1 = require("./core/FetchHttpRequest");
5
+ const DefaultService_1 = require("./services/DefaultService");
6
+ class OrderBookClient {
7
+ constructor(config, HttpRequest = FetchHttpRequest_1.FetchHttpRequest) {
8
+ var _a, _b, _c, _d;
9
+ this.request = new HttpRequest({
10
+ BASE: (_a = config === null || config === void 0 ? void 0 : config.BASE) !== null && _a !== void 0 ? _a : 'https://api.cow.fi/mainnet',
11
+ VERSION: (_b = config === null || config === void 0 ? void 0 : config.VERSION) !== null && _b !== void 0 ? _b : '0.0.1',
12
+ WITH_CREDENTIALS: (_c = config === null || config === void 0 ? void 0 : config.WITH_CREDENTIALS) !== null && _c !== void 0 ? _c : false,
13
+ CREDENTIALS: (_d = config === null || config === void 0 ? void 0 : config.CREDENTIALS) !== null && _d !== void 0 ? _d : 'include',
14
+ TOKEN: config === null || config === void 0 ? void 0 : config.TOKEN,
15
+ USERNAME: config === null || config === void 0 ? void 0 : config.USERNAME,
16
+ PASSWORD: config === null || config === void 0 ? void 0 : config.PASSWORD,
17
+ HEADERS: config === null || config === void 0 ? void 0 : config.HEADERS,
18
+ ENCODE_PATH: config === null || config === void 0 ? void 0 : config.ENCODE_PATH,
19
+ });
20
+ this.default = new DefaultService_1.DefaultService(this.request);
21
+ }
22
+ }
23
+ exports.OrderBookClient = OrderBookClient;
24
+ //# sourceMappingURL=OrderBookClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrderBookClient.js","sourceRoot":"","sources":["../../../src/order-book/generated/OrderBookClient.ts"],"names":[],"mappings":";;;AAKA,8DAA2D;AAE3D,8DAA2D;AAI3D,MAAa,eAAe;IAMxB,YAAY,MAA+B,EAAE,cAAsC,mCAAgB;;QAC/F,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC;YAC3B,IAAI,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,4BAA4B;YAClD,OAAO,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,mCAAI,OAAO;YACnC,gBAAgB,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,mCAAI,KAAK;YACnD,WAAW,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,mCAAI,SAAS;YAC7C,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK;YACpB,QAAQ,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ;YAC1B,QAAQ,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ;YAC1B,OAAO,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;YACxB,WAAW,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AArBD,0CAqBC"}
@@ -0,0 +1,10 @@
1
+ import type { ApiRequestOptions } from './ApiRequestOptions';
2
+ import type { ApiResult } from './ApiResult';
3
+ export declare class ApiError extends Error {
4
+ readonly url: string;
5
+ readonly status: number;
6
+ readonly statusText: string;
7
+ readonly body: any;
8
+ readonly request: ApiRequestOptions;
9
+ constructor(request: ApiRequestOptions, response: ApiResult, message: string);
10
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiError = void 0;
4
+ class ApiError extends Error {
5
+ constructor(request, response, message) {
6
+ super(message);
7
+ this.name = 'ApiError';
8
+ this.url = response.url;
9
+ this.status = response.status;
10
+ this.statusText = response.statusText;
11
+ this.body = response.body;
12
+ this.request = request;
13
+ }
14
+ }
15
+ exports.ApiError = ApiError;
16
+ //# sourceMappingURL=ApiError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiError.js","sourceRoot":"","sources":["../../../../src/order-book/generated/core/ApiError.ts"],"names":[],"mappings":";;;AAMA,MAAa,QAAS,SAAQ,KAAK;IAO/B,YAAY,OAA0B,EAAE,QAAmB,EAAE,OAAe;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAjBD,4BAiBC"}
@@ -0,0 +1,13 @@
1
+ export type ApiRequestOptions = {
2
+ readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH';
3
+ readonly url: string;
4
+ readonly path?: Record<string, any>;
5
+ readonly cookies?: Record<string, any>;
6
+ readonly headers?: Record<string, any>;
7
+ readonly query?: Record<string, any>;
8
+ readonly formData?: Record<string, any>;
9
+ readonly body?: any;
10
+ readonly mediaType?: string;
11
+ readonly responseHeader?: string;
12
+ readonly errors?: Record<number, string>;
13
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ApiRequestOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiRequestOptions.js","sourceRoot":"","sources":["../../../../src/order-book/generated/core/ApiRequestOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export type ApiResult = {
2
+ readonly url: string;
3
+ readonly ok: boolean;
4
+ readonly status: number;
5
+ readonly statusText: string;
6
+ readonly body: any;
7
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ApiResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiResult.js","sourceRoot":"","sources":["../../../../src/order-book/generated/core/ApiResult.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { ApiRequestOptions } from './ApiRequestOptions';
2
+ import type { CancelablePromise } from './CancelablePromise';
3
+ import type { OpenAPIConfig } from './OpenAPI';
4
+ export declare abstract class BaseHttpRequest {
5
+ readonly config: OpenAPIConfig;
6
+ constructor(config: OpenAPIConfig);
7
+ abstract request<T>(options: ApiRequestOptions): CancelablePromise<T>;
8
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseHttpRequest = void 0;
4
+ class BaseHttpRequest {
5
+ constructor(config) {
6
+ this.config = config;
7
+ }
8
+ }
9
+ exports.BaseHttpRequest = BaseHttpRequest;
10
+ //# sourceMappingURL=BaseHttpRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseHttpRequest.js","sourceRoot":"","sources":["../../../../src/order-book/generated/core/BaseHttpRequest.ts"],"names":[],"mappings":";;;AAOA,MAAsB,eAAe;IAEjC,YAA4B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;CAGxD;AALD,0CAKC"}