@d8x/perpetuals-sdk 0.6.4 → 0.6.5

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 (48) hide show
  1. package/dist/cjs/version.d.ts +1 -1
  2. package/dist/cjs/version.js +1 -1
  3. package/dist/esm/version.d.ts +1 -1
  4. package/dist/esm/version.js +1 -1
  5. package/package.json +2 -1
  6. package/src/abi/ERC20.json +288 -0
  7. package/src/abi/IPerpetualManager.json +5888 -0
  8. package/src/abi/LimitOrderBook.json +1062 -0
  9. package/src/abi/LimitOrderBookFactory.json +161 -0
  10. package/src/abi/MockTokenSwap.json +186 -0
  11. package/src/abi/ShareToken.json +428 -0
  12. package/src/accountTrade.ts +428 -0
  13. package/src/brokerTool.ts +555 -0
  14. package/src/config/defaultConfig.json +62 -0
  15. package/src/config/mockSwap.json +6 -0
  16. package/src/config/priceFeedConfig.json +104 -0
  17. package/src/config/symbolList.json +13 -0
  18. package/src/contracts/ERC20.ts +444 -0
  19. package/src/contracts/IPerpetualManager.ts +7227 -0
  20. package/src/contracts/LimitOrderBook.ts +1251 -0
  21. package/src/contracts/LimitOrderBookFactory.ts +348 -0
  22. package/src/contracts/MockTokenSwap.ts +373 -0
  23. package/src/contracts/ShareToken.ts +695 -0
  24. package/src/contracts/common.ts +44 -0
  25. package/src/contracts/factories/ERC20__factory.ts +306 -0
  26. package/src/contracts/factories/IPerpetualManager__factory.ts +5912 -0
  27. package/src/contracts/factories/LimitOrderBookFactory__factory.ts +189 -0
  28. package/src/contracts/factories/LimitOrderBook__factory.ts +1086 -0
  29. package/src/contracts/factories/MockTokenSwap__factory.ts +207 -0
  30. package/src/contracts/factories/ShareToken__factory.ts +449 -0
  31. package/src/contracts/factories/index.ts +9 -0
  32. package/src/contracts/index.ts +16 -0
  33. package/src/d8XMath.ts +376 -0
  34. package/src/index.ts +29 -0
  35. package/src/liquidatorTool.ts +270 -0
  36. package/src/liquidityProviderTool.ts +148 -0
  37. package/src/marketData.ts +1310 -0
  38. package/src/nodeSDKTypes.ts +332 -0
  39. package/src/orderReferrerTool.ts +516 -0
  40. package/src/perpetualDataHandler.ts +1161 -0
  41. package/src/perpetualEventHandler.ts +455 -0
  42. package/src/priceFeeds.ts +382 -0
  43. package/src/traderDigests.ts +86 -0
  44. package/src/traderInterface.ts +172 -0
  45. package/src/triangulator.ts +105 -0
  46. package/src/utils.ts +134 -0
  47. package/src/version.ts +1 -0
  48. package/src/writeAccessHandler.ts +139 -0
