@swapkit/helpers 4.4.5 → 4.5.2

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 (69) hide show
  1. package/dist/api/index.cjs +2 -2
  2. package/dist/api/index.cjs.map +4 -4
  3. package/dist/api/index.js +2 -2
  4. package/dist/api/index.js.map +4 -4
  5. package/dist/index.cjs +3 -3
  6. package/dist/index.cjs.map +10 -10
  7. package/dist/index.js +3 -3
  8. package/dist/index.js.map +10 -10
  9. package/dist/types/api/index.d.ts +247 -0
  10. package/dist/types/api/index.d.ts.map +1 -1
  11. package/dist/types/api/swapkitApi/endpoints.d.ts +247 -0
  12. package/dist/types/api/swapkitApi/endpoints.d.ts.map +1 -1
  13. package/dist/types/api/swapkitApi/types.d.ts +3 -1
  14. package/dist/types/api/swapkitApi/types.d.ts.map +1 -1
  15. package/dist/types/modules/assetValue.d.ts +6 -0
  16. package/dist/types/modules/assetValue.d.ts.map +1 -1
  17. package/dist/types/modules/bigIntArithmetics.d.ts.map +1 -1
  18. package/dist/types/modules/swapKitConfig.d.ts +63 -36
  19. package/dist/types/modules/swapKitConfig.d.ts.map +1 -1
  20. package/dist/types/modules/swapKitError.d.ts +20 -24
  21. package/dist/types/modules/swapKitError.d.ts.map +1 -1
  22. package/dist/types/types/wallet.d.ts +5 -1
  23. package/dist/types/types/wallet.d.ts.map +1 -1
  24. package/dist/types/utils/asset.d.ts +1 -1
  25. package/dist/types/utils/asset.d.ts.map +1 -1
  26. package/package.json +24 -12
  27. package/src/api/index.ts +9 -0
  28. package/src/api/midgard/endpoints.ts +348 -0
  29. package/src/api/midgard/types.ts +515 -0
  30. package/src/api/swapkitApi/endpoints.ts +242 -0
  31. package/src/api/swapkitApi/types.ts +624 -0
  32. package/src/api/thornode/endpoints.ts +105 -0
  33. package/src/api/thornode/types.ts +247 -0
  34. package/src/contracts.ts +1 -0
  35. package/src/index.ts +28 -0
  36. package/src/modules/__tests__/assetValue.test.ts +1637 -0
  37. package/src/modules/__tests__/bigIntArithmetics.test.ts +383 -0
  38. package/src/modules/__tests__/swapKitConfig.test.ts +425 -0
  39. package/src/modules/__tests__/swapKitNumber.test.ts +535 -0
  40. package/src/modules/assetValue.ts +532 -0
  41. package/src/modules/bigIntArithmetics.ts +363 -0
  42. package/src/modules/feeMultiplier.ts +80 -0
  43. package/src/modules/requestClient.ts +110 -0
  44. package/src/modules/swapKitConfig.ts +174 -0
  45. package/src/modules/swapKitError.ts +470 -0
  46. package/src/modules/swapKitNumber.ts +13 -0
  47. package/src/tokens.ts +1 -0
  48. package/src/types/commonTypes.ts +10 -0
  49. package/src/types/derivationPath.ts +11 -0
  50. package/src/types/errors/apiV1.ts +0 -0
  51. package/src/types/index.ts +5 -0
  52. package/src/types/quotes.ts +174 -0
  53. package/src/types/sdk.ts +38 -0
  54. package/src/types/wallet.ts +124 -0
  55. package/src/utils/__tests__/asset.test.ts +185 -0
  56. package/src/utils/__tests__/derivationPath.test.ts +16 -0
  57. package/src/utils/__tests__/explorerUrls.test.ts +59 -0
  58. package/src/utils/__tests__/memo.test.ts +99 -0
  59. package/src/utils/__tests__/others.test.ts +83 -0
  60. package/src/utils/__tests__/validators.test.ts +24 -0
  61. package/src/utils/asset.ts +395 -0
  62. package/src/utils/chains.ts +100 -0
  63. package/src/utils/derivationPath.ts +101 -0
  64. package/src/utils/explorerUrls.ts +32 -0
  65. package/src/utils/liquidity.ts +150 -0
  66. package/src/utils/memo.ts +102 -0
  67. package/src/utils/others.ts +62 -0
  68. package/src/utils/validators.ts +32 -0
  69. package/src/utils/wallets.ts +237 -0
