@swapkit/helpers 4.5.9 → 4.12.3

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 (109) hide show
  1. package/dist/LICENSE +246 -0
  2. package/dist/api/index.cjs +0 -4
  3. package/dist/api/index.js +1 -4
  4. package/dist/chunk-1m30h0t9.js +1 -0
  5. package/dist/chunk-jsgxsr8a.js +4 -0
  6. package/dist/chunk-z5an6869.js +5 -0
  7. package/dist/contracts.cjs +0 -3
  8. package/dist/contracts.js +0 -3
  9. package/dist/index.cjs +1 -7
  10. package/dist/index.js +1 -7
  11. package/dist/tokens.cjs +0 -3
  12. package/dist/tokens.js +0 -3
  13. package/dist/types/api/index.d.ts +126 -153
  14. package/dist/types/api/index.d.ts.map +1 -1
  15. package/dist/types/api/midgard/endpoints.d.ts +2 -1
  16. package/dist/types/api/midgard/endpoints.d.ts.map +1 -1
  17. package/dist/types/api/swapkitApi/endpoints.d.ts +134 -159
  18. package/dist/types/api/swapkitApi/endpoints.d.ts.map +1 -1
  19. package/dist/types/api/swapkitApi/types.d.ts +1038 -23
  20. package/dist/types/api/swapkitApi/types.d.ts.map +1 -1
  21. package/dist/types/api/thornode/endpoints.d.ts +1 -1
  22. package/dist/types/api/thornode/endpoints.d.ts.map +1 -1
  23. package/dist/types/index.d.ts +5 -0
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/modules/assetValue.d.ts +6 -7
  26. package/dist/types/modules/assetValue.d.ts.map +1 -1
  27. package/dist/types/modules/requestClient.d.ts +1 -1
  28. package/dist/types/modules/requestClient.d.ts.map +1 -1
  29. package/dist/types/modules/swapKitConfig.d.ts +24 -78
  30. package/dist/types/modules/swapKitConfig.d.ts.map +1 -1
  31. package/dist/types/modules/swapKitError.d.ts +146 -14
  32. package/dist/types/modules/swapKitError.d.ts.map +1 -1
  33. package/dist/types/modules/widgetAuth.d.ts +6 -0
  34. package/dist/types/modules/widgetAuth.d.ts.map +1 -0
  35. package/dist/types/types/derivationPath.d.ts +1 -1
  36. package/dist/types/types/derivationPath.d.ts.map +1 -1
  37. package/dist/types/types/quotes.d.ts +2 -6
  38. package/dist/types/types/quotes.d.ts.map +1 -1
  39. package/dist/types/types/sdk.d.ts +6 -0
  40. package/dist/types/types/sdk.d.ts.map +1 -1
  41. package/dist/types/types/wallet.d.ts +12 -3
  42. package/dist/types/types/wallet.d.ts.map +1 -1
  43. package/dist/types/utils/asset.d.ts +17 -1
  44. package/dist/types/utils/asset.d.ts.map +1 -1
  45. package/dist/types/utils/chains.d.ts +5 -0
  46. package/dist/types/utils/chains.d.ts.map +1 -1
  47. package/dist/types/utils/derivationPath.d.ts +4 -2
  48. package/dist/types/utils/derivationPath.d.ts.map +1 -1
  49. package/dist/types/utils/wallets.d.ts +18 -2
  50. package/dist/types/utils/wallets.d.ts.map +1 -1
  51. package/package.json +12 -30
  52. package/dist/api/index.cjs.map +0 -14
  53. package/dist/api/index.js.map +0 -14
  54. package/dist/chunk-pfmeq01a.js +0 -5
  55. package/dist/chunk-pfmeq01a.js.map +0 -9
  56. package/dist/chunk-vb4wtm2w.js +0 -4
  57. package/dist/chunk-vb4wtm2w.js.map +0 -9
  58. package/dist/contracts.cjs.map +0 -10
  59. package/dist/contracts.js.map +0 -10
  60. package/dist/index.cjs.map +0 -30
  61. package/dist/index.js.map +0 -30
  62. package/dist/tokens.cjs.map +0 -10
  63. package/dist/tokens.js.map +0 -10
  64. package/src/api/index.ts +0 -9
  65. package/src/api/midgard/endpoints.ts +0 -348
  66. package/src/api/midgard/types.ts +0 -515
  67. package/src/api/swapkitApi/endpoints.ts +0 -247
  68. package/src/api/swapkitApi/types.ts +0 -624
  69. package/src/api/thornode/endpoints.ts +0 -105
  70. package/src/api/thornode/types.ts +0 -247
  71. package/src/contracts.ts +0 -1
  72. package/src/index.ts +0 -28
  73. package/src/modules/__tests__/assetValue.test.ts +0 -2452
  74. package/src/modules/__tests__/bigIntArithmetics.test.ts +0 -410
  75. package/src/modules/__tests__/feeMultiplier.test.ts +0 -125
  76. package/src/modules/__tests__/swapKitConfig.test.ts +0 -425
  77. package/src/modules/__tests__/swapKitNumber.test.ts +0 -435
  78. package/src/modules/assetValue.ts +0 -532
  79. package/src/modules/bigIntArithmetics.ts +0 -362
  80. package/src/modules/feeMultiplier.ts +0 -80
  81. package/src/modules/requestClient.ts +0 -110
  82. package/src/modules/swapKitConfig.ts +0 -174
  83. package/src/modules/swapKitError.ts +0 -470
  84. package/src/modules/swapKitNumber.ts +0 -13
  85. package/src/tokens.ts +0 -1
  86. package/src/types/commonTypes.ts +0 -10
  87. package/src/types/derivationPath.ts +0 -11
  88. package/src/types/errors/apiV1.ts +0 -0
  89. package/src/types/index.ts +0 -5
  90. package/src/types/quotes.ts +0 -174
  91. package/src/types/sdk.ts +0 -38
  92. package/src/types/wallet.ts +0 -124
  93. package/src/utils/__tests__/asset.test.ts +0 -186
  94. package/src/utils/__tests__/derivationPath.test.ts +0 -142
  95. package/src/utils/__tests__/explorerUrls.test.ts +0 -59
  96. package/src/utils/__tests__/liquidity.test.ts +0 -302
  97. package/src/utils/__tests__/memo.test.ts +0 -99
  98. package/src/utils/__tests__/others.test.ts +0 -165
  99. package/src/utils/__tests__/validators.test.ts +0 -84
  100. package/src/utils/__tests__/wallets.test.ts +0 -621
  101. package/src/utils/asset.ts +0 -399
  102. package/src/utils/chains.ts +0 -100
  103. package/src/utils/derivationPath.ts +0 -101
  104. package/src/utils/explorerUrls.ts +0 -32
  105. package/src/utils/liquidity.ts +0 -150
  106. package/src/utils/memo.ts +0 -102
  107. package/src/utils/others.ts +0 -62
  108. package/src/utils/validators.ts +0 -32
  109. package/src/utils/wallets.ts +0 -237
