@acta-markets/ts-sdk 0.0.1-beta

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 (263) hide show
  1. package/README.md +308 -0
  2. package/dist/actaClient.d.ts +46 -0
  3. package/dist/actaClient.js +99 -0
  4. package/dist/chain/client.d.ts +65 -0
  5. package/dist/chain/client.js +82 -0
  6. package/dist/chain/fetch.d.ts +204 -0
  7. package/dist/chain/fetch.js +392 -0
  8. package/dist/chain/fetch.test.d.ts +1 -0
  9. package/dist/chain/fetch.test.js +158 -0
  10. package/dist/chain/flows/index.d.ts +1 -0
  11. package/dist/chain/flows/index.js +1 -0
  12. package/dist/chain/flows/openPosition.d.ts +48 -0
  13. package/dist/chain/flows/openPosition.js +78 -0
  14. package/dist/chain/flows/openPosition.test.d.ts +1 -0
  15. package/dist/chain/flows/openPosition.test.js +43 -0
  16. package/dist/chain/helpers.d.ts +16 -0
  17. package/dist/chain/helpers.js +60 -0
  18. package/dist/chain/index.d.ts +9 -0
  19. package/dist/chain/index.js +9 -0
  20. package/dist/chain/instructions.admin.d.ts +44 -0
  21. package/dist/chain/instructions.admin.js +113 -0
  22. package/dist/chain/instructions.d.ts +5 -0
  23. package/dist/chain/instructions.js +5 -0
  24. package/dist/chain/instructions.maker.d.ts +34 -0
  25. package/dist/chain/instructions.maker.js +86 -0
  26. package/dist/chain/instructions.market.d.ts +39 -0
  27. package/dist/chain/instructions.market.js +107 -0
  28. package/dist/chain/instructions.oracle.d.ts +38 -0
  29. package/dist/chain/instructions.oracle.js +63 -0
  30. package/dist/chain/instructions.position.d.ts +82 -0
  31. package/dist/chain/instructions.position.js +240 -0
  32. package/dist/chain/instructions.resolve.test.d.ts +1 -0
  33. package/dist/chain/instructions.resolve.test.js +32 -0
  34. package/dist/chain/instructions.shared.d.ts +23 -0
  35. package/dist/chain/instructions.shared.js +55 -0
  36. package/dist/chain/orders.d.ts +40 -0
  37. package/dist/chain/orders.js +117 -0
  38. package/dist/chain/orders.test.d.ts +1 -0
  39. package/dist/chain/orders.test.js +67 -0
  40. package/dist/chain/signers.d.ts +9 -0
  41. package/dist/chain/signers.js +19 -0
  42. package/dist/chain/signers.test.d.ts +1 -0
  43. package/dist/chain/signers.test.js +13 -0
  44. package/dist/chain/token.d.ts +59 -0
  45. package/dist/chain/token.js +136 -0
  46. package/dist/chain/token.test.d.ts +1 -0
  47. package/dist/chain/token.test.js +69 -0
  48. package/dist/chain/tx.d.ts +72 -0
  49. package/dist/chain/tx.js +97 -0
  50. package/dist/cjs/actaClient.js +103 -0
  51. package/dist/cjs/chain/client.js +119 -0
  52. package/dist/cjs/chain/fetch.js +431 -0
  53. package/dist/cjs/chain/fetch.test.js +160 -0
  54. package/dist/cjs/chain/flows/index.js +17 -0
  55. package/dist/cjs/chain/flows/openPosition.js +81 -0
  56. package/dist/cjs/chain/flows/openPosition.test.js +45 -0
  57. package/dist/cjs/chain/helpers.js +67 -0
  58. package/dist/cjs/chain/index.js +48 -0
  59. package/dist/cjs/chain/instructions.admin.js +119 -0
  60. package/dist/cjs/chain/instructions.js +21 -0
  61. package/dist/cjs/chain/instructions.maker.js +92 -0
  62. package/dist/cjs/chain/instructions.market.js +112 -0
  63. package/dist/cjs/chain/instructions.oracle.js +70 -0
  64. package/dist/cjs/chain/instructions.position.js +247 -0
  65. package/dist/cjs/chain/instructions.resolve.test.js +34 -0
  66. package/dist/cjs/chain/instructions.shared.js +64 -0
  67. package/dist/cjs/chain/orders.js +126 -0
  68. package/dist/cjs/chain/orders.test.js +69 -0
  69. package/dist/cjs/chain/signers.js +22 -0
  70. package/dist/cjs/chain/signers.test.js +15 -0
  71. package/dist/cjs/chain/token.js +147 -0
  72. package/dist/cjs/chain/token.test.js +71 -0
  73. package/dist/cjs/chain/tx.js +103 -0
  74. package/dist/cjs/constants.js +6 -0
  75. package/dist/cjs/constants.test.js +31 -0
  76. package/dist/cjs/events.js +75 -0
  77. package/dist/cjs/events.test.js +384 -0
  78. package/dist/cjs/generated/accounts/config.js +79 -0
  79. package/dist/cjs/generated/accounts/index.js +28 -0
  80. package/dist/cjs/generated/accounts/maker.js +71 -0
  81. package/dist/cjs/generated/accounts/market.js +93 -0
  82. package/dist/cjs/generated/accounts/oracle.js +85 -0
  83. package/dist/cjs/generated/accounts/position.js +89 -0
  84. package/dist/cjs/generated/errors/actaContract.js +154 -0
  85. package/dist/cjs/generated/errors/index.js +24 -0
  86. package/dist/cjs/generated/index.js +28 -0
  87. package/dist/cjs/generated/instructions/changeOracleSource.js +81 -0
  88. package/dist/cjs/generated/instructions/closeMarket.js +83 -0
  89. package/dist/cjs/generated/instructions/closeOracle.js +79 -0
  90. package/dist/cjs/generated/instructions/createMarket.js +116 -0
  91. package/dist/cjs/generated/instructions/createOracle.js +99 -0
  92. package/dist/cjs/generated/instructions/depositFundsToPosition.js +101 -0
  93. package/dist/cjs/generated/instructions/depositPremium.js +96 -0
  94. package/dist/cjs/generated/instructions/finalizeMarket.js +91 -0
  95. package/dist/cjs/generated/instructions/index.js +43 -0
  96. package/dist/cjs/generated/instructions/initializeConfig.js +108 -0
  97. package/dist/cjs/generated/instructions/liquidatePosition.js +107 -0
  98. package/dist/cjs/generated/instructions/openPosition.js +154 -0
  99. package/dist/cjs/generated/instructions/registerMaker.js +90 -0
  100. package/dist/cjs/generated/instructions/setOracleConfig.js +80 -0
  101. package/dist/cjs/generated/instructions/settlePosition.js +104 -0
  102. package/dist/cjs/generated/instructions/topupFeeFund.js +96 -0
  103. package/dist/cjs/generated/instructions/updateConfig.js +86 -0
  104. package/dist/cjs/generated/instructions/updateMakerQuoteSigning.js +79 -0
  105. package/dist/cjs/generated/instructions/updateMarketOracles.js +96 -0
  106. package/dist/cjs/generated/instructions/updateOraclePrice.js +89 -0
  107. package/dist/cjs/generated/instructions/withdrawFromFeeFund.js +96 -0
  108. package/dist/cjs/generated/instructions/withdrawPremium.js +96 -0
  109. package/dist/cjs/generated/programs/actaContract.js +108 -0
  110. package/dist/cjs/generated/programs/index.js +24 -0
  111. package/dist/cjs/generated/shared/index.js +94 -0
  112. package/dist/cjs/generated/types/actaEvent.js +342 -0
  113. package/dist/cjs/generated/types/eventKind.js +45 -0
  114. package/dist/cjs/generated/types/index.js +27 -0
  115. package/dist/cjs/generated/types/positionStatus.js +31 -0
  116. package/dist/cjs/generated/types/positionType.js +28 -0
  117. package/dist/cjs/idl/acta_contract.json +2329 -0
  118. package/dist/cjs/idl/hash.js +4 -0
  119. package/dist/cjs/index.js +84 -0
  120. package/dist/cjs/nonce.js +93 -0
  121. package/dist/cjs/package.json +3 -0
  122. package/dist/cjs/types/index.js +18 -0
  123. package/dist/cjs/types/orderId.js +40 -0
  124. package/dist/cjs/types/orders.js +10 -0
  125. package/dist/cjs/ws/apy.js +106 -0
  126. package/dist/cjs/ws/apy.test.js +29 -0
  127. package/dist/cjs/ws/auth.js +104 -0
  128. package/dist/cjs/ws/client.handshake.integration.test.js +69 -0
  129. package/dist/cjs/ws/client.js +861 -0
  130. package/dist/cjs/ws/client.test.js +230 -0
  131. package/dist/cjs/ws/discovery.js +48 -0
  132. package/dist/cjs/ws/flows.js +101 -0
  133. package/dist/cjs/ws/flows.test.js +85 -0
  134. package/dist/cjs/ws/index.js +23 -0
  135. package/dist/cjs/ws/sponsoredTx.js +95 -0
  136. package/dist/cjs/ws/types.js +14 -0
  137. package/dist/cjs/ws/wirePolicy.js +34 -0
  138. package/dist/constants.d.ts +2 -0
  139. package/dist/constants.js +3 -0
  140. package/dist/constants.test.d.ts +1 -0
  141. package/dist/constants.test.js +29 -0
  142. package/dist/events.d.ts +15 -0
  143. package/dist/events.js +64 -0
  144. package/dist/events.test.d.ts +1 -0
  145. package/dist/events.test.js +382 -0
  146. package/dist/generated/accounts/config.d.ts +47 -0
  147. package/dist/generated/accounts/config.js +68 -0
  148. package/dist/generated/accounts/index.d.ts +12 -0
  149. package/dist/generated/accounts/index.js +12 -0
  150. package/dist/generated/accounts/maker.d.ts +39 -0
  151. package/dist/generated/accounts/maker.js +60 -0
  152. package/dist/generated/accounts/market.d.ts +61 -0
  153. package/dist/generated/accounts/market.js +82 -0
  154. package/dist/generated/accounts/oracle.d.ts +53 -0
  155. package/dist/generated/accounts/oracle.js +74 -0
  156. package/dist/generated/accounts/position.d.ts +57 -0
  157. package/dist/generated/accounts/position.js +78 -0
  158. package/dist/generated/errors/actaContract.d.ts +103 -0
  159. package/dist/generated/errors/actaContract.js +149 -0
  160. package/dist/generated/errors/index.d.ts +8 -0
  161. package/dist/generated/errors/index.js +8 -0
  162. package/dist/generated/index.d.ts +12 -0
  163. package/dist/generated/index.js +12 -0
  164. package/dist/generated/instructions/changeOracleSource.d.ts +50 -0
  165. package/dist/generated/instructions/changeOracleSource.js +72 -0
  166. package/dist/generated/instructions/closeMarket.d.ts +58 -0
  167. package/dist/generated/instructions/closeMarket.js +74 -0
  168. package/dist/generated/instructions/closeOracle.d.ts +48 -0
  169. package/dist/generated/instructions/closeOracle.js +70 -0
  170. package/dist/generated/instructions/createMarket.d.ts +90 -0
  171. package/dist/generated/instructions/createMarket.js +107 -0
  172. package/dist/generated/instructions/createOracle.d.ts +71 -0
  173. package/dist/generated/instructions/createOracle.js +90 -0
  174. package/dist/generated/instructions/depositFundsToPosition.d.ts +73 -0
  175. package/dist/generated/instructions/depositFundsToPosition.js +92 -0
  176. package/dist/generated/instructions/depositPremium.d.ts +62 -0
  177. package/dist/generated/instructions/depositPremium.js +87 -0
  178. package/dist/generated/instructions/finalizeMarket.d.ts +63 -0
  179. package/dist/generated/instructions/finalizeMarket.js +82 -0
  180. package/dist/generated/instructions/index.d.ts +27 -0
  181. package/dist/generated/instructions/index.js +27 -0
  182. package/dist/generated/instructions/initializeConfig.d.ts +75 -0
  183. package/dist/generated/instructions/initializeConfig.js +99 -0
  184. package/dist/generated/instructions/liquidatePosition.d.ts +78 -0
  185. package/dist/generated/instructions/liquidatePosition.js +98 -0
  186. package/dist/generated/instructions/openPosition.d.ts +130 -0
  187. package/dist/generated/instructions/openPosition.js +145 -0
  188. package/dist/generated/instructions/registerMaker.d.ts +57 -0
  189. package/dist/generated/instructions/registerMaker.js +81 -0
  190. package/dist/generated/instructions/setOracleConfig.d.ts +53 -0
  191. package/dist/generated/instructions/setOracleConfig.js +71 -0
  192. package/dist/generated/instructions/settlePosition.d.ts +78 -0
  193. package/dist/generated/instructions/settlePosition.js +95 -0
  194. package/dist/generated/instructions/topupFeeFund.d.ts +67 -0
  195. package/dist/generated/instructions/topupFeeFund.js +87 -0
  196. package/dist/generated/instructions/updateConfig.d.ts +58 -0
  197. package/dist/generated/instructions/updateConfig.js +77 -0
  198. package/dist/generated/instructions/updateMakerQuoteSigning.d.ts +47 -0
  199. package/dist/generated/instructions/updateMakerQuoteSigning.js +70 -0
  200. package/dist/generated/instructions/updateMarketOracles.d.ts +65 -0
  201. package/dist/generated/instructions/updateMarketOracles.js +87 -0
  202. package/dist/generated/instructions/updateOraclePrice.d.ts +55 -0
  203. package/dist/generated/instructions/updateOraclePrice.js +80 -0
  204. package/dist/generated/instructions/withdrawFromFeeFund.d.ts +62 -0
  205. package/dist/generated/instructions/withdrawFromFeeFund.js +87 -0
  206. package/dist/generated/instructions/withdrawPremium.d.ts +62 -0
  207. package/dist/generated/instructions/withdrawPremium.js +87 -0
  208. package/dist/generated/programs/actaContract.d.ts +83 -0
  209. package/dist/generated/programs/actaContract.js +104 -0
  210. package/dist/generated/programs/index.d.ts +8 -0
  211. package/dist/generated/programs/index.js +8 -0
  212. package/dist/generated/shared/index.d.ts +49 -0
  213. package/dist/generated/shared/index.js +86 -0
  214. package/dist/generated/types/actaEvent.d.ts +249 -0
  215. package/dist/generated/types/actaEvent.js +335 -0
  216. package/dist/generated/types/eventKind.d.ts +33 -0
  217. package/dist/generated/types/eventKind.js +39 -0
  218. package/dist/generated/types/index.d.ts +11 -0
  219. package/dist/generated/types/index.js +11 -0
  220. package/dist/generated/types/positionStatus.d.ts +19 -0
  221. package/dist/generated/types/positionStatus.js +25 -0
  222. package/dist/generated/types/positionType.d.ts +16 -0
  223. package/dist/generated/types/positionType.js +22 -0
  224. package/dist/idl/acta_contract.json +2329 -0
  225. package/dist/idl/hash.d.ts +1 -0
  226. package/dist/idl/hash.js +1 -0
  227. package/dist/index.d.ts +109 -0
  228. package/dist/index.js +34 -0
  229. package/dist/nonce.d.ts +29 -0
  230. package/dist/nonce.js +89 -0
  231. package/dist/types/index.d.ts +2 -0
  232. package/dist/types/index.js +2 -0
  233. package/dist/types/orderId.d.ts +13 -0
  234. package/dist/types/orderId.js +35 -0
  235. package/dist/types/orders.d.ts +9 -0
  236. package/dist/types/orders.js +9 -0
  237. package/dist/ws/apy.d.ts +79 -0
  238. package/dist/ws/apy.js +98 -0
  239. package/dist/ws/apy.test.d.ts +1 -0
  240. package/dist/ws/apy.test.js +27 -0
  241. package/dist/ws/auth.d.ts +67 -0
  242. package/dist/ws/auth.js +98 -0
  243. package/dist/ws/client.d.ts +263 -0
  244. package/dist/ws/client.handshake.integration.test.d.ts +1 -0
  245. package/dist/ws/client.handshake.integration.test.js +64 -0
  246. package/dist/ws/client.js +857 -0
  247. package/dist/ws/client.test.d.ts +1 -0
  248. package/dist/ws/client.test.js +228 -0
  249. package/dist/ws/discovery.d.ts +13 -0
  250. package/dist/ws/discovery.js +44 -0
  251. package/dist/ws/flows.d.ts +44 -0
  252. package/dist/ws/flows.js +96 -0
  253. package/dist/ws/flows.test.d.ts +1 -0
  254. package/dist/ws/flows.test.js +83 -0
  255. package/dist/ws/index.d.ts +7 -0
  256. package/dist/ws/index.js +7 -0
  257. package/dist/ws/sponsoredTx.d.ts +39 -0
  258. package/dist/ws/sponsoredTx.js +92 -0
  259. package/dist/ws/types.d.ts +900 -0
  260. package/dist/ws/types.js +13 -0
  261. package/dist/ws/wirePolicy.d.ts +12 -0
  262. package/dist/ws/wirePolicy.js +30 -0
  263. package/package.json +87 -0