@@ -0,0 +1,105 @@
1
+ import { AssetValue, RequestClient, SKConfig } from "@swapkit/helpers";
2
+ import { MAYAConfig, StagenetMAYAConfig, StagenetTHORConfig, THORConfig } from "@swapkit/types";
3
+ import type {
4
+ InboundAddressesItem,
5
+ LastBlockItem,
6
+ MimirData,
7
+ NodeItem,
8
+ RunePoolInfo,
9
+ RunePoolProviderInfo,
10
+ TCYClaimerResponse,
11
+ TCYClaimersResponse,
12
+ TCYStakerResponse,
13
+ TCYStakersResponse,
14
+ THORNodeTNSDetails,
15
+ THORNodeType,
16
+ } from "./types";
17
+
18
+ function baseUrl(type?: THORNodeType) {
19
+ const { isStagenet } = SKConfig.get("envs");
20
+
21
+ switch (type) {
22
+ case "mayachain": {
23
+ const nodeUrl = isStagenet ? StagenetMAYAConfig.nodeUrl : MAYAConfig.nodeUrl;
24
+ return `${nodeUrl}/mayachain`;
25
+ }
26
+ default: {
27
+ const nodeUrl = isStagenet ? StagenetTHORConfig.nodeUrl : THORConfig.nodeUrl;
28
+
29
+ return `${nodeUrl}/thorchain`;
30
+ }
31
+ }
32
+ }
33
+
34
+ function getNameServiceBaseUrl(type?: THORNodeType) {
35
+ const nsType = type === "mayachain" ? "mayaname" : "thorname";
36
+
37
+ return `${baseUrl(type)}/${nsType}`;
38
+ }
39
+
40
+ export function getLastBlock<T extends THORNodeType = "thorchain">(type: T = "thorchain" as T) {
41
+ return RequestClient.get<LastBlockItem<T>[]>(`${baseUrl(type)}/lastblock`);
42
+ }
43
+
44
+ export function getThorchainQueue(type?: THORNodeType) {
45
+ return RequestClient.get(`${baseUrl(type)}/queue`);
46
+ }
47
+
48
+ export function getNodes(type?: THORNodeType) {
49
+ return RequestClient.get<NodeItem[]>(`${baseUrl(type)}/nodes`);
50
+ }
51
+
52
+ export function getMimirInfo(type?: THORNodeType) {
53
+ return RequestClient.get<MimirData>(`${baseUrl(type)}/mimir`);
54
+ }
55
+
56
+ export function getInboundAddresses(type?: THORNodeType) {
57
+ return RequestClient.get<InboundAddressesItem[]>(`${baseUrl(type)}/inbound_addresses`);
58
+ }
59
+
60
+ export async function getTHORNodeTNSDetails({
61
+ type,
62
+ name,
63
+ }: {
64
+ type?: THORNodeType;
65
+ name: string;
66
+ }): Promise<THORNodeTNSDetails> {
67
+ try {
68
+ const result = await RequestClient.get<THORNodeTNSDetails>(`${getNameServiceBaseUrl(type)}/${name}`);
69
+ return result;
70
+ } catch {
71
+ return { affiliate_collector_rune: "", aliases: [], expire_block_height: 0, name, owner: "", preferred_asset: "" };
72
+ }
73
+ }
74
+
75
+ export async function getTNSPreferredAsset({ type, tns }: { type?: THORNodeType; tns: string }) {
76
+ const tnsDetails = await getTHORNodeTNSDetails({ name: tns, type });
77
+
78
+ if (!tnsDetails.preferred_asset || tnsDetails.preferred_asset === ".") return undefined;
79
+
80
+ return AssetValue.from({ asset: tnsDetails.preferred_asset, asyncTokenLookup: true });
81
+ }
82
+
83
+ export function getRunePoolInfo(type?: THORNodeType) {
84
+ return RequestClient.get<RunePoolInfo>(`${baseUrl(type)}/runepool`);
85
+ }
86
+
87
+ export function getRunePoolProviderInfo({ type, thorAddress }: { type?: THORNodeType; thorAddress: string }) {
88
+ return RequestClient.get<RunePoolProviderInfo>(`${baseUrl(type)}/rune_provider/${thorAddress}`);
89
+ }
90
+
91
+ export function getTcyStaker({ type, address }: { type?: THORNodeType; address: string }) {
92
+ return RequestClient.get<TCYStakerResponse>(`${baseUrl(type)}/tcy_staker/${address}`);
93
+ }
94
+
95
+ export function getTcyStakers(type?: THORNodeType) {
96
+ return RequestClient.get<TCYStakersResponse>(`${baseUrl(type)}/tcy_stakers`);
97
+ }
98
+
99
+ export function getTcyClaimer({ type, address }: { type?: THORNodeType; address: string }) {
100
+ return RequestClient.get<TCYClaimerResponse>(`${baseUrl(type)}/tcy_claimer/${address}`);
101
+ }
102
+
103
+ export function getTcyClaimers(type?: THORNodeType) {
104
+ return RequestClient.get<TCYClaimersResponse>(`${baseUrl(type)}/tcy_claimers`);
105
+ }
@@ -0,0 +1,247 @@
1
+ export type THORNodeType = "thorchain" | "mayachain";
2
+
3
+ export type THORNodeTNSDetails = {
4
+ name: string;
5
+ expire_block_height: number;
6
+ owner: string;
7
+ preferred_asset: string;
8
+ affiliate_collector_rune: string;
9
+ aliases: { chain: string; address: string }[];
10
+ };
11
+
12
+ export type InboundAddressesItem = {
13
+ address: string;
14
+ chain: string;
15
+ gas_rate?: string;
16
+ halted: boolean;
17
+ pub_key: string;
18
+ router?: string;
19
+ global_trading_paused: boolean;
20
+ chain_trading_paused: boolean;
21
+ chain_lp_actions_paused: boolean;
22
+ observed_fee_rate?: string;
23
+ gas_rate_units: string;
24
+ outbound_tx_size: string;
25
+ outbound_fee: string;
26
+ dust_threshold: string;
27
+ };
28
+
29
+ export type LastBlockItem<T extends THORNodeType = "thorchain"> = {
30
+ chain: string;
31
+ last_observed_in: number;
32
+ last_signed_out: number;
33
+ } & {
34
+ [K in T]: number;
35
+ };
36
+
37
+ export type NodeItem = {
38
+ active_block_height: number;
39
+ bond_address: string;
40
+ current_award: string;
41
+ forced_to_leave: boolean;
42
+ ip_address: string;
43
+ leave_height: number;
44
+ node_address: string;
45
+ requested_to_leave: boolean;
46
+ signer_membership: string[];
47
+ slash_points: number;
48
+ status: string;
49
+ status_since: number;
50
+ total_bond: string;
51
+ validator_cons_pub_key: string;
52
+ version: string;
53
+ jail: any;
54
+ preflight_status: any;
55
+ pub_key_set: any;
56
+ observe_chains: { chain: string; height: number }[];
57
+ };
58
+
59
+ export type MimirData = {
60
+ ADR012: number;
61
+ ASGARDSIZE: number;
62
+ BADVALIDATORREDLINE: number;
63
+ BURNSYNTHS: number;
64
+ CHURNINTERVAL: number;
65
+ CLOUTLIMIT: number;
66
+ CONFMULTIPLIERBASISPOINTS: number;
67
+ DEPRECATEILP: number;
68
+ DERIVEDDEPTHBASISPTS: number;
69
+ DERIVEDMINDEPTH: number;
70
+ DESIREDVALIDATORSET: number;
71
+ DYNAMICMAXANCHORTARGET: number;
72
+ EMISSIONCURVE: number;
73
+ ENABLEAVAXCHAIN: number;
74
+ ENABLEBSC: number;
75
+ ENABLESAVINGSVAULTS: number;
76
+ FULLIMPLOSSPROTECTIONBLOCKS: number;
77
+ FUNDMIGRATIONINTERVAL: number;
78
+ HALTAVAXCHAIN: number;
79
+ HALTAVAXTRADING: number;
80
+ HALTBCHCHAIN: number;
81
+ HALTBCHTRADING: number;
82
+ HALTBSCCHAIN: number;
83
+ HALTBSCTRADING: number;
84
+ HALTBTCCHAIN: number;
85
+ HALTBTCTRADING: number;
86
+ HALTCHAINGLOBAL: number;
87
+ HALTCHURNING: number;
88
+ HALTDOGECHAIN: number;
89
+ HALTDOGETRADING: number;
90
+ HALTETHCHAIN: number;
91
+ HALTETHTRADING: number;
92
+ HALTGAIACHAIN: number;
93
+ HALTGAIATRADING: number;
94
+ HALTLTCCHAIN: number;
95
+ HALTLTCTRADING: number;
96
+ HALTSIGNING: number;
97
+ HALTSIGNINGAVAX: number;
98
+ HALTSIGNINGBCH: number;
99
+ HALTSIGNINGBSC: number;
100
+ HALTSIGNINGBTC: number;
101
+ HALTSIGNINGDOGE: number;
102
+ HALTSIGNINGETH: number;
103
+ HALTSIGNINGGAIA: number;
104
+ HALTSIGNINGLTC: number;
105
+ HALTSIGNINGTERRA: number;
106
+ HALTTERRACHAIN: number;
107
+ HALTTERRATRADING: number;
108
+ HALTTHORCHAIN: number;
109
+ HALTTRADING: number;
110
+ ILPCUTOFF: number;
111
+ KEYGENRETRYINTERVAL: number;
112
+ KILLSWITCHSTART: number;
113
+ "LENDING-THOR-BTC": number;
114
+ "LENDING-THOR-ETH": number;
115
+ LENDINGLEVER: number;
116
+ LOANREPAYMENTMATURITY: number;
117
+ LOANSTREAMINGSWAPSINTERVAL: number;
118
+ MAXANCHORBLOCKS: number;
119
+ MAXANCHORSLIP: number;
120
+ MAXBONDPROVIDERS: number;
121
+ MAXCONFIRMATIONS: number;
122
+ MAXCR: number;
123
+ MAXIMUMLIQUIDITYRUNE: number;
124
+ MAXNODETOCHURNOUTFORLOWVERSION: number;
125
+ MAXOUTBOUNDATTEMPTS: number;
126
+ MAXOUTBOUNDFEEMULTIPLIERBASISPOINTS: number;
127
+ MAXRUNESUPPLY: number;
128
+ MAXSYNTHPERPOOLDEPTH: number;
129
+ MAXSYNTHSFORSAVERSYIELD: number;
130
+ MAXUTXOSTOSPEND: number;
131
+ MINCR: number;
132
+ MINIMUMBONDINRUNE: number;
133
+ MINIMUML1OUTBOUNDFEEUSD: number;
134
+ MINOUTBOUNDFEEMULTIPLIERBASISPOINTS: number;
135
+ MINRUNEPOOLDEPTH: number;
136
+ MINTSYNTHS: number;
137
+ NODEOPERATORFEE: number;
138
+ NODEPAUSECHAINGLOBAL: number;
139
+ NUMBEROFNEWNODESPERCHURN: number;
140
+ OBSERVATIONDELAYFLEXIBILITY: number;
141
+ "PAUSEASYMWITHDRAWAL-TERRA": number;
142
+ PAUSELOANS: number;
143
+ PAUSELP: number;
144
+ PAUSELPAVAX: number;
145
+ PAUSELPBCH: number;
146
+ PAUSELPBSC: number;
147
+ PAUSELPBTC: number;
148
+ PAUSELPDOGE: number;
149
+ PAUSELPETH: number;
150
+ PAUSELPGAIA: number;
151
+ PAUSELPLTC: number;
152
+ PAUSELPTERRA: number;
153
+ PAUSEUNBOND: number;
154
+ PENDINGLIQUIDITYAGELIMIT: number;
155
+ "POL-AVAX-AVAX": number;
156
+ "POL-AVAX-USDC-0XB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E": number;
157
+ "POL-BCH-BCH": number;
158
+ "POL-BSC-USDC-0X8AC76A51CC950D9822D68B83FE1AD97B32CD580D": number;
159
+ "POL-BTC-BTC": number;
160
+ "POL-DOGE-DOGE": number;
161
+ "POL-ETH-DAI-0X6B175474E89094C44DA98B954EEDEAC495271D0F": number;
162
+ "POL-ETH-ETH": number;
163
+ "POL-ETH-USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48": number;
164
+ "POL-ETH-USDT-0XDAC17F958D2EE523A2206206994597C13D831EC7": number;
165
+ "POL-GAIA-ATOM": number;
166
+ "POL-LTC-LTC": number;
167
+ POLBUFFER: number;
168
+ POLMAXNETWORKDEPOSIT: number;
169
+ POLMAXPOOLMOVEMENT: number;
170
+ POLTARGETSYNTHPERPOOLDEPTH: number;
171
+ POOLCYCLE: number;
172
+ POOLDEPTHFORYGGFUNDINGMIN: number;
173
+ PREFERREDASSETOUTBOUNDFEEMULTIPLIER: number;
174
+ RESCHEDULECOALESCEBLOCKS: number;
175
+ SAVERSSTREAMINGSWAPSINTERVAL: number;
176
+ SIGNERCONCURRENCY: number;
177
+ SLASHPENALTY: number;
178
+ SOLVENCYHALTAVAXCHAIN: number;
179
+ SOLVENCYHALTBCHCHAIN: number;
180
+ SOLVENCYHALTBSCCHAIN: number;
181
+ SOLVENCYHALTDOGECHAIN: number;
182
+ SOLVENCYHALTETHCHAIN: number;
183
+ SOLVENCYHALTGAIACHAIN: number;
184
+ SOLVENCYHALTTERRACHAIN: number;
185
+ STOPFUNDYGGDRASIL: number;
186
+ STOPSOLVENCYCHECK: number;
187
+ STOPSOLVENCYCHECKAVAX: number;
188
+ STOPSOLVENCYCHECKBSC: number;
189
+ STOPSOLVENCYCHECKDOGE: number;
190
+ STOPSOLVENCYCHECKETH: number;
191
+ STOPSOLVENCYCHECKGAIA: number;
192
+ STOPSOLVENCYCHECKTERRA: number;
193
+ STREAMINGSWAPMINBPFEE: number;
194
+ SYNTHYIELDBASISPOINTS: number;
195
+ THORNAMES: number;
196
+ "TORANCHOR-AVAX-USDC-0XB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E": number;
197
+ "TORANCHOR-AVAX-USDT-0X9702230A8EA53601F5CD2DC00FDBC13D4DF4A8C7": number;
198
+ "TORANCHOR-BSC-USDC-0X8AC76A51CC950D9822D68B83FE1AD97B32CD580D": number;
199
+ "TORANCHOR-ETH-DAI-0X6B175474E89094C44DA98B954EEDEAC495271D0F": number;
200
+ "TORANCHOR-ETH-USDC-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48": number;
201
+ "TORANCHOR-ETH-USDT-0XDAC17F958D2EE523A2206206994597C13D831EC7": number;
202
+ TXOUTDELAYRATE: number;
203
+ VIRTUALMULTSYNTHS: number;
204
+ VOTEDOFM: number;
205
+ VOTELENDING: number;
206
+ VOTEMAXSYNTHSFORSAVERSYIELD: number;
207
+ YGGFUNDLIMIT: number;
208
+ YGGFUNDRETRY: number;
209
+ };
210
+
211
+ export type RunePoolInfo = {
212
+ pol: { rune_deposited: string; rune_withdrawn: string; value: string; pnl: string; current_deposit: string };
213
+ providers: {
214
+ units: string;
215
+ pending_units: string;
216
+ pending_rune: string;
217
+ value: string;
218
+ pnl: string;
219
+ current_deposit: string;
220
+ };
221
+ reserve: { units: string; value: string; pnl: string; current_deposit: string };
222
+ };
223
+
224
+ export type RunePoolProviderInfo = {
225
+ rune_address: string;
226
+ units: string;
227
+ value: string;
228
+ pnl: string;
229
+ deposit_amount: string;
230
+ withdraw_amount: string;
231
+ last_deposit_height: number;
232
+ last_withdraw_height: number;
233
+ };
234
+
235
+ export type TCYStakerSummary = { amount: string };
236
+
237
+ export type TCYStaker = { address?: string; amount: string };
238
+
239
+ export type TCYStakerResponse = TCYStaker;
240
+ export type TCYStakersResponse = TCYStakerSummary[];
241
+
242
+ export type TCYClaimerSummary = { amount: string; asset: string };
243
+
244
+ export type TCYClaimer = { l1_address?: string; amount: string; asset: string };
245
+
246
+ export type TCYClaimerResponse = TCYClaimer;
247
+ export type TCYClaimersResponse = TCYClaimerSummary[];
@@ -0,0 +1 @@
1
+ export * from "@swapkit/contracts";
package/src/index.ts ADDED
@@ -0,0 +1,28 @@
1
+ export * from "@swapkit/tokens";
2
+ export * from "@swapkit/types";
3
+ /**
4
+ * Modules
5
+ */
6
+ export * from "./modules/assetValue";
7
+ export * from "./modules/bigIntArithmetics";
8
+ export * from "./modules/feeMultiplier";
9
+ export * from "./modules/requestClient";
10
+ export * from "./modules/swapKitConfig";
11
+ export * from "./modules/swapKitError";
12
+ export * from "./modules/swapKitNumber";
13
+ /**
14
+ * Types
15
+ */
16
+ export * from "./types";
17
+ /**
18
+ * Utils
19
+ */
20
+ export * from "./utils/asset";
21
+ export * from "./utils/chains";
22
+ export * from "./utils/derivationPath";
23
+ export * from "./utils/explorerUrls";
24
+ export * from "./utils/liquidity";
25
+ export * from "./utils/memo";
26
+ export * from "./utils/others";
27
+ export * from "./utils/validators";
28
+ export * from "./utils/wallets";