@@ -1,348 +0,0 @@
1
- import { AssetValue, RequestClient, SwapKitNumber } from "@swapkit/helpers";
2
- import { Chain, getChainConfig, type TCLikeChain } from "@swapkit/types";
3
- import type {
4
- Action,
5
- ActionQuery,
6
- Balance,
7
- Constants,
8
- DepthHistory,
9
- EarningsHistory,
10
- HealthInfo,
11
- HistoryQuery,
12
- MemberDetailsMayachain,
13
- MemberDetailsThorchain,
14
- MimirVote,
15
- NetworkInfo,
16
- Node,
17
- PagedResponse,
18
- Pool,
19
- PoolStats,
20
- SaverDetails,
21
- SaversHistory,
22
- Stats,
23
- SwapHistory,
24
- THORNameDetails,
25
- TVLHistory,
26
- } from "./types";
27
-
28
- function getMidgardBaseUrl(isThorchain = true) {
29
- return isThorchain ? "https://midgard.ninerealms.com" : "https://midgard.mayachain.info";
30
- }
31
-
32
- function getNameServiceBaseUrl(isThorchain = true) {
33
- const baseUrl = getMidgardBaseUrl(isThorchain);
34
- return isThorchain ? `${baseUrl}/v2/thorname` : `${baseUrl}/v2/mayaname`;
35
- }
36
-
37
- function getPools(baseUrl: string) {
38
- return function getPools(status?: string): Promise<Pool[]> {
39
- const params = status ? `?status=${status}` : "";
40
- return RequestClient.get<Pool[]>(`${baseUrl}/v2/pools${params}`);
41
- };
42
- }
43
-
44
- function getPool(baseUrl: string) {
45
- return function getPool(asset: string): Promise<Pool> {
46
- return RequestClient.get<Pool>(`${baseUrl}/v2/pool/${asset}`);
47
- };
48
- }
49
-
50
- function getPoolStats(baseUrl: string) {
51
- return function getPoolStats(asset: string, period?: string): Promise<PoolStats> {
52
- const params = period ? `?period=${period}` : "";
53
- return RequestClient.get<PoolStats>(`${baseUrl}/v2/pool/${asset}/stats${params}`);
54
- };
55
- }
56
-
57
- function getPoolDepthHistory(baseUrl: string) {
58
- return function getPoolDepthHistory(asset: string, query?: HistoryQuery): Promise<DepthHistory> {
59
- const params = new URLSearchParams();
60
- if (query?.interval) params.append("interval", query.interval);
61
- if (query?.count) params.append("count", query.count.toString());
62
- if (query?.from) params.append("from", query.from.toString());
63
- if (query?.to) params.append("to", query.to.toString());
64
- const queryString = params.toString() ? `?${params.toString()}` : "";
65
- return RequestClient.get<DepthHistory>(`${baseUrl}/v2/history/depths/${asset}${queryString}`);
66
- };
67
- }
68
-
69
- function getNetworkInfo(baseUrl: string) {
70
- return function getNetworkInfo(): Promise<NetworkInfo> {
71
- return RequestClient.get<NetworkInfo>(`${baseUrl}/v2/network`);
72
- };
73
- }
74
-
75
- function getHealth(baseUrl: string) {
76
- return function getHealth(): Promise<HealthInfo> {
77
- return RequestClient.get<HealthInfo>(`${baseUrl}/v2/health`);
78
- };
79
- }
80
-
81
- function getNodes(baseUrl: string) {
82
- return function getNodes(): Promise<Node[]> {
83
- return RequestClient.get<Node[]>(`${baseUrl}/v2/nodes`);
84
- };
85
- }
86
-
87
- function getNode(baseUrl: string) {
88
- return function getNode(address: string): Promise<Node> {
89
- return RequestClient.get<Node>(`${baseUrl}/v2/node/${address}`);
90
- };
91
- }
92
-
93
- function getMimirVotes(baseUrl: string) {
94
- return function getMimirVotes(): Promise<MimirVote[]> {
95
- return RequestClient.get<MimirVote[]>(`${baseUrl}/v2/mimir/votes`);
96
- };
97
- }
98
-
99
- function getMimir(baseUrl: string) {
100
- return function getMimir(): Promise<Record<string, string>> {
101
- return RequestClient.get<Record<string, string>>(`${baseUrl}/v2/mimir`);
102
- };
103
- }
104
-
105
- function getConstants(baseUrl: string) {
106
- return function getConstants(): Promise<Constants> {
107
- return RequestClient.get<Constants>(`${baseUrl}/v2/constants`);
108
- };
109
- }
110
-
111
- function getStats(baseUrl: string) {
112
- return function getStats(): Promise<Stats> {
113
- return RequestClient.get<Stats>(`${baseUrl}/v2/stats`);
114
- };
115
- }
116
-
117
- function getEarningsHistory(baseUrl: string) {
118
- return function getEarningsHistory(query?: HistoryQuery): Promise<EarningsHistory> {
119
- const params = new URLSearchParams();
120
- if (query?.interval) params.append("interval", query.interval);
121
- if (query?.count) params.append("count", query.count.toString());
122
- if (query?.from) params.append("from", query.from.toString());
123
- if (query?.to) params.append("to", query.to.toString());
124
- const queryString = params.toString() ? `?${params.toString()}` : "";
125
- return RequestClient.get<EarningsHistory>(`${baseUrl}/v2/history/earnings${queryString}`);
126
- };
127
- }
128
-
129
- function getSwapHistory(baseUrl: string) {
130
- return function getSwapHistory(pool?: string, query?: HistoryQuery): Promise<SwapHistory> {
131
- const params = new URLSearchParams();
132
- if (query?.interval) params.append("interval", query.interval);
133
- if (query?.count) params.append("count", query.count.toString());
134
- if (query?.from) params.append("from", query.from.toString());
135
- if (query?.to) params.append("to", query.to.toString());
136
- const queryString = params.toString() ? `?${params.toString()}` : "";
137
- const poolPath = pool ? `/swaps/${pool}` : "/swaps";
138
- return RequestClient.get<SwapHistory>(`${baseUrl}/v2/history${poolPath}${queryString}`);
139
- };
140
- }
141
-
142
- function getTVLHistory(baseUrl: string) {
143
- return function getTVLHistory(query?: HistoryQuery): Promise<TVLHistory> {
144
- const params = new URLSearchParams();
145
- if (query?.interval) params.append("interval", query.interval);
146
- if (query?.count) params.append("count", query.count.toString());
147
- if (query?.from) params.append("from", query.from.toString());
148
- if (query?.to) params.append("to", query.to.toString());
149
- const queryString = params.toString() ? `?${params.toString()}` : "";
150
- return RequestClient.get<TVLHistory>(`${baseUrl}/v2/history/tvl${queryString}`);
151
- };
152
- }
153
-
154
- function buildActionParams(query?: ActionQuery): string {
155
- if (!query) return "";
156
- const params = new URLSearchParams();
157
- const appendParam = (key: keyof ActionQuery, value: any) => {
158
- if (value !== undefined) {
159
- params.append(key, typeof value === "number" ? value.toString() : value);
160
- }
161
- };
162
- appendParam("address", query.address);
163
- appendParam("txid", query.txid);
164
- appendParam("asset", query.asset);
165
- appendParam("type", query.type);
166
- appendParam("affiliate", query.affiliate);
167
- appendParam("limit", query.limit);
168
- appendParam("offset", query.offset);
169
- return params.toString() ? `?${params.toString()}` : "";
170
- }
171
-
172
- function getActions(baseUrl: string) {
173
- return function getActions(query?: ActionQuery): Promise<PagedResponse<Action>> {
174
- const queryString = buildActionParams(query);
175
- return RequestClient.get<PagedResponse<Action>>(`${baseUrl}/v2/actions${queryString}`);
176
- };
177
- }
178
-
179
- function getLiquidityPositionRaw<Chain extends TCLikeChain>(baseUrl: string) {
180
- return function getLiquidityPosition(
181
- address: string,
182
- ): Promise<Chain extends typeof Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain> {
183
- return RequestClient.get<Chain extends typeof Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain>(
184
- `${baseUrl}/v2/member/${address}`,
185
- );
186
- };
187
- }
188
-
189
- function getMembers(baseUrl: string) {
190
- return function getMembers(pool?: string): Promise<string[]> {
191
- const poolPath = pool ? `/${pool}` : "";
192
- return RequestClient.get<string[]>(`${baseUrl}/v2/members${poolPath}`);
193
- };
194
- }
195
-
196
- function getSaverDetails(baseUrl: string) {
197
- return function getSaverDetails(address: string, pool?: string): Promise<SaverDetails[]> {
198
- const poolPath = pool ? `&asset=${pool}` : "";
199
- return RequestClient.get<SaverDetails[]>(
200
- `${baseUrl}/v2/saver/${address}${poolPath ? `?${poolPath.substring(1)}` : ""}`,
201
- );
202
- };
203
- }
204
-
205
- function getSavers(baseUrl: string) {
206
- return function getSavers(pool: string): Promise<string[]> {
207
- return RequestClient.get<string[]>(`${baseUrl}/v2/savers/${pool}`);
208
- };
209
- }
210
-
211
- function getSaversHistory(baseUrl: string) {
212
- return function getSaversHistory(pool?: string, query?: HistoryQuery): Promise<SaversHistory> {
213
- const params = new URLSearchParams();
214
- if (query?.interval) params.append("interval", query.interval);
215
- if (query?.count) params.append("count", query.count.toString());
216
- if (query?.from) params.append("from", query.from.toString());
217
- if (query?.to) params.append("to", query.to.toString());
218
- const queryString = params.toString() ? `?${params.toString()}` : "";
219
- const poolPath = pool ? `/savers/${pool}` : "/savers";
220
- return RequestClient.get<SaversHistory>(`${baseUrl}/v2/history${poolPath}${queryString}`);
221
- };
222
- }
223
-
224
- function getBalance(baseUrl: string) {
225
- return function getBalance(address: string): Promise<Balance[]> {
226
- return RequestClient.get<Balance[]>(`${baseUrl}/v2/balance/${address}`);
227
- };
228
- }
229
-
230
- function getNameDetails(baseUrl: string) {
231
- return async function getNamesByAddress(name: string) {
232
- const errorHandler = (error: any) => {
233
- // Handle specific error cases
234
- if (error?.cause?.status === 404) {
235
- return undefined;
236
- }
237
- throw error;
238
- };
239
- return await RequestClient.get<THORNameDetails>(`${baseUrl}/lookup/${name}`, {
240
- onError: errorHandler,
241
- retry: { maxRetries: 1 },
242
- });
243
- };
244
- }
245
-
246
- function getNamesByAddress(baseUrl: string) {
247
- return async function getNamesByAddress(address: string) {
248
- const errorHandler = (error: any) => {
249
- // Handle specific error cases
250
- if (error?.cause?.status === 404) {
251
- return [];
252
- }
253
- throw error;
254
- };
255
- return await RequestClient.get<string[]>(`${baseUrl}/rlookup/${address}`, {
256
- onError: errorHandler,
257
- retry: { maxRetries: 1 },
258
- });
259
- };
260
- }
261
-
262
- function getNamesByOwner(baseUrl: string) {
263
- return async function getNamesByOwner(address: string) {
264
- const errorHandler = (error: any) => {
265
- // Handle specific error cases
266
- if (error?.cause?.status === 404) {
267
- return [];
268
- }
269
- throw error;
270
- };
271
- return await RequestClient.get<string[]>(`${baseUrl}/owner/${address}`, {
272
- onError: errorHandler,
273
- retry: { maxRetries: 1 },
274
- });
275
- };
276
- }
277
-
278
- function getPoolAsset({ asset, value }: { asset: string; value: string }) {
279
- return AssetValue.from({ asset, fromBaseDecimal: getChainConfig(Chain.THORChain).baseDecimal, value });
280
- }
281
-
282
- function getLiquidityPosition<IsThorchain extends boolean = true>({
283
- liquidityPositionGetter,
284
- isThorchain,
285
- }: {
286
- liquidityPositionGetter: ReturnType<
287
- typeof getLiquidityPositionRaw<IsThorchain extends true ? typeof Chain.THORChain : typeof Chain.Maya>
288
- >;
289
- isThorchain: IsThorchain;
290
- }) {
291
- return async function getLiquidityPosition(address: string) {
292
- const rawLiquidityPositions = await liquidityPositionGetter(address);
293
- const fieldPrefix = isThorchain ? "rune" : "cacao";
294
-
295
- return rawLiquidityPositions.pools.map((p) => ({
296
- [`${fieldPrefix}Pending`]: getPoolAsset({ asset: "THOR.RUNE", value: p.runePending }),
297
- [`${fieldPrefix}RegisteredAddress`]: p.runeAddress,
298
- [`${fieldPrefix}Withdrawn`]: getPoolAsset({ asset: "THOR.RUNE", value: p.runeWithdrawn }),
299
- [fieldPrefix]: getPoolAsset({ asset: "THOR.RUNE", value: p.runeAdded }),
300
- asset: getPoolAsset({ asset: p.pool, value: p.assetAdded }),
301
- assetPending: getPoolAsset({ asset: p.pool, value: p.assetPending }),
302
- assetRegisteredAddress: p.assetAddress,
303
- assetWithdrawn: getPoolAsset({ asset: p.pool, value: p.assetWithdrawn }),
304
- dateFirstAdded: p.dateFirstAdded,
305
- dateLastAdded: p.dateLastAdded,
306
- poolShare: new SwapKitNumber(p.liquidityUnits).div(p.pool),
307
- }));
308
- };
309
- }
310
-
311
- function getMidgardMethodsForProtocol<T extends TCLikeChain>(chain: T) {
312
- const isThorchain = chain === Chain.THORChain;
313
- const midgardBaseUrl = getMidgardBaseUrl(isThorchain);
314
- const nameServiceBaseUrl = getNameServiceBaseUrl(isThorchain);
315
- const liquidityPositionGetter = getLiquidityPositionRaw<T>(midgardBaseUrl);
316
-
317
- return {
318
- getActions: getActions(midgardBaseUrl),
319
- getBalance: getBalance(midgardBaseUrl),
320
- getConstants: getConstants(midgardBaseUrl),
321
- getEarningsHistory: getEarningsHistory(midgardBaseUrl),
322
- getHealth: getHealth(midgardBaseUrl),
323
- getLiquidityPosition: getLiquidityPosition({ isThorchain, liquidityPositionGetter }),
324
- getLiquidityPositionRaw: liquidityPositionGetter,
325
- getMembers: getMembers(midgardBaseUrl),
326
- getMimir: getMimir(midgardBaseUrl),
327
- getMimirVotes: getMimirVotes(midgardBaseUrl),
328
- getNameDetails: getNameDetails(nameServiceBaseUrl),
329
- getNamesByAddress: getNamesByAddress(nameServiceBaseUrl),
330
- getNamesByOwner: getNamesByOwner(nameServiceBaseUrl),
331
- getNetworkInfo: getNetworkInfo(midgardBaseUrl),
332
- getNode: getNode(midgardBaseUrl),
333
- getNodes: getNodes(midgardBaseUrl),
334
- getPool: getPool(midgardBaseUrl),
335
- getPoolDepthHistory: getPoolDepthHistory(midgardBaseUrl),
336
- getPoolStats: getPoolStats(midgardBaseUrl),
337
- getPools: getPools(midgardBaseUrl),
338
- getSaverDetails: getSaverDetails(midgardBaseUrl),
339
- getSavers: getSavers(midgardBaseUrl),
340
- getSaversHistory: getSaversHistory(midgardBaseUrl),
341
- getStats: getStats(midgardBaseUrl),
342
- getSwapHistory: getSwapHistory(midgardBaseUrl),
343
- getTVLHistory: getTVLHistory(midgardBaseUrl),
344
- };
345
- }
346
-
347
- export const thorchainMidgard = getMidgardMethodsForProtocol(Chain.THORChain);
348
- export const mayachainMidgard = getMidgardMethodsForProtocol(Chain.Maya);