@@ -0,0 +1,2329 @@
1
+ {
2
+ "version": "0.1.0",
3
+ "name": "acta_contract",
4
+ "instructions": [
5
+ {
6
+ "name": "InitializeConfig",
7
+ "accounts": [
8
+ {
9
+ "name": "admin",
10
+ "isMut": true,
11
+ "isSigner": true,
12
+ "docs": [
13
+ "Protocol admin authority (pays rent for config + protocol fee ATA)"
14
+ ]
15
+ },
16
+ {
17
+ "name": "configPda",
18
+ "isMut": true,
19
+ "isSigner": false,
20
+ "docs": [
21
+ "Config PDA to initialize"
22
+ ]
23
+ },
24
+ {
25
+ "name": "premiumMint",
26
+ "isMut": false,
27
+ "isSigner": false,
28
+ "docs": [
29
+ "Premium SPL mint"
30
+ ]
31
+ },
32
+ {
33
+ "name": "protocolFeeAta",
34
+ "isMut": true,
35
+ "isSigner": false,
36
+ "docs": [
37
+ "Protocol fee token account"
38
+ ]
39
+ },
40
+ {
41
+ "name": "systemProgram",
42
+ "isMut": false,
43
+ "isSigner": false,
44
+ "docs": [
45
+ "System program"
46
+ ]
47
+ },
48
+ {
49
+ "name": "tokenProgram",
50
+ "isMut": false,
51
+ "isSigner": false,
52
+ "docs": [
53
+ "SPL token program"
54
+ ]
55
+ },
56
+ {
57
+ "name": "associatedTokenProgram",
58
+ "isMut": false,
59
+ "isSigner": false,
60
+ "docs": [
61
+ "Associated token program"
62
+ ]
63
+ }
64
+ ],
65
+ "args": [
66
+ {
67
+ "name": "protocolFeeBpsPremium",
68
+ "type": "u16"
69
+ },
70
+ {
71
+ "name": "protocolFeeBpsVolume",
72
+ "type": "u16"
73
+ }
74
+ ],
75
+ "discriminant": {
76
+ "type": "u8",
77
+ "value": 0
78
+ }
79
+ },
80
+ {
81
+ "name": "UpdateConfig",
82
+ "accounts": [
83
+ {
84
+ "name": "admin",
85
+ "isMut": false,
86
+ "isSigner": true,
87
+ "docs": [
88
+ "Protocol admin authority"
89
+ ]
90
+ },
91
+ {
92
+ "name": "configPda",
93
+ "isMut": true,
94
+ "isSigner": false,
95
+ "docs": [
96
+ "Config PDA to update"
97
+ ]
98
+ },
99
+ {
100
+ "name": "premiumMint",
101
+ "isMut": false,
102
+ "isSigner": false,
103
+ "docs": [
104
+ "Premium SPL mint"
105
+ ]
106
+ }
107
+ ],
108
+ "args": [
109
+ {
110
+ "name": "mask",
111
+ "type": "u8"
112
+ },
113
+ {
114
+ "name": "protocolFeeBpsPremium",
115
+ "type": "u16"
116
+ },
117
+ {
118
+ "name": "protocolFeeBpsVolume",
119
+ "type": "u16"
120
+ }
121
+ ],
122
+ "discriminant": {
123
+ "type": "u8",
124
+ "value": 1
125
+ }
126
+ },
127
+ {
128
+ "name": "RegisterMaker",
129
+ "accounts": [
130
+ {
131
+ "name": "admin",
132
+ "isMut": true,
133
+ "isSigner": true,
134
+ "docs": [
135
+ "Protocol admin authority that pays rent"
136
+ ]
137
+ },
138
+ {
139
+ "name": "makerOwner",
140
+ "isMut": false,
141
+ "isSigner": false,
142
+ "docs": [
143
+ "Maker owner pubkey (not a signer)"
144
+ ]
145
+ },
146
+ {
147
+ "name": "makerPda",
148
+ "isMut": true,
149
+ "isSigner": false,
150
+ "docs": [
151
+ "Maker PDA to create"
152
+ ]
153
+ },
154
+ {
155
+ "name": "systemProgram",
156
+ "isMut": false,
157
+ "isSigner": false,
158
+ "docs": [
159
+ "System program"
160
+ ]
161
+ }
162
+ ],
163
+ "args": [
164
+ {
165
+ "name": "quoteSigning",
166
+ "type": "publicKey"
167
+ }
168
+ ],
169
+ "discriminant": {
170
+ "type": "u8",
171
+ "value": 2
172
+ }
173
+ },
174
+ {
175
+ "name": "UpdateMakerQuoteSigning",
176
+ "accounts": [
177
+ {
178
+ "name": "makerOwner",
179
+ "isMut": false,
180
+ "isSigner": true,
181
+ "docs": [
182
+ "Maker owner authority"
183
+ ]
184
+ },
185
+ {
186
+ "name": "makerPda",
187
+ "isMut": true,
188
+ "isSigner": false,
189
+ "docs": [
190
+ "Maker PDA being updated"
191
+ ]
192
+ }
193
+ ],
194
+ "args": [
195
+ {
196
+ "name": "newQuoteSigning",
197
+ "type": "publicKey"
198
+ }
199
+ ],
200
+ "discriminant": {
201
+ "type": "u8",
202
+ "value": 3
203
+ }
204
+ },
205
+ {
206
+ "name": "DepositPremium",
207
+ "accounts": [
208
+ {
209
+ "name": "makerOwner",
210
+ "isMut": false,
211
+ "isSigner": true,
212
+ "docs": [
213
+ "Maker owner authority"
214
+ ]
215
+ },
216
+ {
217
+ "name": "makerPda",
218
+ "isMut": false,
219
+ "isSigner": false,
220
+ "docs": [
221
+ "Maker PDA for ownership checks"
222
+ ]
223
+ },
224
+ {
225
+ "name": "makerOwnerPremiumAta",
226
+ "isMut": true,
227
+ "isSigner": false,
228
+ "docs": [
229
+ "Source premium ATA"
230
+ ]
231
+ },
232
+ {
233
+ "name": "makerPremiumAta",
234
+ "isMut": true,
235
+ "isSigner": false,
236
+ "docs": [
237
+ "Maker custody ATA"
238
+ ]
239
+ },
240
+ {
241
+ "name": "tokenProgram",
242
+ "isMut": false,
243
+ "isSigner": false,
244
+ "docs": [
245
+ "SPL token program"
246
+ ]
247
+ }
248
+ ],
249
+ "args": [
250
+ {
251
+ "name": "amount",
252
+ "type": "u64"
253
+ }
254
+ ],
255
+ "discriminant": {
256
+ "type": "u8",
257
+ "value": 4
258
+ }
259
+ },
260
+ {
261
+ "name": "WithdrawPremium",
262
+ "accounts": [
263
+ {
264
+ "name": "makerOwner",
265
+ "isMut": false,
266
+ "isSigner": true,
267
+ "docs": [
268
+ "Maker owner authority"
269
+ ]
270
+ },
271
+ {
272
+ "name": "makerPda",
273
+ "isMut": true,
274
+ "isSigner": false,
275
+ "docs": [
276
+ "Maker PDA for signer seeds"
277
+ ]
278
+ },
279
+ {
280
+ "name": "makerPremiumAta",
281
+ "isMut": true,
282
+ "isSigner": false,
283
+ "docs": [
284
+ "Maker custody ATA (source)"
285
+ ]
286
+ },
287
+ {
288
+ "name": "makerOwnerPremiumAta",
289
+ "isMut": true,
290
+ "isSigner": false,
291
+ "docs": [
292
+ "Maker wallet ATA (destination)"
293
+ ]
294
+ },
295
+ {
296
+ "name": "tokenProgram",
297
+ "isMut": false,
298
+ "isSigner": false,
299
+ "docs": [
300
+ "SPL token program"
301
+ ]
302
+ }
303
+ ],
304
+ "args": [
305
+ {
306
+ "name": "amount",
307
+ "type": "u64"
308
+ }
309
+ ],
310
+ "discriminant": {
311
+ "type": "u8",
312
+ "value": 5
313
+ }
314
+ },
315
+ {
316
+ "name": "CreateMarket",
317
+ "accounts": [
318
+ {
319
+ "name": "admin",
320
+ "isMut": false,
321
+ "isSigner": true,
322
+ "docs": [
323
+ "Protocol admin authority"
324
+ ]
325
+ },
326
+ {
327
+ "name": "configPda",
328
+ "isMut": false,
329
+ "isSigner": false,
330
+ "docs": [
331
+ "Config PDA for admin verification"
332
+ ]
333
+ },
334
+ {
335
+ "name": "marketPda",
336
+ "isMut": true,
337
+ "isSigner": false,
338
+ "docs": [
339
+ "Market PDA to create"
340
+ ]
341
+ },
342
+ {
343
+ "name": "underlyingMint",
344
+ "isMut": false,
345
+ "isSigner": false,
346
+ "docs": [
347
+ "Underlying SPL mint"
348
+ ]
349
+ },
350
+ {
351
+ "name": "quoteMint",
352
+ "isMut": false,
353
+ "isSigner": false,
354
+ "docs": [
355
+ "Quote SPL mint"
356
+ ]
357
+ },
358
+ {
359
+ "name": "underlyingMintAcc",
360
+ "isMut": false,
361
+ "isSigner": false,
362
+ "docs": [
363
+ "Underlying mint account (for decimals)"
364
+ ]
365
+ },
366
+ {
367
+ "name": "quoteMintAcc",
368
+ "isMut": false,
369
+ "isSigner": false,
370
+ "docs": [
371
+ "Quote mint account (for decimals)"
372
+ ]
373
+ },
374
+ {
375
+ "name": "oracleUnderlying",
376
+ "isMut": true,
377
+ "isSigner": false,
378
+ "docs": [
379
+ "Underlying oracle PDA"
380
+ ]
381
+ },
382
+ {
383
+ "name": "oracleQuote",
384
+ "isMut": true,
385
+ "isSigner": false,
386
+ "docs": [
387
+ "Quote oracle PDA"
388
+ ]
389
+ },
390
+ {
391
+ "name": "systemProgram",
392
+ "isMut": false,
393
+ "isSigner": false,
394
+ "docs": [
395
+ "System program"
396
+ ]
397
+ }
398
+ ],
399
+ "args": [
400
+ {
401
+ "name": "expiryTs",
402
+ "type": "u64"
403
+ },
404
+ {
405
+ "name": "isPut",
406
+ "type": "bool"
407
+ }
408
+ ],
409
+ "discriminant": {
410
+ "type": "u8",
411
+ "value": 6
412
+ }
413
+ },
414
+ {
415
+ "name": "OpenPosition",
416
+ "accounts": [
417
+ {
418
+ "name": "keeper",
419
+ "isMut": true,
420
+ "isSigner": true,
421
+ "docs": [
422
+ "Keeper relaying the RFQ fill"
423
+ ]
424
+ },
425
+ {
426
+ "name": "user",
427
+ "isMut": false,
428
+ "isSigner": true,
429
+ "docs": [
430
+ "Taker account (signs tx / token authority)"
431
+ ]
432
+ },
433
+ {
434
+ "name": "userUnderlyingAta",
435
+ "isMut": true,
436
+ "isSigner": false,
437
+ "docs": [
438
+ "User ATA for underlying collateral"
439
+ ]
440
+ },
441
+ {
442
+ "name": "userQuoteAta",
443
+ "isMut": true,
444
+ "isSigner": false,
445
+ "docs": [
446
+ "User ATA for quote collateral/premium"
447
+ ]
448
+ },
449
+ {
450
+ "name": "makerPda",
451
+ "isMut": true,
452
+ "isSigner": false,
453
+ "docs": [
454
+ "Maker PDA authority"
455
+ ]
456
+ },
457
+ {
458
+ "name": "makerPremiumAta",
459
+ "isMut": true,
460
+ "isSigner": false,
461
+ "docs": [
462
+ "Maker premium custody ATA"
463
+ ]
464
+ },
465
+ {
466
+ "name": "marketPda",
467
+ "isMut": true,
468
+ "isSigner": false,
469
+ "docs": [
470
+ "Market PDA being referenced"
471
+ ]
472
+ },
473
+ {
474
+ "name": "positionPda",
475
+ "isMut": true,
476
+ "isSigner": false,
477
+ "docs": [
478
+ "Position PDA to create"
479
+ ]
480
+ },
481
+ {
482
+ "name": "posCollateralAta",
483
+ "isMut": true,
484
+ "isSigner": false,
485
+ "docs": [
486
+ "Position collateral ATA"
487
+ ]
488
+ },
489
+ {
490
+ "name": "configPda",
491
+ "isMut": false,
492
+ "isSigner": false,
493
+ "docs": [
494
+ "Config PDA (admin gate + protocol fee config)"
495
+ ]
496
+ },
497
+ {
498
+ "name": "protocolFeeAta",
499
+ "isMut": true,
500
+ "isSigner": false,
501
+ "docs": [
502
+ "Protocol fee ATA"
503
+ ]
504
+ },
505
+ {
506
+ "name": "instructionsSysvar",
507
+ "isMut": false,
508
+ "isSigner": false,
509
+ "docs": [
510
+ "Sysvar Instructions for Ed25519 proofs"
511
+ ]
512
+ },
513
+ {
514
+ "name": "underlyingTokenProgram",
515
+ "isMut": false,
516
+ "isSigner": false,
517
+ "docs": [
518
+ "Token program for underlying mint"
519
+ ]
520
+ },
521
+ {
522
+ "name": "quoteTokenProgram",
523
+ "isMut": false,
524
+ "isSigner": false,
525
+ "docs": [
526
+ "Token program for quote/premium mint"
527
+ ]
528
+ },
529
+ {
530
+ "name": "systemProgram",
531
+ "isMut": false,
532
+ "isSigner": false,
533
+ "docs": [
534
+ "System program"
535
+ ]
536
+ }
537
+ ],
538
+ "args": [
539
+ {
540
+ "name": "positionType",
541
+ "type": "u8"
542
+ },
543
+ {
544
+ "name": "strike",
545
+ "type": "u64"
546
+ },
547
+ {
548
+ "name": "quantity",
549
+ "type": "u64"
550
+ },
551
+ {
552
+ "name": "price",
553
+ "type": "u64"
554
+ },
555
+ {
556
+ "name": "validUntil",
557
+ "type": "u64"
558
+ },
559
+ {
560
+ "name": "nonce",
561
+ "type": "u64"
562
+ },
563
+ {
564
+ "name": "orderId",
565
+ "type": {
566
+ "array": [
567
+ "u8",
568
+ 32
569
+ ]
570
+ }
571
+ }
572
+ ],
573
+ "discriminant": {
574
+ "type": "u8",
575
+ "value": 7
576
+ }
577
+ },
578
+ {
579
+ "name": "FinalizeMarket",
580
+ "accounts": [
581
+ {
582
+ "name": "admin",
583
+ "isMut": false,
584
+ "isSigner": true,
585
+ "docs": [
586
+ "Protocol admin authority"
587
+ ]
588
+ },
589
+ {
590
+ "name": "marketPda",
591
+ "isMut": true,
592
+ "isSigner": false,
593
+ "docs": [
594
+ "Market PDA to finalize"
595
+ ]
596
+ },
597
+ {
598
+ "name": "configPda",
599
+ "isMut": false,
600
+ "isSigner": false,
601
+ "docs": [
602
+ "Config PDA for admin verification"
603
+ ]
604
+ },
605
+ {
606
+ "name": "oracleUnderlying",
607
+ "isMut": false,
608
+ "isSigner": false,
609
+ "docs": [
610
+ "Underlying oracle PDA"
611
+ ]
612
+ },
613
+ {
614
+ "name": "oracleQuote",
615
+ "isMut": false,
616
+ "isSigner": false,
617
+ "docs": [
618
+ "Quote oracle PDA"
619
+ ]
620
+ },
621
+ {
622
+ "name": "clockSysvar",
623
+ "isMut": false,
624
+ "isSigner": false,
625
+ "docs": [
626
+ "Clock sysvar account"
627
+ ]
628
+ }
629
+ ],
630
+ "args": [],
631
+ "discriminant": {
632
+ "type": "u8",
633
+ "value": 8
634
+ }
635
+ },
636
+ {
637
+ "name": "DepositFundsToPosition",
638
+ "accounts": [
639
+ {
640
+ "name": "makerOwner",
641
+ "isMut": false,
642
+ "isSigner": true,
643
+ "docs": [
644
+ "Maker owner authority"
645
+ ]
646
+ },
647
+ {
648
+ "name": "makerPda",
649
+ "isMut": false,
650
+ "isSigner": false,
651
+ "docs": [
652
+ "Maker PDA for ownership check"
653
+ ]
654
+ },
655
+ {
656
+ "name": "positionPda",
657
+ "isMut": true,
658
+ "isSigner": false,
659
+ "docs": [
660
+ "Position PDA to fund"
661
+ ]
662
+ },
663
+ {
664
+ "name": "marketPda",
665
+ "isMut": false,
666
+ "isSigner": false,
667
+ "docs": [
668
+ "Market PDA for quote mint checks"
669
+ ]
670
+ },
671
+ {
672
+ "name": "makerFundingAta",
673
+ "isMut": true,
674
+ "isSigner": false,
675
+ "docs": [
676
+ "Maker funding ATA (source)"
677
+ ]
678
+ },
679
+ {
680
+ "name": "posSettlementAta",
681
+ "isMut": true,
682
+ "isSigner": false,
683
+ "docs": [
684
+ "Position settlement ATA"
685
+ ]
686
+ },
687
+ {
688
+ "name": "underlyingTokenProgram",
689
+ "isMut": false,
690
+ "isSigner": false,
691
+ "docs": [
692
+ "Token program for underlying mint"
693
+ ]
694
+ },
695
+ {
696
+ "name": "quoteTokenProgram",
697
+ "isMut": false,
698
+ "isSigner": false,
699
+ "docs": [
700
+ "Token program for quote mint"
701
+ ]
702
+ }
703
+ ],
704
+ "args": [],
705
+ "discriminant": {
706
+ "type": "u8",
707
+ "value": 9
708
+ }
709
+ },
710
+ {
711
+ "name": "SettlePosition",
712
+ "accounts": [
713
+ {
714
+ "name": "settler",
715
+ "isMut": true,
716
+ "isSigner": true,
717
+ "docs": [
718
+ "Settler receiving rent from closed position"
719
+ ]
720
+ },
721
+ {
722
+ "name": "positionPda",
723
+ "isMut": true,
724
+ "isSigner": false,
725
+ "docs": [
726
+ "Position PDA to settle"
727
+ ]
728
+ },
729
+ {
730
+ "name": "marketPda",
731
+ "isMut": true,
732
+ "isSigner": false,
733
+ "docs": [
734
+ "Market PDA providing settlement data"
735
+ ]
736
+ },
737
+ {
738
+ "name": "posCollateralAta",
739
+ "isMut": true,
740
+ "isSigner": false,
741
+ "docs": [
742
+ "Position collateral ATA"
743
+ ]
744
+ },
745
+ {
746
+ "name": "posSettlementAta",
747
+ "isMut": true,
748
+ "isSigner": false,
749
+ "docs": [
750
+ "Position settlement ATA"
751
+ ]
752
+ },
753
+ {
754
+ "name": "userDestAta",
755
+ "isMut": true,
756
+ "isSigner": false,
757
+ "docs": [
758
+ "User destination ATA"
759
+ ]
760
+ },
761
+ {
762
+ "name": "makerDestAta",
763
+ "isMut": true,
764
+ "isSigner": false,
765
+ "docs": [
766
+ "Maker destination ATA"
767
+ ]
768
+ },
769
+ {
770
+ "name": "underlyingTokenProgram",
771
+ "isMut": false,
772
+ "isSigner": false,
773
+ "docs": [
774
+ "Token program for underlying mint"
775
+ ]
776
+ },
777
+ {
778
+ "name": "quoteTokenProgram",
779
+ "isMut": false,
780
+ "isSigner": false,
781
+ "docs": [
782
+ "Token program for quote mint"
783
+ ]
784
+ }
785
+ ],
786
+ "args": [],
787
+ "discriminant": {
788
+ "type": "u8",
789
+ "value": 10
790
+ }
791
+ },
792
+ {
793
+ "name": "LiquidatePosition",
794
+ "accounts": [
795
+ {
796
+ "name": "liquidator",
797
+ "isMut": true,
798
+ "isSigner": true,
799
+ "docs": [
800
+ "Liquidator paying settlement and receiving collateral"
801
+ ]
802
+ },
803
+ {
804
+ "name": "positionPda",
805
+ "isMut": true,
806
+ "isSigner": false,
807
+ "docs": [
808
+ "Position PDA to liquidate"
809
+ ]
810
+ },
811
+ {
812
+ "name": "marketPda",
813
+ "isMut": true,
814
+ "isSigner": false,
815
+ "docs": [
816
+ "Market PDA providing settlement data"
817
+ ]
818
+ },
819
+ {
820
+ "name": "posCollateralAta",
821
+ "isMut": true,
822
+ "isSigner": false,
823
+ "docs": [
824
+ "Position collateral ATA (source)"
825
+ ]
826
+ },
827
+ {
828
+ "name": "liquidatorFundingAta",
829
+ "isMut": true,
830
+ "isSigner": false,
831
+ "docs": [
832
+ "Liquidator settlement funding ATA (source)"
833
+ ]
834
+ },
835
+ {
836
+ "name": "userDestAta",
837
+ "isMut": true,
838
+ "isSigner": false,
839
+ "docs": [
840
+ "User settlement destination ATA"
841
+ ]
842
+ },
843
+ {
844
+ "name": "liquidatorDestAta",
845
+ "isMut": true,
846
+ "isSigner": false,
847
+ "docs": [
848
+ "Liquidator collateral destination ATA"
849
+ ]
850
+ },
851
+ {
852
+ "name": "underlyingTokenProgram",
853
+ "isMut": false,
854
+ "isSigner": false,
855
+ "docs": [
856
+ "Token program for underlying mint"
857
+ ]
858
+ },
859
+ {
860
+ "name": "quoteTokenProgram",
861
+ "isMut": false,
862
+ "isSigner": false,
863
+ "docs": [
864
+ "Token program for quote mint"
865
+ ]
866
+ }
867
+ ],
868
+ "args": [],
869
+ "discriminant": {
870
+ "type": "u8",
871
+ "value": 11
872
+ }
873
+ },
874
+ {
875
+ "name": "WithdrawFromFeeFund",
876
+ "accounts": [
877
+ {
878
+ "name": "admin",
879
+ "isMut": false,
880
+ "isSigner": true,
881
+ "docs": [
882
+ "Protocol admin authority"
883
+ ]
884
+ },
885
+ {
886
+ "name": "configPda",
887
+ "isMut": false,
888
+ "isSigner": false,
889
+ "docs": [
890
+ "Config PDA for admin verification"
891
+ ]
892
+ },
893
+ {
894
+ "name": "protocolFeeAta",
895
+ "isMut": true,
896
+ "isSigner": false,
897
+ "docs": [
898
+ "Protocol fee custody ATA (source)"
899
+ ]
900
+ },
901
+ {
902
+ "name": "recipientAta",
903
+ "isMut": true,
904
+ "isSigner": false,
905
+ "docs": [
906
+ "Recipient ATA (destination)"
907
+ ]
908
+ },
909
+ {
910
+ "name": "tokenProgram",
911
+ "isMut": false,
912
+ "isSigner": false,
913
+ "docs": [
914
+ "SPL token program"
915
+ ]
916
+ }
917
+ ],
918
+ "args": [
919
+ {
920
+ "name": "amount",
921
+ "type": "u64"
922
+ }
923
+ ],
924
+ "discriminant": {
925
+ "type": "u8",
926
+ "value": 12
927
+ }
928
+ },
929
+ {
930
+ "name": "TopupFeeFund",
931
+ "accounts": [
932
+ {
933
+ "name": "admin",
934
+ "isMut": false,
935
+ "isSigner": true,
936
+ "docs": [
937
+ "Protocol admin authority"
938
+ ]
939
+ },
940
+ {
941
+ "name": "configPda",
942
+ "isMut": false,
943
+ "isSigner": false,
944
+ "docs": [
945
+ "Config PDA for admin verification"
946
+ ]
947
+ },
948
+ {
949
+ "name": "sourceAta",
950
+ "isMut": true,
951
+ "isSigner": false,
952
+ "docs": [
953
+ "Source ATA supplying fees"
954
+ ]
955
+ },
956
+ {
957
+ "name": "mint",
958
+ "isMut": false,
959
+ "isSigner": false,
960
+ "docs": [
961
+ "Mint for source ATA"
962
+ ]
963
+ },
964
+ {
965
+ "name": "protocolFeeAta",
966
+ "isMut": true,
967
+ "isSigner": false,
968
+ "docs": [
969
+ "Protocol fee custody ATA"
970
+ ]
971
+ },
972
+ {
973
+ "name": "tokenProgram",
974
+ "isMut": false,
975
+ "isSigner": false,
976
+ "docs": [
977
+ "SPL token program"
978
+ ]
979
+ }
980
+ ],
981
+ "args": [
982
+ {
983
+ "name": "amount",
984
+ "type": "u64"
985
+ }
986
+ ],
987
+ "discriminant": {
988
+ "type": "u8",
989
+ "value": 13
990
+ }
991
+ },
992
+ {
993
+ "name": "CloseMarket",
994
+ "accounts": [
995
+ {
996
+ "name": "admin",
997
+ "isMut": false,
998
+ "isSigner": true,
999
+ "docs": [
1000
+ "Protocol admin authority"
1001
+ ]
1002
+ },
1003
+ {
1004
+ "name": "configPda",
1005
+ "isMut": false,
1006
+ "isSigner": false,
1007
+ "docs": [
1008
+ "Config PDA for admin verification"
1009
+ ]
1010
+ },
1011
+ {
1012
+ "name": "marketPda",
1013
+ "isMut": true,
1014
+ "isSigner": false,
1015
+ "docs": [
1016
+ "Market PDA to close"
1017
+ ]
1018
+ },
1019
+ {
1020
+ "name": "oracleUnderlying",
1021
+ "isMut": true,
1022
+ "isSigner": false,
1023
+ "docs": [
1024
+ "Underlying oracle PDA"
1025
+ ]
1026
+ },
1027
+ {
1028
+ "name": "oracleQuote",
1029
+ "isMut": true,
1030
+ "isSigner": false,
1031
+ "docs": [
1032
+ "Quote oracle PDA"
1033
+ ]
1034
+ }
1035
+ ],
1036
+ "args": [],
1037
+ "discriminant": {
1038
+ "type": "u8",
1039
+ "value": 14
1040
+ }
1041
+ },
1042
+ {
1043
+ "name": "CreateOracle",
1044
+ "accounts": [
1045
+ {
1046
+ "name": "admin",
1047
+ "isMut": true,
1048
+ "isSigner": true,
1049
+ "docs": [
1050
+ "Protocol admin authority that pays rent"
1051
+ ]
1052
+ },
1053
+ {
1054
+ "name": "oraclePda",
1055
+ "isMut": true,
1056
+ "isSigner": false,
1057
+ "docs": [
1058
+ "Oracle PDA to create"
1059
+ ]
1060
+ },
1061
+ {
1062
+ "name": "mint",
1063
+ "isMut": false,
1064
+ "isSigner": false,
1065
+ "docs": [
1066
+ "SPL mint this oracle prices"
1067
+ ]
1068
+ },
1069
+ {
1070
+ "name": "mintAcc",
1071
+ "isMut": false,
1072
+ "isSigner": false,
1073
+ "docs": [
1074
+ "Mint account (for decimals + token program owner)"
1075
+ ]
1076
+ },
1077
+ {
1078
+ "name": "systemProgram",
1079
+ "isMut": false,
1080
+ "isSigner": false,
1081
+ "docs": [
1082
+ "System program"
1083
+ ]
1084
+ }
1085
+ ],
1086
+ "args": [
1087
+ {
1088
+ "name": "oracleType",
1089
+ "type": "u8"
1090
+ },
1091
+ {
1092
+ "name": "expiryTs",
1093
+ "type": "u64"
1094
+ },
1095
+ {
1096
+ "name": "authority",
1097
+ "type": "publicKey"
1098
+ },
1099
+ {
1100
+ "name": "feedId",
1101
+ "type": {
1102
+ "array": [
1103
+ "u8",
1104
+ 32
1105
+ ]
1106
+ }
1107
+ }
1108
+ ],
1109
+ "discriminant": {
1110
+ "type": "u8",
1111
+ "value": 15
1112
+ }
1113
+ },
1114
+ {
1115
+ "name": "UpdateOraclePrice",
1116
+ "accounts": [
1117
+ {
1118
+ "name": "authority",
1119
+ "isMut": false,
1120
+ "isSigner": true,
1121
+ "docs": [
1122
+ "Oracle authority signer (or protocol admin)"
1123
+ ]
1124
+ },
1125
+ {
1126
+ "name": "oraclePda",
1127
+ "isMut": true,
1128
+ "isSigner": false,
1129
+ "docs": [
1130
+ "Oracle PDA to update"
1131
+ ]
1132
+ },
1133
+ {
1134
+ "name": "clockSysvar",
1135
+ "isMut": false,
1136
+ "isSigner": false,
1137
+ "docs": [
1138
+ "Clock sysvar account"
1139
+ ]
1140
+ }
1141
+ ],
1142
+ "args": [
1143
+ {
1144
+ "name": "price",
1145
+ "type": "u64"
1146
+ },
1147
+ {
1148
+ "name": "settledExpiryTs",
1149
+ "type": "u64"
1150
+ }
1151
+ ],
1152
+ "discriminant": {
1153
+ "type": "u8",
1154
+ "value": 16
1155
+ }
1156
+ },
1157
+ {
1158
+ "name": "SetOracleConfig",
1159
+ "accounts": [
1160
+ {
1161
+ "name": "admin",
1162
+ "isMut": false,
1163
+ "isSigner": true,
1164
+ "docs": [
1165
+ "Protocol admin authority"
1166
+ ]
1167
+ },
1168
+ {
1169
+ "name": "oraclePda",
1170
+ "isMut": true,
1171
+ "isSigner": false,
1172
+ "docs": [
1173
+ "Oracle PDA to update"
1174
+ ]
1175
+ }
1176
+ ],
1177
+ "args": [
1178
+ {
1179
+ "name": "mask",
1180
+ "type": "u8"
1181
+ },
1182
+ {
1183
+ "name": "isActive",
1184
+ "type": "bool"
1185
+ },
1186
+ {
1187
+ "name": "authority",
1188
+ "type": "publicKey"
1189
+ }
1190
+ ],
1191
+ "discriminant": {
1192
+ "type": "u8",
1193
+ "value": 17
1194
+ }
1195
+ },
1196
+ {
1197
+ "name": "ChangeOracleSource",
1198
+ "accounts": [
1199
+ {
1200
+ "name": "admin",
1201
+ "isMut": false,
1202
+ "isSigner": true,
1203
+ "docs": [
1204
+ "Protocol admin authority"
1205
+ ]
1206
+ },
1207
+ {
1208
+ "name": "oraclePda",
1209
+ "isMut": true,
1210
+ "isSigner": false,
1211
+ "docs": [
1212
+ "Oracle PDA source to change"
1213
+ ]
1214
+ }
1215
+ ],
1216
+ "args": [
1217
+ {
1218
+ "name": "oracleType",
1219
+ "type": "u8"
1220
+ },
1221
+ {
1222
+ "name": "feedId",
1223
+ "type": {
1224
+ "array": [
1225
+ "u8",
1226
+ 32
1227
+ ]
1228
+ }
1229
+ }
1230
+ ],
1231
+ "discriminant": {
1232
+ "type": "u8",
1233
+ "value": 18
1234
+ }
1235
+ },
1236
+ {
1237
+ "name": "CloseOracle",
1238
+ "accounts": [
1239
+ {
1240
+ "name": "signer",
1241
+ "isMut": true,
1242
+ "isSigner": true,
1243
+ "docs": [
1244
+ "Protocol admin authority"
1245
+ ]
1246
+ },
1247
+ {
1248
+ "name": "oraclePda",
1249
+ "isMut": true,
1250
+ "isSigner": false,
1251
+ "docs": [
1252
+ "Oracle PDA to close"
1253
+ ]
1254
+ },
1255
+ {
1256
+ "name": "clockSysvar",
1257
+ "isMut": false,
1258
+ "isSigner": false,
1259
+ "docs": [
1260
+ "Clock sysvar account"
1261
+ ]
1262
+ }
1263
+ ],
1264
+ "args": [],
1265
+ "discriminant": {
1266
+ "type": "u8",
1267
+ "value": 19
1268
+ }
1269
+ }
1270
+ ],
1271
+ "accounts": [
1272
+ {
1273
+ "name": "Config",
1274
+ "type": {
1275
+ "kind": "struct",
1276
+ "fields": [
1277
+ {
1278
+ "name": "discriminator",
1279
+ "type": "u8"
1280
+ },
1281
+ {
1282
+ "name": "version",
1283
+ "type": "u8"
1284
+ },
1285
+ {
1286
+ "name": "bump",
1287
+ "type": "u8"
1288
+ },
1289
+ {
1290
+ "name": "flags",
1291
+ "type": "u8"
1292
+ },
1293
+ {
1294
+ "name": "protocolFeeBpsPremium",
1295
+ "type": "u16"
1296
+ },
1297
+ {
1298
+ "name": "protocolFeeBpsVolume",
1299
+ "type": "u16"
1300
+ },
1301
+ {
1302
+ "name": "admin",
1303
+ "type": "publicKey"
1304
+ },
1305
+ {
1306
+ "name": "premiumMint",
1307
+ "type": "publicKey"
1308
+ },
1309
+ {
1310
+ "name": "premiumTokenProgramId",
1311
+ "type": "publicKey"
1312
+ },
1313
+ {
1314
+ "name": "protocolFeeAta",
1315
+ "type": "publicKey"
1316
+ },
1317
+ {
1318
+ "name": "reserved",
1319
+ "type": {
1320
+ "array": [
1321
+ "u64",
1322
+ 32
1323
+ ]
1324
+ }
1325
+ }
1326
+ ]
1327
+ }
1328
+ },
1329
+ {
1330
+ "name": "Maker",
1331
+ "type": {
1332
+ "kind": "struct",
1333
+ "fields": [
1334
+ {
1335
+ "name": "discriminator",
1336
+ "type": "u8"
1337
+ },
1338
+ {
1339
+ "name": "version",
1340
+ "type": "u8"
1341
+ },
1342
+ {
1343
+ "name": "bump",
1344
+ "type": "u8"
1345
+ },
1346
+ {
1347
+ "name": "flags",
1348
+ "type": "u8"
1349
+ },
1350
+ {
1351
+ "name": "makerOwner",
1352
+ "type": "publicKey"
1353
+ },
1354
+ {
1355
+ "name": "quoteSigning",
1356
+ "type": "publicKey"
1357
+ },
1358
+ {
1359
+ "name": "reserved",
1360
+ "type": {
1361
+ "array": [
1362
+ "u64",
1363
+ 32
1364
+ ]
1365
+ }
1366
+ }
1367
+ ]
1368
+ }
1369
+ },
1370
+ {
1371
+ "name": "Market",
1372
+ "type": {
1373
+ "kind": "struct",
1374
+ "fields": [
1375
+ {
1376
+ "name": "discriminator",
1377
+ "type": "u8"
1378
+ },
1379
+ {
1380
+ "name": "version",
1381
+ "type": "u8"
1382
+ },
1383
+ {
1384
+ "name": "bump",
1385
+ "type": "u8"
1386
+ },
1387
+ {
1388
+ "name": "underlyingDecimals",
1389
+ "type": "u8"
1390
+ },
1391
+ {
1392
+ "name": "quoteDecimals",
1393
+ "type": "u8"
1394
+ },
1395
+ {
1396
+ "name": "flags",
1397
+ "type": "u8"
1398
+ },
1399
+ {
1400
+ "name": "reservedByte1",
1401
+ "type": "u8"
1402
+ },
1403
+ {
1404
+ "name": "reservedByte2",
1405
+ "type": "u8"
1406
+ },
1407
+ {
1408
+ "name": "expiryTs",
1409
+ "type": "u64"
1410
+ },
1411
+ {
1412
+ "name": "settlementPrice",
1413
+ "type": "u64"
1414
+ },
1415
+ {
1416
+ "name": "openPositionsCount",
1417
+ "type": "u64"
1418
+ },
1419
+ {
1420
+ "name": "underlyingMint",
1421
+ "type": "publicKey"
1422
+ },
1423
+ {
1424
+ "name": "quoteMint",
1425
+ "type": "publicKey"
1426
+ },
1427
+ {
1428
+ "name": "underlyingTokenProgramId",
1429
+ "type": "publicKey"
1430
+ },
1431
+ {
1432
+ "name": "quoteTokenProgramId",
1433
+ "type": "publicKey"
1434
+ },
1435
+ {
1436
+ "name": "underlyingOracleAddress",
1437
+ "type": "publicKey"
1438
+ },
1439
+ {
1440
+ "name": "quoteOracleAddress",
1441
+ "type": "publicKey"
1442
+ },
1443
+ {
1444
+ "name": "reserved",
1445
+ "type": {
1446
+ "array": [
1447
+ "u64",
1448
+ 24
1449
+ ]
1450
+ }
1451
+ }
1452
+ ]
1453
+ }
1454
+ },
1455
+ {
1456
+ "name": "Oracle",
1457
+ "type": {
1458
+ "kind": "struct",
1459
+ "fields": [
1460
+ {
1461
+ "name": "discriminator",
1462
+ "type": "u8"
1463
+ },
1464
+ {
1465
+ "name": "version",
1466
+ "type": "u8"
1467
+ },
1468
+ {
1469
+ "name": "bump",
1470
+ "type": "u8"
1471
+ },
1472
+ {
1473
+ "name": "oracleType",
1474
+ "type": "u8"
1475
+ },
1476
+ {
1477
+ "name": "flags",
1478
+ "type": "u8"
1479
+ },
1480
+ {
1481
+ "name": "decimals",
1482
+ "type": "u8"
1483
+ },
1484
+ {
1485
+ "name": "activeMarketsCount",
1486
+ "type": "u16"
1487
+ },
1488
+ {
1489
+ "name": "price",
1490
+ "type": "u64"
1491
+ },
1492
+ {
1493
+ "name": "updatedAt",
1494
+ "type": "u64"
1495
+ },
1496
+ {
1497
+ "name": "expiryTs",
1498
+ "type": "u64"
1499
+ },
1500
+ {
1501
+ "name": "mint",
1502
+ "type": "publicKey"
1503
+ },
1504
+ {
1505
+ "name": "authority",
1506
+ "type": "publicKey"
1507
+ },
1508
+ {
1509
+ "name": "feedId",
1510
+ "type": {
1511
+ "array": [
1512
+ "u8",
1513
+ 32
1514
+ ]
1515
+ }
1516
+ },
1517
+ {
1518
+ "name": "reserved",
1519
+ "type": {
1520
+ "array": [
1521
+ "u64",
1522
+ 32
1523
+ ]
1524
+ }
1525
+ }
1526
+ ]
1527
+ }
1528
+ },
1529
+ {
1530
+ "name": "Position",
1531
+ "type": {
1532
+ "kind": "struct",
1533
+ "fields": [
1534
+ {
1535
+ "name": "discriminator",
1536
+ "type": "u8"
1537
+ },
1538
+ {
1539
+ "name": "version",
1540
+ "type": "u8"
1541
+ },
1542
+ {
1543
+ "name": "bump",
1544
+ "type": "u8"
1545
+ },
1546
+ {
1547
+ "name": "positionType",
1548
+ "type": "u8"
1549
+ },
1550
+ {
1551
+ "name": "status",
1552
+ "type": "u8"
1553
+ },
1554
+ {
1555
+ "name": "flags",
1556
+ "type": "u8"
1557
+ },
1558
+ {
1559
+ "name": "flags2",
1560
+ "type": "u8"
1561
+ },
1562
+ {
1563
+ "name": "flags3",
1564
+ "type": "u8"
1565
+ },
1566
+ {
1567
+ "name": "takerOwner",
1568
+ "type": "publicKey"
1569
+ },
1570
+ {
1571
+ "name": "makerOwner",
1572
+ "type": "publicKey"
1573
+ },
1574
+ {
1575
+ "name": "market",
1576
+ "type": "publicKey"
1577
+ },
1578
+ {
1579
+ "name": "strike",
1580
+ "type": "u64"
1581
+ },
1582
+ {
1583
+ "name": "quantity",
1584
+ "type": "u64"
1585
+ },
1586
+ {
1587
+ "name": "totalPremium",
1588
+ "type": "u64"
1589
+ },
1590
+ {
1591
+ "name": "orderId",
1592
+ "type": {
1593
+ "array": [
1594
+ "u8",
1595
+ 32
1596
+ ]
1597
+ }
1598
+ },
1599
+ {
1600
+ "name": "reserved",
1601
+ "type": {
1602
+ "array": [
1603
+ "u64",
1604
+ 32
1605
+ ]
1606
+ }
1607
+ }
1608
+ ]
1609
+ }
1610
+ }
1611
+ ],
1612
+ "types": [
1613
+ {
1614
+ "name": "PositionType",
1615
+ "type": {
1616
+ "kind": "enum",
1617
+ "variants": [
1618
+ {
1619
+ "name": "CoveredCall"
1620
+ },
1621
+ {
1622
+ "name": "CashSecuredPut"
1623
+ }
1624
+ ]
1625
+ }
1626
+ },
1627
+ {
1628
+ "name": "PositionStatus",
1629
+ "type": {
1630
+ "kind": "enum",
1631
+ "variants": [
1632
+ {
1633
+ "name": "None"
1634
+ },
1635
+ {
1636
+ "name": "Open"
1637
+ },
1638
+ {
1639
+ "name": "Funded"
1640
+ },
1641
+ {
1642
+ "name": "Liquidated"
1643
+ },
1644
+ {
1645
+ "name": "Settled"
1646
+ }
1647
+ ]
1648
+ }
1649
+ },
1650
+ {
1651
+ "name": "EventKind",
1652
+ "type": {
1653
+ "kind": "enum",
1654
+ "variants": [
1655
+ {
1656
+ "name": "InitializeConfig"
1657
+ },
1658
+ {
1659
+ "name": "UpdateConfig"
1660
+ },
1661
+ {
1662
+ "name": "RegisterMaker"
1663
+ },
1664
+ {
1665
+ "name": "UpdateMakerQuoteSigning"
1666
+ },
1667
+ {
1668
+ "name": "DepositPremium"
1669
+ },
1670
+ {
1671
+ "name": "WithdrawPremium"
1672
+ },
1673
+ {
1674
+ "name": "WithdrawFromFeeFund"
1675
+ },
1676
+ {
1677
+ "name": "TopupFeeFund"
1678
+ },
1679
+ {
1680
+ "name": "CreateMarket"
1681
+ },
1682
+ {
1683
+ "name": "FinalizeMarket"
1684
+ },
1685
+ {
1686
+ "name": "CloseMarket"
1687
+ },
1688
+ {
1689
+ "name": "OpenPosition"
1690
+ },
1691
+ {
1692
+ "name": "DepositFundsToPosition"
1693
+ },
1694
+ {
1695
+ "name": "SettlePosition"
1696
+ },
1697
+ {
1698
+ "name": "CreateOracle"
1699
+ },
1700
+ {
1701
+ "name": "UpdateOraclePrice"
1702
+ },
1703
+ {
1704
+ "name": "SetOracleConfig"
1705
+ },
1706
+ {
1707
+ "name": "ChangeOracleSource"
1708
+ },
1709
+ {
1710
+ "name": "CloseOracle"
1711
+ }
1712
+ ]
1713
+ }
1714
+ },
1715
+ {
1716
+ "name": "ActaEvent",
1717
+ "type": {
1718
+ "kind": "enum",
1719
+ "variants": [
1720
+ {
1721
+ "name": "InitializeConfig",
1722
+ "fields": [
1723
+ {
1724
+ "name": "config_pda",
1725
+ "type": "publicKey"
1726
+ },
1727
+ {
1728
+ "name": "premium_mint",
1729
+ "type": "publicKey"
1730
+ },
1731
+ {
1732
+ "name": "protocol_fee_bps_premium",
1733
+ "type": "u16"
1734
+ },
1735
+ {
1736
+ "name": "protocol_fee_bps_volume",
1737
+ "type": "u16"
1738
+ }
1739
+ ]
1740
+ },
1741
+ {
1742
+ "name": "UpdateConfig",
1743
+ "fields": [
1744
+ {
1745
+ "name": "config_pda",
1746
+ "type": "publicKey"
1747
+ },
1748
+ {
1749
+ "name": "mask",
1750
+ "type": "u8"
1751
+ },
1752
+ {
1753
+ "name": "protocol_fee_bps_premium",
1754
+ "type": "u16"
1755
+ },
1756
+ {
1757
+ "name": "protocol_fee_bps_volume",
1758
+ "type": "u16"
1759
+ }
1760
+ ]
1761
+ },
1762
+ {
1763
+ "name": "RegisterMaker",
1764
+ "fields": [
1765
+ {
1766
+ "name": "maker_owner",
1767
+ "type": "publicKey"
1768
+ },
1769
+ {
1770
+ "name": "quote_signing",
1771
+ "type": "publicKey"
1772
+ }
1773
+ ]
1774
+ },
1775
+ {
1776
+ "name": "UpdateMakerQuoteSigning",
1777
+ "fields": [
1778
+ {
1779
+ "name": "maker_owner",
1780
+ "type": "publicKey"
1781
+ },
1782
+ {
1783
+ "name": "new_quote_signing",
1784
+ "type": "publicKey"
1785
+ }
1786
+ ]
1787
+ },
1788
+ {
1789
+ "name": "DepositPremium",
1790
+ "fields": [
1791
+ {
1792
+ "name": "maker_owner",
1793
+ "type": "publicKey"
1794
+ },
1795
+ {
1796
+ "name": "maker_pda",
1797
+ "type": "publicKey"
1798
+ },
1799
+ {
1800
+ "name": "mint",
1801
+ "type": "publicKey"
1802
+ },
1803
+ {
1804
+ "name": "amount",
1805
+ "type": "u64"
1806
+ }
1807
+ ]
1808
+ },
1809
+ {
1810
+ "name": "WithdrawPremium",
1811
+ "fields": [
1812
+ {
1813
+ "name": "maker_owner",
1814
+ "type": "publicKey"
1815
+ },
1816
+ {
1817
+ "name": "maker_pda",
1818
+ "type": "publicKey"
1819
+ },
1820
+ {
1821
+ "name": "mint",
1822
+ "type": "publicKey"
1823
+ },
1824
+ {
1825
+ "name": "amount",
1826
+ "type": "u64"
1827
+ }
1828
+ ]
1829
+ },
1830
+ {
1831
+ "name": "WithdrawFromFeeFund",
1832
+ "fields": [
1833
+ {
1834
+ "name": "config_pda",
1835
+ "type": "publicKey"
1836
+ },
1837
+ {
1838
+ "name": "mint",
1839
+ "type": "publicKey"
1840
+ },
1841
+ {
1842
+ "name": "amount",
1843
+ "type": "u64"
1844
+ }
1845
+ ]
1846
+ },
1847
+ {
1848
+ "name": "TopupFeeFund",
1849
+ "fields": [
1850
+ {
1851
+ "name": "config_pda",
1852
+ "type": "publicKey"
1853
+ },
1854
+ {
1855
+ "name": "mint",
1856
+ "type": "publicKey"
1857
+ },
1858
+ {
1859
+ "name": "amount",
1860
+ "type": "u64"
1861
+ }
1862
+ ]
1863
+ },
1864
+ {
1865
+ "name": "CreateMarket",
1866
+ "fields": [
1867
+ {
1868
+ "name": "market_pda",
1869
+ "type": "publicKey"
1870
+ },
1871
+ {
1872
+ "name": "underlying_mint",
1873
+ "type": "publicKey"
1874
+ },
1875
+ {
1876
+ "name": "quote_mint",
1877
+ "type": "publicKey"
1878
+ },
1879
+ {
1880
+ "name": "expiry_ts",
1881
+ "type": "u64"
1882
+ },
1883
+ {
1884
+ "name": "is_put",
1885
+ "type": "u8"
1886
+ }
1887
+ ]
1888
+ },
1889
+ {
1890
+ "name": "FinalizeMarket",
1891
+ "fields": [
1892
+ {
1893
+ "name": "market_pda",
1894
+ "type": "publicKey"
1895
+ },
1896
+ {
1897
+ "name": "settlement_price",
1898
+ "type": "u64"
1899
+ }
1900
+ ]
1901
+ },
1902
+ {
1903
+ "name": "CloseMarket",
1904
+ "fields": [
1905
+ {
1906
+ "name": "market_pda",
1907
+ "type": "publicKey"
1908
+ }
1909
+ ]
1910
+ },
1911
+ {
1912
+ "name": "OpenPosition",
1913
+ "fields": [
1914
+ {
1915
+ "name": "user",
1916
+ "type": "publicKey"
1917
+ },
1918
+ {
1919
+ "name": "maker_pda",
1920
+ "type": "publicKey"
1921
+ },
1922
+ {
1923
+ "name": "market_pda",
1924
+ "type": "publicKey"
1925
+ },
1926
+ {
1927
+ "name": "position_pda",
1928
+ "type": "publicKey"
1929
+ },
1930
+ {
1931
+ "name": "position_type",
1932
+ "type": "u8"
1933
+ },
1934
+ {
1935
+ "name": "strike",
1936
+ "type": "u64"
1937
+ },
1938
+ {
1939
+ "name": "quantity",
1940
+ "type": "u64"
1941
+ },
1942
+ {
1943
+ "name": "price",
1944
+ "type": "u64"
1945
+ },
1946
+ {
1947
+ "name": "valid_until",
1948
+ "type": "u64"
1949
+ },
1950
+ {
1951
+ "name": "order_id",
1952
+ "type": {
1953
+ "array": [
1954
+ "u8",
1955
+ 32
1956
+ ]
1957
+ }
1958
+ },
1959
+ {
1960
+ "name": "total_premium",
1961
+ "type": "u64"
1962
+ }
1963
+ ]
1964
+ },
1965
+ {
1966
+ "name": "DepositFundsToPosition",
1967
+ "fields": [
1968
+ {
1969
+ "name": "maker_pda",
1970
+ "type": "publicKey"
1971
+ },
1972
+ {
1973
+ "name": "market_pda",
1974
+ "type": "publicKey"
1975
+ },
1976
+ {
1977
+ "name": "position_pda",
1978
+ "type": "publicKey"
1979
+ },
1980
+ {
1981
+ "name": "amount",
1982
+ "type": "u64"
1983
+ }
1984
+ ]
1985
+ },
1986
+ {
1987
+ "name": "SettlePosition",
1988
+ "fields": [
1989
+ {
1990
+ "name": "settler",
1991
+ "type": "publicKey"
1992
+ },
1993
+ {
1994
+ "name": "maker_owner",
1995
+ "type": "publicKey"
1996
+ },
1997
+ {
1998
+ "name": "position_pda",
1999
+ "type": "publicKey"
2000
+ },
2001
+ {
2002
+ "name": "market_pda",
2003
+ "type": "publicKey"
2004
+ },
2005
+ {
2006
+ "name": "final_status",
2007
+ "type": "u8"
2008
+ }
2009
+ ]
2010
+ },
2011
+ {
2012
+ "name": "CreateOracle",
2013
+ "fields": [
2014
+ {
2015
+ "name": "oracle_pda",
2016
+ "type": "publicKey"
2017
+ },
2018
+ {
2019
+ "name": "mint",
2020
+ "type": "publicKey"
2021
+ },
2022
+ {
2023
+ "name": "expiry_ts",
2024
+ "type": "u64"
2025
+ },
2026
+ {
2027
+ "name": "oracle_type",
2028
+ "type": "u8"
2029
+ },
2030
+ {
2031
+ "name": "authority",
2032
+ "type": "publicKey"
2033
+ }
2034
+ ]
2035
+ },
2036
+ {
2037
+ "name": "UpdateOraclePrice",
2038
+ "fields": [
2039
+ {
2040
+ "name": "oracle_pda",
2041
+ "type": "publicKey"
2042
+ },
2043
+ {
2044
+ "name": "price",
2045
+ "type": "u64"
2046
+ },
2047
+ {
2048
+ "name": "settled_expiry_ts",
2049
+ "type": "u64"
2050
+ }
2051
+ ]
2052
+ },
2053
+ {
2054
+ "name": "SetOracleConfig",
2055
+ "fields": [
2056
+ {
2057
+ "name": "oracle_pda",
2058
+ "type": "publicKey"
2059
+ },
2060
+ {
2061
+ "name": "is_active",
2062
+ "type": "u8"
2063
+ },
2064
+ {
2065
+ "name": "authority",
2066
+ "type": "publicKey"
2067
+ }
2068
+ ]
2069
+ },
2070
+ {
2071
+ "name": "ChangeOracleSource",
2072
+ "fields": [
2073
+ {
2074
+ "name": "oracle_pda",
2075
+ "type": "publicKey"
2076
+ },
2077
+ {
2078
+ "name": "oracle_type",
2079
+ "type": "u8"
2080
+ },
2081
+ {
2082
+ "name": "feed_id",
2083
+ "type": {
2084
+ "array": [
2085
+ "u8",
2086
+ 32
2087
+ ]
2088
+ }
2089
+ }
2090
+ ]
2091
+ },
2092
+ {
2093
+ "name": "CloseOracle",
2094
+ "fields": [
2095
+ {
2096
+ "name": "oracle_pda",
2097
+ "type": "publicKey"
2098
+ }
2099
+ ]
2100
+ }
2101
+ ]
2102
+ }
2103
+ }
2104
+ ],
2105
+ "metadata": {
2106
+ "origin": "shank",
2107
+ "address": "33Ezs5eoa16QyPW8wifnyz2nCyMEcq2crqkVBNjnTE8U",
2108
+ "acta": {
2109
+ "events": {
2110
+ "version": 1,
2111
+ "format": "ACTA_EVENT v=1 type=<type> k=v ...",
2112
+ "types": [],
2113
+ "fields": {}
2114
+ }
2115
+ }
2116
+ },
2117
+ "errors": [
2118
+ {
2119
+ "code": 1000,
2120
+ "name": "NotSigned",
2121
+ "msg": "Account must sign the transaction"
2122
+ },
2123
+ {
2124
+ "code": 1001,
2125
+ "name": "InvalidOwner",
2126
+ "msg": "Account owner mismatch"
2127
+ },
2128
+ {
2129
+ "code": 1002,
2130
+ "name": "InvalidPda",
2131
+ "msg": "PDA derivation failed (wrong seeds or bump)"
2132
+ },
2133
+ {
2134
+ "code": 1003,
2135
+ "name": "AccountNotInitialized",
2136
+ "msg": "Account not initialized"
2137
+ },
2138
+ {
2139
+ "code": 1004,
2140
+ "name": "InvalidAccountCount",
2141
+ "msg": "Wrong number of accounts"
2142
+ },
2143
+ {
2144
+ "code": 1005,
2145
+ "name": "InvalidAccountData",
2146
+ "msg": "Account data corrupted or wrong format"
2147
+ },
2148
+ {
2149
+ "code": 1006,
2150
+ "name": "AccountAlreadyInitialized",
2151
+ "msg": "Account already initialized"
2152
+ },
2153
+ {
2154
+ "code": 1010,
2155
+ "name": "MakerAlreadyRegistered",
2156
+ "msg": "Maker PDA already exists"
2157
+ },
2158
+ {
2159
+ "code": 1011,
2160
+ "name": "MakerNotRegistered",
2161
+ "msg": "Maker PDA not found"
2162
+ },
2163
+ {
2164
+ "code": 1012,
2165
+ "name": "MakerNotOwner",
2166
+ "msg": "Caller is not the maker owner"
2167
+ },
2168
+ {
2169
+ "code": 1020,
2170
+ "name": "MarketFinalized",
2171
+ "msg": "Market already finalized"
2172
+ },
2173
+ {
2174
+ "code": 1021,
2175
+ "name": "MarketNotFinalized",
2176
+ "msg": "Market not yet finalized"
2177
+ },
2178
+ {
2179
+ "code": 1022,
2180
+ "name": "MarketExpired",
2181
+ "msg": "Market expired"
2182
+ },
2183
+ {
2184
+ "code": 1023,
2185
+ "name": "MarketNotEmpty",
2186
+ "msg": "Market has open positions (cannot close)"
2187
+ },
2188
+ {
2189
+ "code": 1024,
2190
+ "name": "InvalidOracleType",
2191
+ "msg": "Oracle type invalid or unsupported"
2192
+ },
2193
+ {
2194
+ "code": 1025,
2195
+ "name": "InvalidOracleAccount",
2196
+ "msg": "Oracle account invalid (owner/layout/mint mismatch)"
2197
+ },
2198
+ {
2199
+ "code": 1026,
2200
+ "name": "OracleExpiryMismatch",
2201
+ "msg": "Oracle expiry mismatch (wrong expiry)"
2202
+ },
2203
+ {
2204
+ "code": 1027,
2205
+ "name": "OracleStale",
2206
+ "msg": "Oracle price is stale (updated_at before expiry)"
2207
+ },
2208
+ {
2209
+ "code": 1028,
2210
+ "name": "OracleInactive",
2211
+ "msg": "Oracle inactive"
2212
+ },
2213
+ {
2214
+ "code": 1029,
2215
+ "name": "OracleInvalidPrice",
2216
+ "msg": "Oracle price invalid (zero or negative)"
2217
+ },
2218
+ {
2219
+ "code": 1030,
2220
+ "name": "PositionAlreadyOpen",
2221
+ "msg": "Position already exists"
2222
+ },
2223
+ {
2224
+ "code": 1031,
2225
+ "name": "PositionNotOpen",
2226
+ "msg": "Position not found"
2227
+ },
2228
+ {
2229
+ "code": 1032,
2230
+ "name": "PositionAlreadyFunded",
2231
+ "msg": "Position already funded by maker"
2232
+ },
2233
+ {
2234
+ "code": 1033,
2235
+ "name": "PositionNotFunded",
2236
+ "msg": "Position not funded (required for ITM settlement)"
2237
+ },
2238
+ {
2239
+ "code": 1034,
2240
+ "name": "PositionAlreadySettled",
2241
+ "msg": "Position already settled or liquidated"
2242
+ },
2243
+ {
2244
+ "code": 1035,
2245
+ "name": "PositionNotItm",
2246
+ "msg": "Position not ITM (cannot liquidate OTM)"
2247
+ },
2248
+ {
2249
+ "code": 1036,
2250
+ "name": "PositionTypeMismatch",
2251
+ "msg": "Position type doesn't match market (call vs put)"
2252
+ },
2253
+ {
2254
+ "code": 1040,
2255
+ "name": "InvalidOrderId",
2256
+ "msg": "order_id != sha256(preimage)"
2257
+ },
2258
+ {
2259
+ "code": 1041,
2260
+ "name": "InvalidSignatureCount",
2261
+ "msg": "Ed25519 instruction has wrong signature count"
2262
+ },
2263
+ {
2264
+ "code": 1042,
2265
+ "name": "SignerMismatch",
2266
+ "msg": "Maker signing key mismatch"
2267
+ },
2268
+ {
2269
+ "code": 1043,
2270
+ "name": "SignedMessageMismatch",
2271
+ "msg": "Signed message != order_id"
2272
+ },
2273
+ {
2274
+ "code": 1044,
2275
+ "name": "InvalidInstructionData",
2276
+ "msg": "Instruction data malformed"
2277
+ },
2278
+ {
2279
+ "code": 1050,
2280
+ "name": "MathOverflow",
2281
+ "msg": "Arithmetic overflow"
2282
+ },
2283
+ {
2284
+ "code": 1051,
2285
+ "name": "MintMismatch",
2286
+ "msg": "Mint mismatch between token accounts"
2287
+ },
2288
+ {
2289
+ "code": 1052,
2290
+ "name": "InsufficientFunds",
2291
+ "msg": "Balance is below the required amount"
2292
+ },
2293
+ {
2294
+ "code": 1060,
2295
+ "name": "InvalidProgramId",
2296
+ "msg": "Wrong program ID"
2297
+ },
2298
+ {
2299
+ "code": 1061,
2300
+ "name": "InvalidTimestamp",
2301
+ "msg": "Clock timestamp invalid"
2302
+ },
2303
+ {
2304
+ "code": 1070,
2305
+ "name": "Unauthorized",
2306
+ "msg": "Unauthorized (not admin/keeper)"
2307
+ },
2308
+ {
2309
+ "code": 1071,
2310
+ "name": "OracleCloseTooEarly",
2311
+ "msg": "Oracle close delay not elapsed"
2312
+ },
2313
+ {
2314
+ "code": 1072,
2315
+ "name": "OracleAlreadyUpdated",
2316
+ "msg": "Oracle price has already been set for this expiry"
2317
+ },
2318
+ {
2319
+ "code": 1073,
2320
+ "name": "OracleSourceLocked",
2321
+ "msg": "Oracle source fields are locked after first update"
2322
+ },
2323
+ {
2324
+ "code": 1074,
2325
+ "name": "OracleHasActiveMarkets",
2326
+ "msg": "Oracle is still linked to active markets"
2327
+ }
2328
+ ]
2329
+ }