@@ -0,0 +1,104 @@
1
+ [
2
+ {
3
+ "network": "testnet",
4
+ "ids": [
5
+ {
6
+ "symbol": "BTC-USD",
7
+ "id": "0xf9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b",
8
+ "type": "pyth",
9
+ "origin": "Crypto.BTC/USD"
10
+ },
11
+ {
12
+ "symbol": "ETH-USD",
13
+ "id": "0xca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6",
14
+ "type": "pyth",
15
+ "origin": "Crypto.ETH/USD"
16
+ },
17
+ {
18
+ "symbol": "MATIC-USD",
19
+ "id": "0xd2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5",
20
+ "type": "pyth",
21
+ "origin": "Crypto.MATIC/USD"
22
+ },
23
+ {
24
+ "symbol": "USDC-USD",
25
+ "id": "0x41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722",
26
+ "type": "pyth",
27
+ "origin": "Crypto.USDC/USD"
28
+ },
29
+ {
30
+ "symbol": "XAU-USD",
31
+ "id": "0x30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e",
32
+ "type": "pyth",
33
+ "origin": "Metal.XAU/USD"
34
+ },
35
+ {
36
+ "symbol": "USD-CHF",
37
+ "id": "0x796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb",
38
+ "type": "pyth",
39
+ "origin": "FX.USD/CHF"
40
+ },
41
+ {
42
+ "symbol": "GBP-USD",
43
+ "id": "0xbcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd",
44
+ "type": "pyth",
45
+ "origin": "FX.GBP/USD"
46
+ },
47
+ {
48
+ "symbol": "EUR-USD",
49
+ "id": "0xc1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154",
50
+ "type": "pyth",
51
+ "origin": "FX.EUR/USD"
52
+ },
53
+ {
54
+ "symbol": "USD-JPY",
55
+ "id": "0x20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776",
56
+ "type": "pyth",
57
+ "origin": "FX.USD/JPY"
58
+ }
59
+ ],
60
+ "endpoints": [{ "type": "pyth", "endpoint": "https://xc-testnet.pyth.network/api" }]
61
+ },
62
+ {
63
+ "network": "mainnet",
64
+ "ids": [
65
+ {
66
+ "symbol": "USDC-USD",
67
+ "id": "0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a",
68
+ "type": "pyth",
69
+ "origin": "Crypto.USDC/USD"
70
+ },
71
+ {
72
+ "symbol": "BTC-USD",
73
+ "id": "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43",
74
+ "type": "pyth",
75
+ "origin": "Crypto.BTC/USD"
76
+ },
77
+ {
78
+ "symbol": "ETH-USD",
79
+ "id": "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace",
80
+ "type": "pyth",
81
+ "origin": "Crypto.ETH/USD"
82
+ },
83
+ {
84
+ "symbol": "MATIC-USD",
85
+ "id": "0x5de33a9112c2b700b8d30b8a3402c103578ccfa2765696471cc672bd5cf6ac52",
86
+ "type": "pyth",
87
+ "origin": "Crypto.MATIC/USD"
88
+ },
89
+ {
90
+ "symbol": "USD-CHF",
91
+ "id": "0x0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8",
92
+ "type": "pyth",
93
+ "origin": "FX.USD/CHF"
94
+ },
95
+ {
96
+ "symbol": "XAU-USD",
97
+ "id": "0x765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2",
98
+ "type": "pyth",
99
+ "origin": "Metal.XAU/USD"
100
+ }
101
+ ],
102
+ "endpoints": [{ "type": "pyth", "endpoint": "https://xc-mainnet.pyth.network/api" }]
103
+ }
104
+ ]
@@ -0,0 +1,13 @@
1
+ {
2
+ "MATC": "MATIC",
3
+ "ETH": "ETH",
4
+ "BTC": "BTC",
5
+ "USDC": "USDC",
6
+ "XAU": "XAU",
7
+ "XAG": "XAG",
8
+ "USD": "USD",
9
+ "GBP": "GBP",
10
+ "CHF": "CHF",
11
+ "EUR": "EUR",
12
+ "JPY": "JPY"
13
+ }
@@ -0,0 +1,444 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type {
5
+ BaseContract,
6
+ BigNumber,
7
+ BigNumberish,
8
+ BytesLike,
9
+ CallOverrides,
10
+ ContractTransaction,
11
+ Overrides,
12
+ PopulatedTransaction,
13
+ Signer,
14
+ utils,
15
+ } from "ethers";
16
+ import type {
17
+ FunctionFragment,
18
+ Result,
19
+ EventFragment,
20
+ } from "@ethersproject/abi";
21
+ import type { Listener, Provider } from "@ethersproject/providers";
22
+ import type {
23
+ TypedEventFilter,
24
+ TypedEvent,
25
+ TypedListener,
26
+ OnEvent,
27
+ } from "./common";
28
+
29
+ export interface ERC20Interface extends utils.Interface {
30
+ functions: {
31
+ "allowance(address,address)": FunctionFragment;
32
+ "approve(address,uint256)": FunctionFragment;
33
+ "balanceOf(address)": FunctionFragment;
34
+ "decimals()": FunctionFragment;
35
+ "decreaseAllowance(address,uint256)": FunctionFragment;
36
+ "increaseAllowance(address,uint256)": FunctionFragment;
37
+ "name()": FunctionFragment;
38
+ "symbol()": FunctionFragment;
39
+ "totalSupply()": FunctionFragment;
40
+ "transfer(address,uint256)": FunctionFragment;
41
+ "transferFrom(address,address,uint256)": FunctionFragment;
42
+ };
43
+
44
+ getFunction(
45
+ nameOrSignatureOrTopic:
46
+ | "allowance"
47
+ | "approve"
48
+ | "balanceOf"
49
+ | "decimals"
50
+ | "decreaseAllowance"
51
+ | "increaseAllowance"
52
+ | "name"
53
+ | "symbol"
54
+ | "totalSupply"
55
+ | "transfer"
56
+ | "transferFrom"
57
+ ): FunctionFragment;
58
+
59
+ encodeFunctionData(
60
+ functionFragment: "allowance",
61
+ values: [string, string]
62
+ ): string;
63
+ encodeFunctionData(
64
+ functionFragment: "approve",
65
+ values: [string, BigNumberish]
66
+ ): string;
67
+ encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
68
+ encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
69
+ encodeFunctionData(
70
+ functionFragment: "decreaseAllowance",
71
+ values: [string, BigNumberish]
72
+ ): string;
73
+ encodeFunctionData(
74
+ functionFragment: "increaseAllowance",
75
+ values: [string, BigNumberish]
76
+ ): string;
77
+ encodeFunctionData(functionFragment: "name", values?: undefined): string;
78
+ encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
79
+ encodeFunctionData(
80
+ functionFragment: "totalSupply",
81
+ values?: undefined
82
+ ): string;
83
+ encodeFunctionData(
84
+ functionFragment: "transfer",
85
+ values: [string, BigNumberish]
86
+ ): string;
87
+ encodeFunctionData(
88
+ functionFragment: "transferFrom",
89
+ values: [string, string, BigNumberish]
90
+ ): string;
91
+
92
+ decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
93
+ decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
94
+ decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
95
+ decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
96
+ decodeFunctionResult(
97
+ functionFragment: "decreaseAllowance",
98
+ data: BytesLike
99
+ ): Result;
100
+ decodeFunctionResult(
101
+ functionFragment: "increaseAllowance",
102
+ data: BytesLike
103
+ ): Result;
104
+ decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
105
+ decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
106
+ decodeFunctionResult(
107
+ functionFragment: "totalSupply",
108
+ data: BytesLike
109
+ ): Result;
110
+ decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
111
+ decodeFunctionResult(
112
+ functionFragment: "transferFrom",
113
+ data: BytesLike
114
+ ): Result;
115
+
116
+ events: {
117
+ "Approval(address,address,uint256)": EventFragment;
118
+ "Transfer(address,address,uint256)": EventFragment;
119
+ };
120
+
121
+ getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
122
+ getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
123
+ }
124
+
125
+ export interface ApprovalEventObject {
126
+ owner: string;
127
+ spender: string;
128
+ value: BigNumber;
129
+ }
130
+ export type ApprovalEvent = TypedEvent<
131
+ [string, string, BigNumber],
132
+ ApprovalEventObject
133
+ >;
134
+
135
+ export type ApprovalEventFilter = TypedEventFilter<ApprovalEvent>;
136
+
137
+ export interface TransferEventObject {
138
+ from: string;
139
+ to: string;
140
+ value: BigNumber;
141
+ }
142
+ export type TransferEvent = TypedEvent<
143
+ [string, string, BigNumber],
144
+ TransferEventObject
145
+ >;
146
+
147
+ export type TransferEventFilter = TypedEventFilter<TransferEvent>;
148
+
149
+ export interface ERC20 extends BaseContract {
150
+ connect(signerOrProvider: Signer | Provider | string): this;
151
+ attach(addressOrName: string): this;
152
+ deployed(): Promise<this>;
153
+
154
+ interface: ERC20Interface;
155
+
156
+ queryFilter<TEvent extends TypedEvent>(
157
+ event: TypedEventFilter<TEvent>,
158
+ fromBlockOrBlockhash?: string | number | undefined,
159
+ toBlock?: string | number | undefined
160
+ ): Promise<Array<TEvent>>;
161
+
162
+ listeners<TEvent extends TypedEvent>(
163
+ eventFilter?: TypedEventFilter<TEvent>
164
+ ): Array<TypedListener<TEvent>>;
165
+ listeners(eventName?: string): Array<Listener>;
166
+ removeAllListeners<TEvent extends TypedEvent>(
167
+ eventFilter: TypedEventFilter<TEvent>
168
+ ): this;
169
+ removeAllListeners(eventName?: string): this;
170
+ off: OnEvent<this>;
171
+ on: OnEvent<this>;
172
+ once: OnEvent<this>;
173
+ removeListener: OnEvent<this>;
174
+
175
+ functions: {
176
+ allowance(
177
+ owner: string,
178
+ spender: string,
179
+ overrides?: CallOverrides
180
+ ): Promise<[BigNumber]>;
181
+
182
+ approve(
183
+ spender: string,
184
+ amount: BigNumberish,
185
+ overrides?: Overrides & { from?: string }
186
+ ): Promise<ContractTransaction>;
187
+
188
+ balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
189
+
190
+ decimals(overrides?: CallOverrides): Promise<[number]>;
191
+
192
+ decreaseAllowance(
193
+ spender: string,
194
+ subtractedValue: BigNumberish,
195
+ overrides?: Overrides & { from?: string }
196
+ ): Promise<ContractTransaction>;
197
+
198
+ increaseAllowance(
199
+ spender: string,
200
+ addedValue: BigNumberish,
201
+ overrides?: Overrides & { from?: string }
202
+ ): Promise<ContractTransaction>;
203
+
204
+ name(overrides?: CallOverrides): Promise<[string]>;
205
+
206
+ symbol(overrides?: CallOverrides): Promise<[string]>;
207
+
208
+ totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
209
+
210
+ transfer(
211
+ to: string,
212
+ amount: BigNumberish,
213
+ overrides?: Overrides & { from?: string }
214
+ ): Promise<ContractTransaction>;
215
+
216
+ transferFrom(
217
+ from: string,
218
+ to: string,
219
+ amount: BigNumberish,
220
+ overrides?: Overrides & { from?: string }
221
+ ): Promise<ContractTransaction>;
222
+ };
223
+
224
+ allowance(
225
+ owner: string,
226
+ spender: string,
227
+ overrides?: CallOverrides
228
+ ): Promise<BigNumber>;
229
+
230
+ approve(
231
+ spender: string,
232
+ amount: BigNumberish,
233
+ overrides?: Overrides & { from?: string }
234
+ ): Promise<ContractTransaction>;
235
+
236
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
237
+
238
+ decimals(overrides?: CallOverrides): Promise<number>;
239
+
240
+ decreaseAllowance(
241
+ spender: string,
242
+ subtractedValue: BigNumberish,
243
+ overrides?: Overrides & { from?: string }
244
+ ): Promise<ContractTransaction>;
245
+
246
+ increaseAllowance(
247
+ spender: string,
248
+ addedValue: BigNumberish,
249
+ overrides?: Overrides & { from?: string }
250
+ ): Promise<ContractTransaction>;
251
+
252
+ name(overrides?: CallOverrides): Promise<string>;
253
+
254
+ symbol(overrides?: CallOverrides): Promise<string>;
255
+
256
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
257
+
258
+ transfer(
259
+ to: string,
260
+ amount: BigNumberish,
261
+ overrides?: Overrides & { from?: string }
262
+ ): Promise<ContractTransaction>;
263
+
264
+ transferFrom(
265
+ from: string,
266
+ to: string,
267
+ amount: BigNumberish,
268
+ overrides?: Overrides & { from?: string }
269
+ ): Promise<ContractTransaction>;
270
+
271
+ callStatic: {
272
+ allowance(
273
+ owner: string,
274
+ spender: string,
275
+ overrides?: CallOverrides
276
+ ): Promise<BigNumber>;
277
+
278
+ approve(
279
+ spender: string,
280
+ amount: BigNumberish,
281
+ overrides?: CallOverrides
282
+ ): Promise<boolean>;
283
+
284
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
285
+
286
+ decimals(overrides?: CallOverrides): Promise<number>;
287
+
288
+ decreaseAllowance(
289
+ spender: string,
290
+ subtractedValue: BigNumberish,
291
+ overrides?: CallOverrides
292
+ ): Promise<boolean>;
293
+
294
+ increaseAllowance(
295
+ spender: string,
296
+ addedValue: BigNumberish,
297
+ overrides?: CallOverrides
298
+ ): Promise<boolean>;
299
+
300
+ name(overrides?: CallOverrides): Promise<string>;
301
+
302
+ symbol(overrides?: CallOverrides): Promise<string>;
303
+
304
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
305
+
306
+ transfer(
307
+ to: string,
308
+ amount: BigNumberish,
309
+ overrides?: CallOverrides
310
+ ): Promise<boolean>;
311
+
312
+ transferFrom(
313
+ from: string,
314
+ to: string,
315
+ amount: BigNumberish,
316
+ overrides?: CallOverrides
317
+ ): Promise<boolean>;
318
+ };
319
+
320
+ filters: {
321
+ "Approval(address,address,uint256)"(
322
+ owner?: string | null,
323
+ spender?: string | null,
324
+ value?: null
325
+ ): ApprovalEventFilter;
326
+ Approval(
327
+ owner?: string | null,
328
+ spender?: string | null,
329
+ value?: null
330
+ ): ApprovalEventFilter;
331
+
332
+ "Transfer(address,address,uint256)"(
333
+ from?: string | null,
334
+ to?: string | null,
335
+ value?: null
336
+ ): TransferEventFilter;
337
+ Transfer(
338
+ from?: string | null,
339
+ to?: string | null,
340
+ value?: null
341
+ ): TransferEventFilter;
342
+ };
343
+
344
+ estimateGas: {
345
+ allowance(
346
+ owner: string,
347
+ spender: string,
348
+ overrides?: CallOverrides
349
+ ): Promise<BigNumber>;
350
+
351
+ approve(
352
+ spender: string,
353
+ amount: BigNumberish,
354
+ overrides?: Overrides & { from?: string }
355
+ ): Promise<BigNumber>;
356
+
357
+ balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
358
+
359
+ decimals(overrides?: CallOverrides): Promise<BigNumber>;
360
+
361
+ decreaseAllowance(
362
+ spender: string,
363
+ subtractedValue: BigNumberish,
364
+ overrides?: Overrides & { from?: string }
365
+ ): Promise<BigNumber>;
366
+
367
+ increaseAllowance(
368
+ spender: string,
369
+ addedValue: BigNumberish,
370
+ overrides?: Overrides & { from?: string }
371
+ ): Promise<BigNumber>;
372
+
373
+ name(overrides?: CallOverrides): Promise<BigNumber>;
374
+
375
+ symbol(overrides?: CallOverrides): Promise<BigNumber>;
376
+
377
+ totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
378
+
379
+ transfer(
380
+ to: string,
381
+ amount: BigNumberish,
382
+ overrides?: Overrides & { from?: string }
383
+ ): Promise<BigNumber>;
384
+
385
+ transferFrom(
386
+ from: string,
387
+ to: string,
388
+ amount: BigNumberish,
389
+ overrides?: Overrides & { from?: string }
390
+ ): Promise<BigNumber>;
391
+ };
392
+
393
+ populateTransaction: {
394
+ allowance(
395
+ owner: string,
396
+ spender: string,
397
+ overrides?: CallOverrides
398
+ ): Promise<PopulatedTransaction>;
399
+
400
+ approve(
401
+ spender: string,
402
+ amount: BigNumberish,
403
+ overrides?: Overrides & { from?: string }
404
+ ): Promise<PopulatedTransaction>;
405
+
406
+ balanceOf(
407
+ account: string,
408
+ overrides?: CallOverrides
409
+ ): Promise<PopulatedTransaction>;
410
+
411
+ decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
412
+
413
+ decreaseAllowance(
414
+ spender: string,
415
+ subtractedValue: BigNumberish,
416
+ overrides?: Overrides & { from?: string }
417
+ ): Promise<PopulatedTransaction>;
418
+
419
+ increaseAllowance(
420
+ spender: string,
421
+ addedValue: BigNumberish,
422
+ overrides?: Overrides & { from?: string }
423
+ ): Promise<PopulatedTransaction>;
424
+
425
+ name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
426
+
427
+ symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
428
+
429
+ totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
430
+
431
+ transfer(
432
+ to: string,
433
+ amount: BigNumberish,
434
+ overrides?: Overrides & { from?: string }
435
+ ): Promise<PopulatedTransaction>;
436
+
437
+ transferFrom(
438
+ from: string,
439
+ to: string,
440
+ amount: BigNumberish,
441
+ overrides?: Overrides & { from?: string }
442
+ ): Promise<PopulatedTransaction>;
443
+ };
444
+ }