@d8x/perpetuals-sdk 1.2.1 → 1.3.0

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 (205) hide show
  1. package/dist/cjs/abi/IPerpetualManager.json +7 -2
  2. package/dist/cjs/config/priceFeedConfig.json +12 -6
  3. package/dist/cjs/config/priceFeedOnChain.json +11 -0
  4. package/dist/cjs/config/settlement.json +12 -0
  5. package/dist/cjs/contracts/IPerpetualManager.d.ts +6 -3
  6. package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +6 -2
  7. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +7 -2
  8. package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  9. package/dist/cjs/marketData.d.ts +2 -1
  10. package/dist/cjs/marketData.js +18 -8
  11. package/dist/cjs/marketData.js.map +1 -1
  12. package/dist/cjs/nodeSDKTypes.d.ts +21 -2
  13. package/dist/cjs/onChainPxFactory.js +8 -2
  14. package/dist/cjs/onChainPxFactory.js.map +1 -1
  15. package/dist/cjs/onChainPxFeed.d.ts +9 -13
  16. package/dist/cjs/onChainPxFeed.js +8 -45
  17. package/dist/cjs/onChainPxFeed.js.map +1 -1
  18. package/dist/cjs/onChainPxFeedAngle.d.ts +18 -0
  19. package/dist/cjs/onChainPxFeedAngle.js +74 -0
  20. package/dist/cjs/onChainPxFeedAngle.js.map +1 -0
  21. package/dist/cjs/onChainPxFeedRedStone.d.ts +13 -0
  22. package/dist/cjs/onChainPxFeedRedStone.js +52 -0
  23. package/dist/cjs/onChainPxFeedRedStone.js.map +1 -0
  24. package/dist/cjs/perpetualDataHandler.d.ts +31 -3
  25. package/dist/cjs/perpetualDataHandler.js +118 -7
  26. package/dist/cjs/perpetualDataHandler.js.map +1 -1
  27. package/dist/cjs/version.d.ts +1 -1
  28. package/dist/cjs/version.js +1 -1
  29. package/dist/esm/abi/IPerpetualManager.json +7 -2
  30. package/dist/esm/config/priceFeedConfig.json +12 -6
  31. package/dist/esm/config/priceFeedOnChain.json +11 -0
  32. package/dist/esm/config/settlement.json +12 -0
  33. package/dist/esm/contracts/IPerpetualManager.d.ts +6 -3
  34. package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +6 -2
  35. package/dist/esm/contracts/factories/IPerpetualManager__factory.js +7 -2
  36. package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
  37. package/dist/{cjs/contracts/factories/MockToken__factory.d.ts → esm/contracts/factories/PerpStorage__factory.d.ts} +115 -128
  38. package/dist/esm/contracts/factories/{MockToken__factory.js → PerpStorage__factory.js} +128 -139
  39. package/dist/esm/contracts/factories/PerpStorage__factory.js.map +1 -0
  40. package/dist/esm/marketData.d.ts +2 -1
  41. package/dist/esm/marketData.js +18 -8
  42. package/dist/esm/marketData.js.map +1 -1
  43. package/dist/esm/nodeSDKTypes.d.ts +21 -2
  44. package/dist/esm/onChainPxFactory.js +8 -2
  45. package/dist/esm/onChainPxFactory.js.map +1 -1
  46. package/dist/esm/onChainPxFeed.d.ts +9 -13
  47. package/dist/esm/onChainPxFeed.js +8 -45
  48. package/dist/esm/onChainPxFeed.js.map +1 -1
  49. package/dist/esm/onChainPxFeedAngle.d.ts +18 -0
  50. package/dist/esm/onChainPxFeedAngle.js +66 -0
  51. package/dist/esm/onChainPxFeedAngle.js.map +1 -0
  52. package/dist/esm/onChainPxFeedRedStone.d.ts +13 -0
  53. package/dist/esm/onChainPxFeedRedStone.js +46 -0
  54. package/dist/esm/onChainPxFeedRedStone.js.map +1 -0
  55. package/dist/esm/perpetualDataHandler.d.ts +31 -3
  56. package/dist/esm/perpetualDataHandler.js +118 -7
  57. package/dist/esm/perpetualDataHandler.js.map +1 -1
  58. package/dist/esm/version.d.ts +1 -1
  59. package/dist/esm/version.js +1 -1
  60. package/doc/d8x-perpetuals-sdk.md +550 -20
  61. package/doc/marketData.md +2 -1
  62. package/doc/perpetualDataHandler.md +53 -2
  63. package/package.json +1 -1
  64. package/src/abi/IPerpetualManager.json +5263 -5258
  65. package/src/config/priceFeedConfig.json +12 -6
  66. package/src/config/priceFeedOnChain.json +11 -0
  67. package/src/config/settlement.json +12 -0
  68. package/src/contracts/IPerpetualManager.ts +6 -3
  69. package/src/contracts/factories/IPerpetualManager__factory.ts +7 -2
  70. package/src/marketData.ts +18 -9
  71. package/src/nodeSDKTypes.ts +23 -2
  72. package/src/onChainPxFactory.ts +7 -1
  73. package/src/onChainPxFeed.ts +16 -55
  74. package/src/onChainPxFeedAngle.ts +74 -0
  75. package/src/onChainPxFeedRedStone.ts +55 -0
  76. package/src/perpetualDataHandler.ts +125 -9
  77. package/src/version.ts +1 -1
  78. package/dist/cjs/abi/Maintainer.json +0 -774
  79. package/dist/cjs/abi/MockToken.json +0 -347
  80. package/dist/cjs/abi/UUPSUpgradeable.json +0 -104
  81. package/dist/cjs/abi/WeETH.json +0 -310
  82. package/dist/cjs/abi-zkevm/LimitOrderBook.json +0 -910
  83. package/dist/cjs/abi-zkevm/LimitOrderBookFactory.json +0 -236
  84. package/dist/cjs/contracts/Maintainer.d.ts +0 -799
  85. package/dist/cjs/contracts/Maintainer.js +0 -3
  86. package/dist/cjs/contracts/Maintainer.js.map +0 -1
  87. package/dist/cjs/contracts/MockToken.d.ts +0 -263
  88. package/dist/cjs/contracts/MockToken.js +0 -3
  89. package/dist/cjs/contracts/MockToken.js.map +0 -1
  90. package/dist/cjs/contracts/UUPSUpgradeable.d.ts +0 -118
  91. package/dist/cjs/contracts/UUPSUpgradeable.js +0 -3
  92. package/dist/cjs/contracts/UUPSUpgradeable.js.map +0 -1
  93. package/dist/cjs/contracts/WeETH.d.ts +0 -503
  94. package/dist/cjs/contracts/WeETH.js +0 -3
  95. package/dist/cjs/contracts/WeETH.js.map +0 -1
  96. package/dist/cjs/contracts/factories/Maintainer__factory.d.ts +0 -609
  97. package/dist/cjs/contracts/factories/Maintainer__factory.js +0 -792
  98. package/dist/cjs/contracts/factories/Maintainer__factory.js.map +0 -1
  99. package/dist/cjs/contracts/factories/MockToken__factory.js +0 -365
  100. package/dist/cjs/contracts/factories/MockToken__factory.js.map +0 -1
  101. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  102. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js +0 -122
  103. package/dist/cjs/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  104. package/dist/cjs/contracts/factories/WeETH__factory.d.ts +0 -545
  105. package/dist/cjs/contracts/factories/WeETH__factory.js +0 -721
  106. package/dist/cjs/contracts/factories/WeETH__factory.js.map +0 -1
  107. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  108. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5324
  109. package/dist/cjs/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  110. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  111. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -254
  112. package/dist/cjs/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  113. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  114. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js +0 -928
  115. package/dist/cjs/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  116. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  117. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js +0 -456
  118. package/dist/cjs/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  119. package/dist/cjs/contracts/factories/lean0/index.d.ts +0 -4
  120. package/dist/cjs/contracts/factories/lean0/index.js +0 -15
  121. package/dist/cjs/contracts/factories/lean0/index.js.map +0 -1
  122. package/dist/cjs/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  123. package/dist/cjs/contracts/lean0/IPerpetualManager.js +0 -3
  124. package/dist/cjs/contracts/lean0/IPerpetualManager.js.map +0 -1
  125. package/dist/cjs/contracts/lean0/LimitOrderBook.d.ts +0 -533
  126. package/dist/cjs/contracts/lean0/LimitOrderBook.js +0 -3
  127. package/dist/cjs/contracts/lean0/LimitOrderBook.js.map +0 -1
  128. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  129. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js +0 -3
  130. package/dist/cjs/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  131. package/dist/cjs/contracts/lean0/ShareToken.d.ts +0 -320
  132. package/dist/cjs/contracts/lean0/ShareToken.js +0 -3
  133. package/dist/cjs/contracts/lean0/ShareToken.js.map +0 -1
  134. package/dist/cjs/contracts/lean0/index.d.ts +0 -4
  135. package/dist/cjs/contracts/lean0/index.js +0 -3
  136. package/dist/cjs/contracts/lean0/index.js.map +0 -1
  137. package/dist/esm/abi/Maintainer.json +0 -774
  138. package/dist/esm/abi/MockToken.json +0 -347
  139. package/dist/esm/abi/UUPSUpgradeable.json +0 -104
  140. package/dist/esm/abi/WeETH.json +0 -310
  141. package/dist/esm/abi/lean0/IPerpetualManager.json +0 -5306
  142. package/dist/esm/abi/lean0/LimitOrderBook.json +0 -910
  143. package/dist/esm/abi/lean0/LimitOrderBookFactory.json +0 -236
  144. package/dist/esm/abi/lean0/ShareToken.json +0 -438
  145. package/dist/esm/abi-zkevm/LimitOrderBook.json +0 -910
  146. package/dist/esm/abi-zkevm/LimitOrderBookFactory.json +0 -236
  147. package/dist/esm/contracts/Maintainer.d.ts +0 -799
  148. package/dist/esm/contracts/Maintainer.js +0 -2
  149. package/dist/esm/contracts/Maintainer.js.map +0 -1
  150. package/dist/esm/contracts/MockToken.d.ts +0 -263
  151. package/dist/esm/contracts/MockToken.js +0 -2
  152. package/dist/esm/contracts/MockToken.js.map +0 -1
  153. package/dist/esm/contracts/UUPSUpgradeable.d.ts +0 -118
  154. package/dist/esm/contracts/UUPSUpgradeable.js +0 -2
  155. package/dist/esm/contracts/UUPSUpgradeable.js.map +0 -1
  156. package/dist/esm/contracts/WeETH.d.ts +0 -503
  157. package/dist/esm/contracts/WeETH.js +0 -2
  158. package/dist/esm/contracts/WeETH.js.map +0 -1
  159. package/dist/esm/contracts/factories/Maintainer__factory.d.ts +0 -609
  160. package/dist/esm/contracts/factories/Maintainer__factory.js +0 -788
  161. package/dist/esm/contracts/factories/Maintainer__factory.js.map +0 -1
  162. package/dist/esm/contracts/factories/MockToken__factory.d.ts +0 -273
  163. package/dist/esm/contracts/factories/MockToken__factory.js.map +0 -1
  164. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.d.ts +0 -87
  165. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js +0 -118
  166. package/dist/esm/contracts/factories/UUPSUpgradeable__factory.js.map +0 -1
  167. package/dist/esm/contracts/factories/WeETH__factory.d.ts +0 -545
  168. package/dist/esm/contracts/factories/WeETH__factory.js +0 -717
  169. package/dist/esm/contracts/factories/WeETH__factory.js.map +0 -1
  170. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.d.ts +0 -4136
  171. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js +0 -5320
  172. package/dist/esm/contracts/factories/lean0/IPerpetualManager__factory.js.map +0 -1
  173. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.d.ts +0 -189
  174. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js +0 -250
  175. package/dist/esm/contracts/factories/lean0/LimitOrderBookFactory__factory.js.map +0 -1
  176. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.d.ts +0 -715
  177. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js +0 -924
  178. package/dist/esm/contracts/factories/lean0/LimitOrderBook__factory.js.map +0 -1
  179. package/dist/esm/contracts/factories/lean0/ShareToken__factory.d.ts +0 -344
  180. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js +0 -452
  181. package/dist/esm/contracts/factories/lean0/ShareToken__factory.js.map +0 -1
  182. package/dist/esm/contracts/factories/lean0/index.d.ts +0 -4
  183. package/dist/esm/contracts/factories/lean0/index.js +0 -8
  184. package/dist/esm/contracts/factories/lean0/index.js.map +0 -1
  185. package/dist/esm/contracts/lean0/IPerpetualManager.d.ts +0 -2821
  186. package/dist/esm/contracts/lean0/IPerpetualManager.js +0 -2
  187. package/dist/esm/contracts/lean0/IPerpetualManager.js.map +0 -1
  188. package/dist/esm/contracts/lean0/LimitOrderBook.d.ts +0 -533
  189. package/dist/esm/contracts/lean0/LimitOrderBook.js +0 -2
  190. package/dist/esm/contracts/lean0/LimitOrderBook.js.map +0 -1
  191. package/dist/esm/contracts/lean0/LimitOrderBookFactory.d.ts +0 -210
  192. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js +0 -2
  193. package/dist/esm/contracts/lean0/LimitOrderBookFactory.js.map +0 -1
  194. package/dist/esm/contracts/lean0/ShareToken.d.ts +0 -320
  195. package/dist/esm/contracts/lean0/ShareToken.js +0 -2
  196. package/dist/esm/contracts/lean0/ShareToken.js.map +0 -1
  197. package/dist/esm/contracts/lean0/index.d.ts +0 -4
  198. package/dist/esm/contracts/lean0/index.js +0 -2
  199. package/dist/esm/contracts/lean0/index.js.map +0 -1
  200. package/src/contracts/MockToken.ts +0 -581
  201. package/src/contracts/UUPSUpgradeable.ts +0 -228
  202. package/src/contracts/WeETH.ts +0 -1104
  203. package/src/contracts/factories/MockToken__factory.ts +0 -368
  204. package/src/contracts/factories/UUPSUpgradeable__factory.ts +0 -128
  205. package/src/contracts/factories/WeETH__factory.ts +0 -721
