@d8x/perpetuals-sdk 0.7.13 → 0.7.15
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.
- package/dist/cjs/abi/IPyth.json +471 -0
- package/dist/cjs/abi/OracleFactory.json +457 -0
- package/dist/cjs/abi/zkevmTestnet/IPerpetualManager.json +5780 -0
- package/dist/cjs/abi/zkevmTestnet/LimitOrderBook.json +1107 -0
- package/dist/cjs/abi/zkevmTestnet/LimitOrderBookFactory.json +235 -0
- package/dist/cjs/abi/zkevmTestnet/ShareToken.json +438 -0
- package/dist/cjs/config/defaultConfig.json +2 -2
- package/dist/cjs/config/priceFeedConfig.json +67 -1
- package/dist/cjs/contracts/IPyth.d.ts +234 -0
- package/dist/cjs/contracts/IPyth.js +3 -0
- package/dist/cjs/contracts/IPyth.js.map +1 -0
- package/dist/cjs/contracts/OracleFactory.d.ts +288 -0
- package/dist/cjs/contracts/OracleFactory.js +3 -0
- package/dist/cjs/contracts/OracleFactory.js.map +1 -0
- package/dist/cjs/contracts/factories/IPyth__factory.d.ts +367 -0
- package/dist/cjs/contracts/factories/IPyth__factory.js +489 -0
- package/dist/cjs/contracts/factories/IPyth__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +361 -0
- package/dist/cjs/contracts/factories/OracleFactory__factory.js +475 -0
- package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/index.d.ts +2 -0
- package/dist/cjs/contracts/factories/index.js +5 -1
- package/dist/cjs/contracts/factories/index.js.map +1 -1
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.d.ts +4513 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +5801 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.d.ts +189 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +256 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.d.ts +864 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +1128 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.d.ts +344 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js +459 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/index.d.ts +4 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/index.js +15 -0
- package/dist/cjs/contracts/factories/zkevmTestnet/index.js.map +1 -0
- package/dist/cjs/contracts/index.d.ts +4 -0
- package/dist/cjs/contracts/index.js +5 -1
- package/dist/cjs/contracts/index.js.map +1 -1
- package/dist/cjs/contracts/zkevmTestnet/IPerpetualManager.d.ts +2946 -0
- package/dist/cjs/contracts/zkevmTestnet/IPerpetualManager.js +3 -0
- package/dist/cjs/contracts/zkevmTestnet/IPerpetualManager.js.map +1 -0
- package/dist/cjs/contracts/zkevmTestnet/LimitOrderBook.d.ts +600 -0
- package/dist/cjs/contracts/zkevmTestnet/LimitOrderBook.js +3 -0
- package/dist/cjs/contracts/zkevmTestnet/LimitOrderBook.js.map +1 -0
- package/dist/cjs/contracts/zkevmTestnet/LimitOrderBookFactory.d.ts +210 -0
- package/dist/cjs/contracts/zkevmTestnet/LimitOrderBookFactory.js +3 -0
- package/dist/cjs/contracts/zkevmTestnet/LimitOrderBookFactory.js.map +1 -0
- package/dist/cjs/contracts/zkevmTestnet/ShareToken.d.ts +320 -0
- package/dist/cjs/contracts/zkevmTestnet/ShareToken.js +3 -0
- package/dist/cjs/contracts/zkevmTestnet/ShareToken.js.map +1 -0
- package/dist/cjs/contracts/zkevmTestnet/index.d.ts +4 -0
- package/dist/cjs/contracts/zkevmTestnet/index.js +3 -0
- package/dist/cjs/contracts/zkevmTestnet/index.js.map +1 -0
- package/dist/cjs/marketData.js +3 -5
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/traderInterface.d.ts +75 -1
- package/dist/cjs/traderInterface.js +101 -0
- package/dist/cjs/traderInterface.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/abi/IPyth.json +471 -0
- package/dist/esm/abi/OracleFactory.json +457 -0
- package/dist/esm/abi/zkevmTestnet/IPerpetualManager.json +5780 -0
- package/dist/esm/abi/zkevmTestnet/LimitOrderBook.json +1107 -0
- package/dist/esm/abi/zkevmTestnet/LimitOrderBookFactory.json +235 -0
- package/dist/esm/abi/zkevmTestnet/ShareToken.json +438 -0
- package/dist/esm/config/defaultConfig.json +2 -2
- package/dist/esm/config/priceFeedConfig.json +67 -1
- package/dist/esm/contracts/IPyth.d.ts +234 -0
- package/dist/esm/contracts/IPyth.js +2 -0
- package/dist/esm/contracts/IPyth.js.map +1 -0
- package/dist/esm/contracts/OracleFactory.d.ts +288 -0
- package/dist/esm/contracts/OracleFactory.js +2 -0
- package/dist/esm/contracts/OracleFactory.js.map +1 -0
- package/dist/esm/contracts/factories/IPyth__factory.d.ts +367 -0
- package/dist/esm/contracts/factories/IPyth__factory.js +485 -0
- package/dist/esm/contracts/factories/IPyth__factory.js.map +1 -0
- package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +361 -0
- package/dist/esm/contracts/factories/OracleFactory__factory.js +471 -0
- package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -0
- package/dist/esm/contracts/factories/index.d.ts +2 -0
- package/dist/esm/contracts/factories/index.js +2 -0
- package/dist/esm/contracts/factories/index.js.map +1 -1
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.d.ts +4513 -0
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js +5798 -0
- package/dist/esm/contracts/factories/zkevmTestnet/IPerpetualManager__factory.js.map +1 -0
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.d.ts +189 -0
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js +253 -0
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.d.ts +864 -0
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js +1125 -0
- package/dist/esm/contracts/factories/zkevmTestnet/LimitOrderBook__factory.js.map +1 -0
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.d.ts +344 -0
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js +456 -0
- package/dist/esm/contracts/factories/zkevmTestnet/ShareToken__factory.js.map +1 -0
- package/dist/esm/contracts/factories/zkevmTestnet/index.d.ts +4 -0
- package/dist/esm/contracts/factories/zkevmTestnet/index.js +8 -0
- package/dist/esm/contracts/factories/zkevmTestnet/index.js.map +1 -0
- package/dist/esm/contracts/index.d.ts +4 -0
- package/dist/esm/contracts/index.js +2 -0
- package/dist/esm/contracts/index.js.map +1 -1
- package/dist/esm/contracts/zkevmTestnet/IPerpetualManager.d.ts +2946 -0
- package/dist/esm/contracts/zkevmTestnet/IPerpetualManager.js +2 -0
- package/dist/esm/contracts/zkevmTestnet/IPerpetualManager.js.map +1 -0
- package/dist/esm/contracts/zkevmTestnet/LimitOrderBook.d.ts +600 -0
- package/dist/esm/contracts/zkevmTestnet/LimitOrderBook.js +2 -0
- package/dist/esm/contracts/zkevmTestnet/LimitOrderBook.js.map +1 -0
- package/dist/esm/contracts/zkevmTestnet/LimitOrderBookFactory.d.ts +210 -0
- package/dist/esm/contracts/zkevmTestnet/LimitOrderBookFactory.js +2 -0
- package/dist/esm/contracts/zkevmTestnet/LimitOrderBookFactory.js.map +1 -0
- package/dist/esm/contracts/zkevmTestnet/ShareToken.d.ts +320 -0
- package/dist/esm/contracts/zkevmTestnet/ShareToken.js +2 -0
- package/dist/esm/contracts/zkevmTestnet/ShareToken.js.map +1 -0
- package/dist/esm/contracts/zkevmTestnet/index.d.ts +4 -0
- package/dist/esm/contracts/zkevmTestnet/index.js +2 -0
- package/dist/esm/contracts/zkevmTestnet/index.js.map +1 -0
- package/dist/esm/marketData.js +3 -5
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/traderInterface.d.ts +75 -1
- package/dist/esm/traderInterface.js +102 -1
- package/dist/esm/traderInterface.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +1 -1
- package/src/abi/IPyth.json +471 -0
- package/src/abi/OracleFactory.json +457 -0
- package/src/config/defaultConfig.json +2 -2
- package/src/config/priceFeedConfig.json +67 -1
- package/src/contracts/IPyth.ts +571 -0
- package/src/contracts/OracleFactory.ts +708 -0
- package/src/contracts/factories/IPyth__factory.ts +489 -0
- package/src/contracts/factories/OracleFactory__factory.ts +478 -0
- package/src/contracts/factories/index.ts +2 -0
- package/src/contracts/index.ts +4 -0
- package/src/marketData.ts +3 -5
- package/src/traderInterface.ts +121 -2
- package/src/version.ts +1 -1
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import { Contract, Signer, utils } from "ethers";
|
|
6
|
+
import type { Provider } from "@ethersproject/providers";
|
|
7
|
+
import type { OracleFactory, OracleFactoryInterface } from "../OracleFactory";
|
|
8
|
+
|
|
9
|
+
const _abi = [
|
|
10
|
+
{
|
|
11
|
+
inputs: [
|
|
12
|
+
{
|
|
13
|
+
internalType: "uint256",
|
|
14
|
+
name: "_maxFeedTimeGapSec",
|
|
15
|
+
type: "uint256",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
internalType: "address",
|
|
19
|
+
name: "_pythFeedAddress",
|
|
20
|
+
type: "address",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
internalType: "address",
|
|
24
|
+
name: "_onDemandfeedAddress",
|
|
25
|
+
type: "address",
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
stateMutability: "nonpayable",
|
|
29
|
+
type: "constructor",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
anonymous: false,
|
|
33
|
+
inputs: [
|
|
34
|
+
{
|
|
35
|
+
indexed: false,
|
|
36
|
+
internalType: "bytes4",
|
|
37
|
+
name: "baseCurrency",
|
|
38
|
+
type: "bytes4",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
indexed: false,
|
|
42
|
+
internalType: "bytes4",
|
|
43
|
+
name: "quoteCurrency",
|
|
44
|
+
type: "bytes4",
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
indexed: false,
|
|
48
|
+
internalType: "address",
|
|
49
|
+
name: "oracle",
|
|
50
|
+
type: "address",
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
name: "OracleAdded",
|
|
54
|
+
type: "event",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
anonymous: false,
|
|
58
|
+
inputs: [
|
|
59
|
+
{
|
|
60
|
+
indexed: false,
|
|
61
|
+
internalType: "bytes4",
|
|
62
|
+
name: "baseCurrency",
|
|
63
|
+
type: "bytes4",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
indexed: false,
|
|
67
|
+
internalType: "bytes4",
|
|
68
|
+
name: "quoteCurrency",
|
|
69
|
+
type: "bytes4",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
indexed: false,
|
|
73
|
+
internalType: "address",
|
|
74
|
+
name: "oracle",
|
|
75
|
+
type: "address",
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
name: "OracleCreated",
|
|
79
|
+
type: "event",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
anonymous: false,
|
|
83
|
+
inputs: [
|
|
84
|
+
{
|
|
85
|
+
indexed: true,
|
|
86
|
+
internalType: "address",
|
|
87
|
+
name: "previousOwner",
|
|
88
|
+
type: "address",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
indexed: true,
|
|
92
|
+
internalType: "address",
|
|
93
|
+
name: "newOwner",
|
|
94
|
+
type: "address",
|
|
95
|
+
},
|
|
96
|
+
],
|
|
97
|
+
name: "OwnershipTransferred",
|
|
98
|
+
type: "event",
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
anonymous: false,
|
|
102
|
+
inputs: [
|
|
103
|
+
{
|
|
104
|
+
indexed: false,
|
|
105
|
+
internalType: "bytes4",
|
|
106
|
+
name: "baseCurrency",
|
|
107
|
+
type: "bytes4",
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
indexed: false,
|
|
111
|
+
internalType: "bytes4",
|
|
112
|
+
name: "quoteCurrency",
|
|
113
|
+
type: "bytes4",
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
indexed: false,
|
|
117
|
+
internalType: "address[]",
|
|
118
|
+
name: "oracle",
|
|
119
|
+
type: "address[]",
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
indexed: false,
|
|
123
|
+
internalType: "bool[]",
|
|
124
|
+
name: "isInverse",
|
|
125
|
+
type: "bool[]",
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
name: "RouteAdded",
|
|
129
|
+
type: "event",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
anonymous: false,
|
|
133
|
+
inputs: [
|
|
134
|
+
{
|
|
135
|
+
indexed: false,
|
|
136
|
+
internalType: "bytes4",
|
|
137
|
+
name: "baseCurrency",
|
|
138
|
+
type: "bytes4",
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
indexed: false,
|
|
142
|
+
internalType: "bytes4",
|
|
143
|
+
name: "quoteCurrency",
|
|
144
|
+
type: "bytes4",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
indexed: false,
|
|
148
|
+
internalType: "address",
|
|
149
|
+
name: "oracle",
|
|
150
|
+
type: "address",
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
name: "ShortRouteAdded",
|
|
154
|
+
type: "event",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
inputs: [
|
|
158
|
+
{
|
|
159
|
+
internalType: "address",
|
|
160
|
+
name: "_oracle",
|
|
161
|
+
type: "address",
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
name: "addOracle",
|
|
165
|
+
outputs: [],
|
|
166
|
+
stateMutability: "nonpayable",
|
|
167
|
+
type: "function",
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
inputs: [
|
|
171
|
+
{
|
|
172
|
+
internalType: "bytes4",
|
|
173
|
+
name: "_baseCurrency",
|
|
174
|
+
type: "bytes4",
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
internalType: "bytes4",
|
|
178
|
+
name: "_quoteCurrency",
|
|
179
|
+
type: "bytes4",
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
internalType: "address[]",
|
|
183
|
+
name: "_oracles",
|
|
184
|
+
type: "address[]",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
internalType: "bool[]",
|
|
188
|
+
name: "_isInverse",
|
|
189
|
+
type: "bool[]",
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
name: "addRoute",
|
|
193
|
+
outputs: [],
|
|
194
|
+
stateMutability: "nonpayable",
|
|
195
|
+
type: "function",
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
inputs: [
|
|
199
|
+
{
|
|
200
|
+
internalType: "bytes4",
|
|
201
|
+
name: "_baseCurrency",
|
|
202
|
+
type: "bytes4",
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
internalType: "bytes4",
|
|
206
|
+
name: "_quoteCurrency",
|
|
207
|
+
type: "bytes4",
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
internalType: "uint16",
|
|
211
|
+
name: "_tradingBreakMins",
|
|
212
|
+
type: "uint16",
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
internalType: "address",
|
|
216
|
+
name: "_feedAddress",
|
|
217
|
+
type: "address",
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
internalType: "bytes32",
|
|
221
|
+
name: "_priceId",
|
|
222
|
+
type: "bytes32",
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
internalType: "uint256",
|
|
226
|
+
name: "_feedPeriod",
|
|
227
|
+
type: "uint256",
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
name: "createOracle",
|
|
231
|
+
outputs: [
|
|
232
|
+
{
|
|
233
|
+
internalType: "address",
|
|
234
|
+
name: "",
|
|
235
|
+
type: "address",
|
|
236
|
+
},
|
|
237
|
+
],
|
|
238
|
+
stateMutability: "nonpayable",
|
|
239
|
+
type: "function",
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
inputs: [
|
|
243
|
+
{
|
|
244
|
+
internalType: "bytes4",
|
|
245
|
+
name: "_baseCurrency",
|
|
246
|
+
type: "bytes4",
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
internalType: "bytes4",
|
|
250
|
+
name: "_quoteCurrency",
|
|
251
|
+
type: "bytes4",
|
|
252
|
+
},
|
|
253
|
+
],
|
|
254
|
+
name: "existsRoute",
|
|
255
|
+
outputs: [
|
|
256
|
+
{
|
|
257
|
+
internalType: "bool",
|
|
258
|
+
name: "",
|
|
259
|
+
type: "bool",
|
|
260
|
+
},
|
|
261
|
+
],
|
|
262
|
+
stateMutability: "view",
|
|
263
|
+
type: "function",
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
inputs: [
|
|
267
|
+
{
|
|
268
|
+
internalType: "bytes4",
|
|
269
|
+
name: "_baseCurrency",
|
|
270
|
+
type: "bytes4",
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
internalType: "bytes4",
|
|
274
|
+
name: "_quoteCurrency",
|
|
275
|
+
type: "bytes4",
|
|
276
|
+
},
|
|
277
|
+
],
|
|
278
|
+
name: "getRoute",
|
|
279
|
+
outputs: [
|
|
280
|
+
{
|
|
281
|
+
components: [
|
|
282
|
+
{
|
|
283
|
+
internalType: "address",
|
|
284
|
+
name: "oracle",
|
|
285
|
+
type: "address",
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
internalType: "bool",
|
|
289
|
+
name: "isInverse",
|
|
290
|
+
type: "bool",
|
|
291
|
+
},
|
|
292
|
+
],
|
|
293
|
+
internalType: "struct OracleFactory.OracleData[]",
|
|
294
|
+
name: "",
|
|
295
|
+
type: "tuple[]",
|
|
296
|
+
},
|
|
297
|
+
],
|
|
298
|
+
stateMutability: "view",
|
|
299
|
+
type: "function",
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
inputs: [
|
|
303
|
+
{
|
|
304
|
+
internalType: "bytes4[2]",
|
|
305
|
+
name: "_baseQuote",
|
|
306
|
+
type: "bytes4[2]",
|
|
307
|
+
},
|
|
308
|
+
],
|
|
309
|
+
name: "getRouteIds",
|
|
310
|
+
outputs: [
|
|
311
|
+
{
|
|
312
|
+
internalType: "bytes32[]",
|
|
313
|
+
name: "",
|
|
314
|
+
type: "bytes32[]",
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
internalType: "bool[]",
|
|
318
|
+
name: "",
|
|
319
|
+
type: "bool[]",
|
|
320
|
+
},
|
|
321
|
+
],
|
|
322
|
+
stateMutability: "view",
|
|
323
|
+
type: "function",
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
inputs: [
|
|
327
|
+
{
|
|
328
|
+
internalType: "bytes4",
|
|
329
|
+
name: "_baseCurrency",
|
|
330
|
+
type: "bytes4",
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
internalType: "bytes4",
|
|
334
|
+
name: "_quoteCurrency",
|
|
335
|
+
type: "bytes4",
|
|
336
|
+
},
|
|
337
|
+
],
|
|
338
|
+
name: "getSpotPrice",
|
|
339
|
+
outputs: [
|
|
340
|
+
{
|
|
341
|
+
internalType: "int128",
|
|
342
|
+
name: "",
|
|
343
|
+
type: "int128",
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
internalType: "uint256",
|
|
347
|
+
name: "",
|
|
348
|
+
type: "uint256",
|
|
349
|
+
},
|
|
350
|
+
],
|
|
351
|
+
stateMutability: "view",
|
|
352
|
+
type: "function",
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
inputs: [
|
|
356
|
+
{
|
|
357
|
+
internalType: "bytes4",
|
|
358
|
+
name: "_baseCurrency",
|
|
359
|
+
type: "bytes4",
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
internalType: "bytes4",
|
|
363
|
+
name: "_quoteCurrency",
|
|
364
|
+
type: "bytes4",
|
|
365
|
+
},
|
|
366
|
+
],
|
|
367
|
+
name: "isRouteTerminated",
|
|
368
|
+
outputs: [
|
|
369
|
+
{
|
|
370
|
+
internalType: "bool",
|
|
371
|
+
name: "",
|
|
372
|
+
type: "bool",
|
|
373
|
+
},
|
|
374
|
+
],
|
|
375
|
+
stateMutability: "view",
|
|
376
|
+
type: "function",
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
inputs: [],
|
|
380
|
+
name: "onDemandFeed",
|
|
381
|
+
outputs: [
|
|
382
|
+
{
|
|
383
|
+
internalType: "address",
|
|
384
|
+
name: "",
|
|
385
|
+
type: "address",
|
|
386
|
+
},
|
|
387
|
+
],
|
|
388
|
+
stateMutability: "view",
|
|
389
|
+
type: "function",
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
inputs: [],
|
|
393
|
+
name: "owner",
|
|
394
|
+
outputs: [
|
|
395
|
+
{
|
|
396
|
+
internalType: "address",
|
|
397
|
+
name: "",
|
|
398
|
+
type: "address",
|
|
399
|
+
},
|
|
400
|
+
],
|
|
401
|
+
stateMutability: "view",
|
|
402
|
+
type: "function",
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
inputs: [],
|
|
406
|
+
name: "pyth",
|
|
407
|
+
outputs: [
|
|
408
|
+
{
|
|
409
|
+
internalType: "address",
|
|
410
|
+
name: "",
|
|
411
|
+
type: "address",
|
|
412
|
+
},
|
|
413
|
+
],
|
|
414
|
+
stateMutability: "view",
|
|
415
|
+
type: "function",
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
inputs: [],
|
|
419
|
+
name: "renounceOwnership",
|
|
420
|
+
outputs: [],
|
|
421
|
+
stateMutability: "nonpayable",
|
|
422
|
+
type: "function",
|
|
423
|
+
},
|
|
424
|
+
{
|
|
425
|
+
inputs: [
|
|
426
|
+
{
|
|
427
|
+
internalType: "address",
|
|
428
|
+
name: "newOwner",
|
|
429
|
+
type: "address",
|
|
430
|
+
},
|
|
431
|
+
],
|
|
432
|
+
name: "transferOwnership",
|
|
433
|
+
outputs: [],
|
|
434
|
+
stateMutability: "nonpayable",
|
|
435
|
+
type: "function",
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
inputs: [
|
|
439
|
+
{
|
|
440
|
+
internalType: "bytes[]",
|
|
441
|
+
name: "_updateData",
|
|
442
|
+
type: "bytes[]",
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
internalType: "bytes32[]",
|
|
446
|
+
name: "_priceIds",
|
|
447
|
+
type: "bytes32[]",
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
internalType: "uint64[]",
|
|
451
|
+
name: "_publishTimes",
|
|
452
|
+
type: "uint64[]",
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
internalType: "uint256",
|
|
456
|
+
name: "_maxAcceptableFeedAge",
|
|
457
|
+
type: "uint256",
|
|
458
|
+
},
|
|
459
|
+
],
|
|
460
|
+
name: "updatePriceFeeds",
|
|
461
|
+
outputs: [],
|
|
462
|
+
stateMutability: "payable",
|
|
463
|
+
type: "function",
|
|
464
|
+
},
|
|
465
|
+
] as const;
|
|
466
|
+
|
|
467
|
+
export class OracleFactory__factory {
|
|
468
|
+
static readonly abi = _abi;
|
|
469
|
+
static createInterface(): OracleFactoryInterface {
|
|
470
|
+
return new utils.Interface(_abi) as OracleFactoryInterface;
|
|
471
|
+
}
|
|
472
|
+
static connect(
|
|
473
|
+
address: string,
|
|
474
|
+
signerOrProvider: Signer | Provider
|
|
475
|
+
): OracleFactory {
|
|
476
|
+
return new Contract(address, _abi, signerOrProvider) as OracleFactory;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
export { ERC20__factory } from "./ERC20__factory";
|
|
5
5
|
export { IPerpetualManager__factory } from "./IPerpetualManager__factory";
|
|
6
|
+
export { IPyth__factory } from "./IPyth__factory";
|
|
6
7
|
export { LimitOrderBook__factory } from "./LimitOrderBook__factory";
|
|
7
8
|
export { LimitOrderBookFactory__factory } from "./LimitOrderBookFactory__factory";
|
|
8
9
|
export { MockTokenSwap__factory } from "./MockTokenSwap__factory";
|
|
10
|
+
export { OracleFactory__factory } from "./OracleFactory__factory";
|
|
9
11
|
export { ShareToken__factory } from "./ShareToken__factory";
|
package/src/contracts/index.ts
CHANGED
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
export type { ERC20 } from "./ERC20";
|
|
5
5
|
export type { IPerpetualManager } from "./IPerpetualManager";
|
|
6
|
+
export type { IPyth } from "./IPyth";
|
|
6
7
|
export type { LimitOrderBook } from "./LimitOrderBook";
|
|
7
8
|
export type { LimitOrderBookFactory } from "./LimitOrderBookFactory";
|
|
8
9
|
export type { MockTokenSwap } from "./MockTokenSwap";
|
|
10
|
+
export type { OracleFactory } from "./OracleFactory";
|
|
9
11
|
export type { ShareToken } from "./ShareToken";
|
|
10
12
|
export * as factories from "./factories";
|
|
11
13
|
export { ERC20__factory } from "./factories/ERC20__factory";
|
|
12
14
|
export { IPerpetualManager__factory } from "./factories/IPerpetualManager__factory";
|
|
15
|
+
export { IPyth__factory } from "./factories/IPyth__factory";
|
|
13
16
|
export { LimitOrderBook__factory } from "./factories/LimitOrderBook__factory";
|
|
14
17
|
export { LimitOrderBookFactory__factory } from "./factories/LimitOrderBookFactory__factory";
|
|
15
18
|
export { MockTokenSwap__factory } from "./factories/MockTokenSwap__factory";
|
|
19
|
+
export { OracleFactory__factory } from "./factories/OracleFactory__factory";
|
|
16
20
|
export { ShareToken__factory } from "./factories/ShareToken__factory";
|
package/src/marketData.ts
CHANGED
|
@@ -209,11 +209,9 @@ export default class MarketData extends PerpetualDataHandler {
|
|
|
209
209
|
overrides?: CallOverrides
|
|
210
210
|
): Promise<{ orders: Order[]; orderIds: string[] }> {
|
|
211
211
|
// open orders requested only for given symbol
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
MarketData.orderIdsOfTrader(traderAddr, orderBookContract, overrides),
|
|
216
|
-
]);
|
|
212
|
+
const orderBookContract = this.getOrderBookContract(symbol);
|
|
213
|
+
const orders = await this.openOrdersOnOrderBook(traderAddr, orderBookContract, overrides);
|
|
214
|
+
const digests = await MarketData.orderIdsOfTrader(traderAddr, orderBookContract, overrides);
|
|
217
215
|
return { orders: orders, orderIds: digests };
|
|
218
216
|
}
|
|
219
217
|
|
package/src/traderInterface.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Signer } from "@ethersproject/abstract-signer";
|
|
2
|
+
import { CallOverrides, Contract, ContractTransaction, Overrides } from "@ethersproject/contracts";
|
|
3
|
+
import { ABK64x64ToFloat, floatToDec18, floatToDecN } from "./d8XMath";
|
|
3
4
|
import MarketData from "./marketData";
|
|
4
5
|
import { ClientOrder, NodeSDKConfig, Order, SmartContractOrder, ZERO_ORDER_ID } from "./nodeSDKTypes";
|
|
5
6
|
import PerpetualDataHandler from "./perpetualDataHandler";
|
|
@@ -11,6 +12,7 @@ import TraderDigests from "./traderDigests";
|
|
|
11
12
|
*/
|
|
12
13
|
export default class TraderInterface extends MarketData {
|
|
13
14
|
public digestTool: TraderDigests;
|
|
15
|
+
protected gasLimit: number = 1_000_000;
|
|
14
16
|
|
|
15
17
|
// accTrade.order(order)
|
|
16
18
|
// cancelOrder(symbol: string, orderId: string)
|
|
@@ -169,4 +171,121 @@ export default class TraderInterface extends MarketData {
|
|
|
169
171
|
}
|
|
170
172
|
return obOrders;
|
|
171
173
|
}
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Add liquidity to the PnL participant fund. The address gets pool shares in return.
|
|
177
|
+
* @param {Signer} signer Signer that will deposit liquidity
|
|
178
|
+
* @param {string} poolSymbolName Name of pool symbol (e.g. MATIC)
|
|
179
|
+
* @param {number} amountCC Amount in pool-collateral currency
|
|
180
|
+
* @example
|
|
181
|
+
* import { LiquidityProviderTool, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
182
|
+
* async function main() {
|
|
183
|
+
* console.log(LiquidityProviderTool);
|
|
184
|
+
* // setup (authentication required, PK is an environment variable with a private key)
|
|
185
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
186
|
+
* const pk: string = <string>process.env.PK;
|
|
187
|
+
* let lqudtProviderTool = new LiquidityProviderTool(config, pk);
|
|
188
|
+
* await lqudtProviderTool.createProxyInstance();
|
|
189
|
+
* // add liquidity
|
|
190
|
+
* await lqudtProviderTool.setAllowance("MATIC");
|
|
191
|
+
* let respAddLiquidity = await lqudtProviderTool.addLiquidity("MATIC", 0.1);
|
|
192
|
+
* console.log(respAddLiquidity);
|
|
193
|
+
* }
|
|
194
|
+
* main();
|
|
195
|
+
*
|
|
196
|
+
* @return Transaction object
|
|
197
|
+
*/
|
|
198
|
+
public async addLiquidity(
|
|
199
|
+
signer: Signer,
|
|
200
|
+
poolSymbolName: string,
|
|
201
|
+
amountCC: number,
|
|
202
|
+
overrides?: Overrides
|
|
203
|
+
): Promise<ContractTransaction> {
|
|
204
|
+
if (this.proxyContract == null) {
|
|
205
|
+
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
206
|
+
}
|
|
207
|
+
let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
208
|
+
let decimals = this.getMarginTokenDecimalsFromSymbol(poolSymbolName);
|
|
209
|
+
let tx = await this.proxyContract
|
|
210
|
+
.connect(signer)
|
|
211
|
+
.addLiquidity(poolId, floatToDecN(amountCC, decimals!), overrides || { gasLimit: this.gasLimit });
|
|
212
|
+
return tx;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Initiates a liquidity withdrawal from the pool
|
|
217
|
+
* It triggers a time-delayed unlocking of the given number of pool shares.
|
|
218
|
+
* The amount of pool shares to be unlocked is fixed by this call, but not their value in pool currency.
|
|
219
|
+
* @param {Signer} signer Signer that will initiate liquidity withdrawal
|
|
220
|
+
* @param {string} poolSymbolName Name of pool symbol (e.g. MATIC).
|
|
221
|
+
* @param {string} amountPoolShares Amount in pool-shares, removes everything if > available amount.
|
|
222
|
+
* @example
|
|
223
|
+
* import { LiquidityProviderTool, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
224
|
+
* async function main() {
|
|
225
|
+
* console.log(LiquidityProviderTool);
|
|
226
|
+
* // setup (authentication required, PK is an environment variable with a private key)
|
|
227
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
228
|
+
* const pk: string = <string>process.env.PK;
|
|
229
|
+
* let lqudtProviderTool = new LiquidityProviderTool(config, pk);
|
|
230
|
+
* await lqudtProviderTool.createProxyInstance();
|
|
231
|
+
* // initiate withdrawal
|
|
232
|
+
* let respRemoveLiquidity = await lqudtProviderTool.initiateLiquidityWithdrawal("MATIC", 0.1);
|
|
233
|
+
* console.log(respRemoveLiquidity);
|
|
234
|
+
* }
|
|
235
|
+
* main();
|
|
236
|
+
*
|
|
237
|
+
* @return Transaction object.
|
|
238
|
+
*/
|
|
239
|
+
public async initiateLiquidityWithdrawal(
|
|
240
|
+
signer: Signer,
|
|
241
|
+
poolSymbolName: string,
|
|
242
|
+
amountPoolShares: number,
|
|
243
|
+
overrides?: Overrides
|
|
244
|
+
): Promise<ContractTransaction> {
|
|
245
|
+
if (this.proxyContract == null) {
|
|
246
|
+
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
247
|
+
}
|
|
248
|
+
let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
249
|
+
let tx = await this.proxyContract
|
|
250
|
+
.connect(signer)
|
|
251
|
+
.withdrawLiquidity(poolId, floatToDec18(amountPoolShares), overrides || { gasLimit: this.gasLimit });
|
|
252
|
+
return tx;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Withdraws as much liquidity as there is available after a call to initiateLiquidityWithdrawal.
|
|
257
|
+
* The address loses pool shares in return.
|
|
258
|
+
* @param {Signer} signer Signer that will execute the liquidity withdrawal
|
|
259
|
+
* @param poolSymbolName
|
|
260
|
+
* @example
|
|
261
|
+
* import { LiquidityProviderTool, PerpetualDataHandler } from '@d8x/perpetuals-sdk';
|
|
262
|
+
* async function main() {
|
|
263
|
+
* console.log(LiquidityProviderTool);
|
|
264
|
+
* // setup (authentication required, PK is an environment variable with a private key)
|
|
265
|
+
* const config = PerpetualDataHandler.readSDKConfig("testnet");
|
|
266
|
+
* const pk: string = <string>process.env.PK;
|
|
267
|
+
* let lqudtProviderTool = new LiquidityProviderTool(config, pk);
|
|
268
|
+
* await lqudtProviderTool.createProxyInstance();
|
|
269
|
+
* // remove liquidity
|
|
270
|
+
* let respRemoveLiquidity = await lqudtProviderTool.executeLiquidityWithdrawal("MATIC", 0.1);
|
|
271
|
+
* console.log(respRemoveLiquidity);
|
|
272
|
+
* }
|
|
273
|
+
* main();
|
|
274
|
+
*
|
|
275
|
+
* @returns Transaction object.
|
|
276
|
+
*/
|
|
277
|
+
public async executeLiquidityWithdrawal(
|
|
278
|
+
signer: Signer,
|
|
279
|
+
poolSymbolName: string,
|
|
280
|
+
overrides?: Overrides
|
|
281
|
+
): Promise<ContractTransaction> {
|
|
282
|
+
if (this.proxyContract == null) {
|
|
283
|
+
throw Error("no proxy contract or wallet initialized. Use createProxyInstance().");
|
|
284
|
+
}
|
|
285
|
+
let poolId = PerpetualDataHandler._getPoolIdFromSymbol(poolSymbolName, this.poolStaticInfos);
|
|
286
|
+
let tx = await this.proxyContract
|
|
287
|
+
.connect(signer)
|
|
288
|
+
.executeLiquidityWithdrawal(poolId, await signer.getAddress(), overrides || { gasLimit: this.gasLimit });
|
|
289
|
+
return tx;
|
|
290
|
+
}
|
|
172
291
|
}
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const D8X_SDK_VERSION = "0.7.
|
|
1
|
+
export const D8X_SDK_VERSION = "0.7.15";
|