@@ -2,35 +2,25 @@
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
4
  import { Contract, utils } from "ethers";
5
+ //import type { PerpStorage, PerpStorageInterface } from "../PerpStorage";
5
6
  const _abi = [
6
- {
7
- inputs: [],
8
- stateMutability: "nonpayable",
9
- type: "constructor",
10
- },
11
7
  {
12
8
  anonymous: false,
13
9
  inputs: [
14
10
  {
15
11
  indexed: true,
16
12
  internalType: "address",
17
- name: "owner",
13
+ name: "previousGovernance",
18
14
  type: "address",
19
15
  },
20
16
  {
21
17
  indexed: true,
22
18
  internalType: "address",
23
- name: "spender",
19
+ name: "newGovernance",
24
20
  type: "address",
25
21
  },
26
- {
27
- indexed: false,
28
- internalType: "uint256",
29
- name: "value",
30
- type: "uint256",
31
- },
32
22
  ],
33
- name: "Approval",
23
+ name: "GovernanceTransferred",
34
24
  type: "event",
35
25
  },
36
26
  {
@@ -39,63 +29,69 @@ const _abi = [
39
29
  {
40
30
  indexed: true,
41
31
  internalType: "address",
42
- name: "previousOwner",
32
+ name: "previousMaintainer",
43
33
  type: "address",
44
34
  },
45
35
  {
46
36
  indexed: true,
47
37
  internalType: "address",
48
- name: "newOwner",
38
+ name: "newMaintainer",
49
39
  type: "address",
50
40
  },
51
41
  ],
52
- name: "OwnershipTransferred",
42
+ name: "MaintainerTransferred",
53
43
  type: "event",
54
44
  },
55
45
  {
56
46
  anonymous: false,
57
47
  inputs: [
58
48
  {
59
- indexed: true,
49
+ indexed: false,
60
50
  internalType: "address",
61
- name: "from",
51
+ name: "account",
62
52
  type: "address",
63
53
  },
54
+ ],
55
+ name: "Paused",
56
+ type: "event",
57
+ },
58
+ {
59
+ anonymous: false,
60
+ inputs: [
64
61
  {
65
- indexed: true,
62
+ indexed: false,
66
63
  internalType: "address",
67
- name: "to",
64
+ name: "account",
68
65
  type: "address",
69
66
  },
70
- {
71
- indexed: false,
72
- internalType: "uint256",
73
- name: "value",
74
- type: "uint256",
75
- },
76
67
  ],
77
- name: "Transfer",
68
+ name: "Unpaused",
78
69
  type: "event",
79
70
  },
80
71
  {
81
72
  inputs: [
82
73
  {
83
- internalType: "address",
84
- name: "owner",
85
- type: "address",
74
+ internalType: "uint8",
75
+ name: "",
76
+ type: "uint8",
86
77
  },
87
78
  {
88
79
  internalType: "address",
89
- name: "spender",
80
+ name: "",
90
81
  type: "address",
91
82
  },
92
83
  ],
93
- name: "allowance",
84
+ name: "brokerVolumeEMA",
94
85
  outputs: [
95
86
  {
96
- internalType: "uint256",
97
- name: "",
98
- type: "uint256",
87
+ internalType: "int128",
88
+ name: "fTradingVolumeEMAusd",
89
+ type: "int128",
90
+ },
91
+ {
92
+ internalType: "uint64",
93
+ name: "timestamp",
94
+ type: "uint64",
99
95
  },
100
96
  ],
101
97
  stateMutability: "view",
@@ -103,37 +99,32 @@ const _abi = [
103
99
  },
104
100
  {
105
101
  inputs: [
106
- {
107
- internalType: "address",
108
- name: "spender",
109
- type: "address",
110
- },
111
102
  {
112
103
  internalType: "uint256",
113
- name: "amount",
104
+ name: "",
114
105
  type: "uint256",
115
106
  },
116
107
  ],
117
- name: "approve",
108
+ name: "brokerVolumeFeesTbps",
118
109
  outputs: [
119
110
  {
120
- internalType: "bool",
111
+ internalType: "uint16",
121
112
  name: "",
122
- type: "bool",
113
+ type: "uint16",
123
114
  },
124
115
  ],
125
- stateMutability: "nonpayable",
116
+ stateMutability: "view",
126
117
  type: "function",
127
118
  },
128
119
  {
129
120
  inputs: [
130
121
  {
131
- internalType: "address",
132
- name: "account",
133
- type: "address",
122
+ internalType: "uint256",
123
+ name: "",
124
+ type: "uint256",
134
125
  },
135
126
  ],
136
- name: "balanceOf",
127
+ name: "brokerVolumeTiers",
137
128
  outputs: [
138
129
  {
139
130
  internalType: "uint256",
@@ -146,55 +137,39 @@ const _abi = [
146
137
  },
147
138
  {
148
139
  inputs: [],
149
- name: "decimals",
140
+ name: "governance",
150
141
  outputs: [
151
142
  {
152
- internalType: "uint8",
143
+ internalType: "address",
153
144
  name: "",
154
- type: "uint8",
145
+ type: "address",
155
146
  },
156
147
  ],
157
148
  stateMutability: "view",
158
149
  type: "function",
159
150
  },
160
151
  {
161
- inputs: [
162
- {
163
- internalType: "address",
164
- name: "spender",
165
- type: "address",
166
- },
167
- {
168
- internalType: "uint256",
169
- name: "subtractedValue",
170
- type: "uint256",
171
- },
172
- ],
173
- name: "decreaseAllowance",
152
+ inputs: [],
153
+ name: "lastBaseToUSDUpdateTs",
174
154
  outputs: [
175
155
  {
176
- internalType: "bool",
156
+ internalType: "uint64",
177
157
  name: "",
178
- type: "bool",
158
+ type: "uint64",
179
159
  },
180
160
  ],
181
- stateMutability: "nonpayable",
161
+ stateMutability: "view",
182
162
  type: "function",
183
163
  },
184
164
  {
185
165
  inputs: [
186
166
  {
187
- internalType: "address",
188
- name: "spender",
189
- type: "address",
190
- },
191
- {
192
- internalType: "uint256",
193
- name: "addedValue",
194
- type: "uint256",
167
+ internalType: "uint8",
168
+ name: "",
169
+ type: "uint8",
195
170
  },
196
171
  ],
197
- name: "increaseAllowance",
172
+ name: "liquidityProvisionIsPaused",
198
173
  outputs: [
199
174
  {
200
175
  internalType: "bool",
@@ -202,43 +177,44 @@ const _abi = [
202
177
  type: "bool",
203
178
  },
204
179
  ],
205
- stateMutability: "nonpayable",
180
+ stateMutability: "view",
206
181
  type: "function",
207
182
  },
208
183
  {
209
- inputs: [
184
+ inputs: [],
185
+ name: "maintainer",
186
+ outputs: [
210
187
  {
211
188
  internalType: "address",
212
- name: "_account",
189
+ name: "",
213
190
  type: "address",
214
191
  },
215
- {
216
- internalType: "uint256",
217
- name: "_amount",
218
- type: "uint256",
219
- },
220
192
  ],
221
- name: "mint",
222
- outputs: [],
223
- stateMutability: "nonpayable",
193
+ stateMutability: "view",
224
194
  type: "function",
225
195
  },
226
196
  {
227
197
  inputs: [],
228
- name: "name",
198
+ name: "paused",
229
199
  outputs: [
230
200
  {
231
- internalType: "string",
201
+ internalType: "bool",
232
202
  name: "",
233
- type: "string",
203
+ type: "bool",
234
204
  },
235
205
  ],
236
206
  stateMutability: "view",
237
207
  type: "function",
238
208
  },
239
209
  {
240
- inputs: [],
241
- name: "owner",
210
+ inputs: [
211
+ {
212
+ internalType: "uint24",
213
+ name: "",
214
+ type: "uint24",
215
+ },
216
+ ],
217
+ name: "perpBaseToUSDOracle",
242
218
  outputs: [
243
219
  {
244
220
  internalType: "address",
@@ -250,33 +226,19 @@ const _abi = [
250
226
  type: "function",
251
227
  },
252
228
  {
253
- inputs: [],
254
- name: "renounceOwnership",
255
- outputs: [],
256
- stateMutability: "nonpayable",
257
- type: "function",
258
- },
259
- {
260
- inputs: [],
261
- name: "symbol",
262
- outputs: [
229
+ inputs: [
263
230
  {
264
- internalType: "string",
231
+ internalType: "uint24",
265
232
  name: "",
266
- type: "string",
233
+ type: "uint24",
267
234
  },
268
235
  ],
269
- stateMutability: "view",
270
- type: "function",
271
- },
272
- {
273
- inputs: [],
274
- name: "totalSupply",
236
+ name: "perpToLastBaseToUSD",
275
237
  outputs: [
276
238
  {
277
- internalType: "uint256",
239
+ internalType: "int128",
278
240
  name: "",
279
- type: "uint256",
241
+ type: "int128",
280
242
  },
281
243
  ],
282
244
  stateMutability: "view",
@@ -284,54 +246,81 @@ const _abi = [
284
246
  },
285
247
  {
286
248
  inputs: [
249
+ {
250
+ internalType: "uint8",
251
+ name: "",
252
+ type: "uint8",
253
+ },
287
254
  {
288
255
  internalType: "address",
289
- name: "to",
256
+ name: "",
290
257
  type: "address",
291
258
  },
259
+ ],
260
+ name: "traderVolumeEMA",
261
+ outputs: [
262
+ {
263
+ internalType: "int128",
264
+ name: "fTradingVolumeEMAusd",
265
+ type: "int128",
266
+ },
267
+ {
268
+ internalType: "uint64",
269
+ name: "timestamp",
270
+ type: "uint64",
271
+ },
272
+ ],
273
+ stateMutability: "view",
274
+ type: "function",
275
+ },
276
+ {
277
+ inputs: [
292
278
  {
293
279
  internalType: "uint256",
294
- name: "amount",
280
+ name: "",
295
281
  type: "uint256",
296
282
  },
297
283
  ],
298
- name: "transfer",
284
+ name: "traderVolumeFeesTbps",
299
285
  outputs: [
300
286
  {
301
- internalType: "bool",
287
+ internalType: "uint16",
302
288
  name: "",
303
- type: "bool",
289
+ type: "uint16",
304
290
  },
305
291
  ],
306
- stateMutability: "nonpayable",
292
+ stateMutability: "view",
307
293
  type: "function",
308
294
  },
309
295
  {
310
296
  inputs: [
311
- {
312
- internalType: "address",
313
- name: "from",
314
- type: "address",
315
- },
316
- {
317
- internalType: "address",
318
- name: "to",
319
- type: "address",
320
- },
321
297
  {
322
298
  internalType: "uint256",
323
- name: "amount",
299
+ name: "",
324
300
  type: "uint256",
325
301
  },
326
302
  ],
327
- name: "transferFrom",
303
+ name: "traderVolumeTiers",
328
304
  outputs: [
329
305
  {
330
- internalType: "bool",
306
+ internalType: "uint256",
331
307
  name: "",
332
- type: "bool",
308
+ type: "uint256",
309
+ },
310
+ ],
311
+ stateMutability: "view",
312
+ type: "function",
313
+ },
314
+ {
315
+ inputs: [
316
+ {
317
+ internalType: "address",
318
+ name: "newGovernance",
319
+ type: "address",
333
320
  },
334
321
  ],
322
+ name: "transferGovernance",
323
+ outputs: [],
335
324
  stateMutability: "nonpayable",
336
325
  type: "function",
337
326
  },
@@ -339,17 +328,17 @@ const _abi = [
339
328
  inputs: [
340
329
  {
341
330
  internalType: "address",
342
- name: "newOwner",
331
+ name: "newMaintainer",
343
332
  type: "address",
344
333
  },
345
334
  ],
346
- name: "transferOwnership",
335
+ name: "transferMaintainer",
347
336
  outputs: [],
348
337
  stateMutability: "nonpayable",
349
338
  type: "function",
350
339
  },
351
340
  ];
352
- export class MockToken__factory {
341
+ export class PerpStorage__factory {
353
342
  static createInterface() {
354
343
  return new utils.Interface(_abi);
355
344
  }
@@ -357,5 +346,5 @@ export class MockToken__factory {
357
346
  return new Contract(address, _abi, signerOrProvider);
358
347
  }
359
348
  }
360
- MockToken__factory.abi = _abi;
361
- //# sourceMappingURL=MockToken__factory.js.map
349
+ PerpStorage__factory.abi = _abi;
350
+ //# sourceMappingURL=PerpStorage__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PerpStorage__factory.js","sourceRoot":"","sources":["../../../../src/contracts/factories/PerpStorage__factory.ts"],"names":[],"mappings":"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"}
@@ -264,7 +264,8 @@ export default class MarketData extends PerpetualDataHandler {
264
264
  */
265
265
  protected static _getLiquidationParams(symbol: string, lockedInQC: number, signedPositionBC: number, marginCashCC: number, markPrice: number, collToQuoteConversion: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): [number, number | undefined, number];
266
266
  /**
267
- * Gets the wallet balance in the collateral currency corresponding to a given perpetual symbol.
267
+ * Gets the wallet balance in the settlement currency corresponding to a given perpetual symbol.
268
+ * The settlement currency is usually the same as the collateral currency.
268
269
  * @param address Address to check
269
270
  * @param symbol Symbol of the form ETH-USD-MATIC.
270
271
  * @returns Perpetual's collateral token balance of the given address.
@@ -727,7 +727,8 @@ export default class MarketData extends PerpetualDataHandler {
727
727
  return [S2Liq, S3Liq, tau];
728
728
  }
729
729
  /**
730
- * Gets the wallet balance in the collateral currency corresponding to a given perpetual symbol.
730
+ * Gets the wallet balance in the settlement currency corresponding to a given perpetual symbol.
731
+ * The settlement currency is usually the same as the collateral currency.
731
732
  * @param address Address to check
732
733
  * @param symbol Symbol of the form ETH-USD-MATIC.
733
734
  * @returns Perpetual's collateral token balance of the given address.
@@ -747,10 +748,10 @@ export default class MarketData extends PerpetualDataHandler {
747
748
  */
748
749
  async getWalletBalance(address, symbol, overrides) {
749
750
  let poolIdx = this.getPoolStaticInfoIndexFromSymbol(symbol);
750
- let marginTokenAddr = this.poolStaticInfos[poolIdx].poolMarginTokenAddr;
751
- let token = ERC20__factory.connect(marginTokenAddr, this.provider);
751
+ let settleTokenAddr = this.poolStaticInfos[poolIdx].poolSettleTokenAddr;
752
+ let token = ERC20__factory.connect(settleTokenAddr, this.provider);
752
753
  let walletBalance = await token.balanceOf(address, overrides || {});
753
- let decimals = await token.decimals(overrides || {});
754
+ let decimals = this.poolStaticInfos[poolIdx].poolSettleTokenDecimals;
754
755
  return Number(formatUnits(walletBalance, decimals));
755
756
  }
756
757
  /**
@@ -899,6 +900,7 @@ export default class MarketData extends PerpetualDataHandler {
899
900
  .fetchPricesForPerpetual(symbol)
900
901
  .then((obj) => [obj.idxPrices[0], obj.idxPrices[1], obj.mktClosed[0], obj.mktClosed[1]]);
901
902
  const fS2S3 = [indexPriceInfo[0], indexPriceInfo[1]].map((x) => floatToABK64x64(x));
903
+ let coll2SettlePromise = this.fetchCollateralToSettlementConversion(symbol);
902
904
  const proxyCalls = [
903
905
  // 0: traderState
904
906
  {
@@ -908,7 +910,7 @@ export default class MarketData extends PerpetualDataHandler {
908
910
  },
909
911
  // 1: wallet balance
910
912
  {
911
- target: poolInfo.poolMarginTokenAddr,
913
+ target: poolInfo.poolSettleTokenAddr,
912
914
  allowFailure: false,
913
915
  callData: IERC20.encodeFunctionData("balanceOf", [traderAddr]),
914
916
  },
@@ -936,7 +938,7 @@ export default class MarketData extends PerpetualDataHandler {
936
938
  const feeRate = 1e-5 *
937
939
  this.proxyContract.interface.decodeFunctionResult("queryExchangeFee", encodedResults[2].returnData)[0];
938
940
  // Max based on margin requirements:
939
- const walletBalance = decNToFloat(IERC20.decodeFunctionResult("balanceOf", encodedResults[1].returnData)[0], poolInfo.poolMarginTokenDecimals);
941
+ const walletBalance = decNToFloat(IERC20.decodeFunctionResult("balanceOf", encodedResults[1].returnData)[0], poolInfo.poolSettleTokenDecimals);
940
942
  const proxyCalls2 = [
941
943
  // 0: max long
942
944
  {
@@ -969,8 +971,10 @@ export default class MarketData extends PerpetualDataHandler {
969
971
  const maxShortOrderPerp = ABK64x64ToFloat(this.proxyContract.interface.decodeFunctionResult("getMaxSignedOpenTradeSizeForPos", encodedResults2[1].returnData)[0]);
970
972
  const maxShortPosPerp = maxShortOrderPerp + ABK64x64ToFloat(traderState[idxNotional]);
971
973
  const curPos = (account.side == BUY_SIDE ? 1 : -1) * account.positionNotionalBaseCCY;
972
- const maxLongPosAccount = getMaxSignedPositionSize(account.collateralCC + walletBalance + account.unrealizedFundingCollateralCCY, curPos, account.entryPrice * curPos, 1, account.markPrice, perpInfo.initialMarginRate, feeRate, account.markPrice, indexPriceInfo[0], account.collToQuoteConversion);
973
- const maxShortPosAccount = getMaxSignedPositionSize(account.collateralCC + walletBalance + account.unrealizedFundingCollateralCCY, curPos, account.entryPrice * curPos, -1, account.markPrice, perpInfo.initialMarginRate, feeRate, account.markPrice, indexPriceInfo[0], account.collToQuoteConversion);
974
+ const px = await coll2SettlePromise;
975
+ const walletBalanceInMgnToken = walletBalance / px;
976
+ const maxLongPosAccount = getMaxSignedPositionSize(account.collateralCC + walletBalanceInMgnToken + account.unrealizedFundingCollateralCCY, curPos, account.entryPrice * curPos, 1, account.markPrice, perpInfo.initialMarginRate, feeRate, account.markPrice, indexPriceInfo[0], account.collToQuoteConversion);
977
+ const maxShortPosAccount = getMaxSignedPositionSize(account.collateralCC + walletBalanceInMgnToken + account.unrealizedFundingCollateralCCY, curPos, account.entryPrice * curPos, -1, account.markPrice, perpInfo.initialMarginRate, feeRate, account.markPrice, indexPriceInfo[0], account.collToQuoteConversion);
974
978
  // max long/short all accounted for
975
979
  const maxLong = Math.min(Math.abs(maxLongPosPerp), Math.abs(maxLongPosAccount));
976
980
  const maxShort = Math.min(Math.abs(maxShortPosPerp), Math.abs(maxShortPosAccount));
@@ -1197,6 +1201,8 @@ export default class MarketData extends PerpetualDataHandler {
1197
1201
  totalTargetAMMFundSizeCC: ABK64x64ToFloat(pool.fTargetAMMFundSize),
1198
1202
  brokerCollateralLotSize: ABK64x64ToFloat(pool.fBrokerCollateralLotSize),
1199
1203
  perpetuals: [],
1204
+ settleSymbol: this.poolStaticInfos[poolId - 1].poolSettleSymbol,
1205
+ settleTokenAddr: this.poolStaticInfos[poolId - 1].poolSettleTokenAddr,
1200
1206
  };
1201
1207
  return state;
1202
1208
  }
@@ -1225,6 +1231,8 @@ export default class MarketData extends PerpetualDataHandler {
1225
1231
  lotSizeBC: perpInfo.lotSizeBC,
1226
1232
  referralRebate: perpInfo.referralRebate,
1227
1233
  priceIds: perpInfo.priceIds,
1234
+ isPyth: perpInfo.isPyth,
1235
+ perpFlags: perpInfo.perpFlags,
1228
1236
  };
1229
1237
  return res;
1230
1238
  }
@@ -1613,6 +1621,8 @@ export default class MarketData extends PerpetualDataHandler {
1613
1621
  totalTargetAMMFundSizeCC: ABK64x64ToFloat(pool.fTargetAMMFundSize),
1614
1622
  brokerCollateralLotSize: ABK64x64ToFloat(pool.fBrokerCollateralLotSize),
1615
1623
  perpetuals: [],
1624
+ settleSymbol: _poolStaticInfos[k].poolSettleSymbol,
1625
+ settleTokenAddr: _poolStaticInfos[k].poolSettleTokenAddr,
1616
1626
  }));
1617
1627
  return poolStates;
1618
1628
  }