idl.json 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341
  1. {
  2. "version": "0.1.0",
  3. "name": "spl_binary_option",
  4. "instructions": [
  5. {
  6. "name": "initializeBinaryOption",
  7. "accounts": [
  8. {
  9. "name": "poolAccount",
  10. "isMut": true,
  11. "isSigner": true
  12. },
  13. {
  14. "name": "escrowMint",
  15. "isMut": false,
  16. "isSigner": false
  17. },
  18. {
  19. "name": "escrowAccount",
  20. "isMut": true,
  21. "isSigner": true
  22. },
  23. {
  24. "name": "longTokenMint",
  25. "isMut": true,
  26. "isSigner": true
  27. },
  28. {
  29. "name": "shortTokenMint",
  30. "isMut": true,
  31. "isSigner": true
  32. },
  33. {
  34. "name": "mintAuthority",
  35. "isMut": false,
  36. "isSigner": true
  37. },
  38. {
  39. "name": "updateAuthority",
  40. "isMut": false,
  41. "isSigner": true
  42. },
  43. {
  44. "name": "tokenProgram",
  45. "isMut": false,
  46. "isSigner": false
  47. },
  48. {
  49. "name": "systemProgram",
  50. "isMut": false,
  51. "isSigner": false
  52. },
  53. {
  54. "name": "rent",
  55. "isMut": false,
  56. "isSigner": false
  57. }
  58. ],
  59. "args": [
  60. {
  61. "name": "decimals",
  62. "type": "u8"
  63. }
  64. ]
  65. },
  66. {
  67. "name": "trade",
  68. "accounts": [
  69. {
  70. "name": "poolAccount",
  71. "isMut": true,
  72. "isSigner": false
  73. },
  74. {
  75. "name": "escrowAccount",
  76. "isMut": true,
  77. "isSigner": false
  78. },
  79. {
  80. "name": "longTokenMint",
  81. "isMut": true,
  82. "isSigner": false
  83. },
  84. {
  85. "name": "shortTokenMint",
  86. "isMut": true,
  87. "isSigner": false
  88. },
  89. {
  90. "name": "buyer",
  91. "isMut": false,
  92. "isSigner": true
  93. },
  94. {
  95. "name": "seller",
  96. "isMut": false,
  97. "isSigner": true
  98. },
  99. {
  100. "name": "buyerAccount",
  101. "isMut": true,
  102. "isSigner": false
  103. },
  104. {
  105. "name": "sellerAccount",
  106. "isMut": true,
  107. "isSigner": false
  108. },
  109. {
  110. "name": "buyerLongTokenAccount",
  111. "isMut": true,
  112. "isSigner": false
  113. },
  114. {
  115. "name": "buyerShortTokenAccount",
  116. "isMut": true,
  117. "isSigner": false
  118. },
  119. {
  120. "name": "sellerLongTokenAccount",
  121. "isMut": true,
  122. "isSigner": false
  123. },
  124. {
  125. "name": "sellerShortTokenAccount",
  126. "isMut": true,
  127. "isSigner": false
  128. },
  129. {
  130. "name": "escrowAuthority",
  131. "isMut": false,
  132. "isSigner": false
  133. },
  134. {
  135. "name": "tokenProgram",
  136. "isMut": false,
  137. "isSigner": false
  138. }
  139. ],
  140. "args": [
  141. {
  142. "name": "size",
  143. "type": "u64"
  144. },
  145. {
  146. "name": "buyPrice",
  147. "type": "u64"
  148. },
  149. {
  150. "name": "sellPrice",
  151. "type": "u64"
  152. }
  153. ]
  154. },
  155. {
  156. "name": "settle",
  157. "accounts": [
  158. {
  159. "name": "poolAccount",
  160. "isMut": true,
  161. "isSigner": false
  162. },
  163. {
  164. "name": "winningMint",
  165. "isMut": false,
  166. "isSigner": false
  167. },
  168. {
  169. "name": "poolAuthority",
  170. "isMut": false,
  171. "isSigner": true
  172. }
  173. ],
  174. "args": []
  175. },
  176. {
  177. "name": "collect",
  178. "accounts": [
  179. {
  180. "name": "poolAccount",
  181. "isMut": true,
  182. "isSigner": false
  183. },
  184. {
  185. "name": "collectorAccount",
  186. "isMut": false,
  187. "isSigner": false
  188. },
  189. {
  190. "name": "collectorLongTokenAccount",
  191. "isMut": true,
  192. "isSigner": false
  193. },
  194. {
  195. "name": "collectorShortTokenAccount",
  196. "isMut": true,
  197. "isSigner": false
  198. },
  199. {
  200. "name": "collectorCollateralAccount",
  201. "isMut": true,
  202. "isSigner": false
  203. },
  204. {
  205. "name": "longTokenMintAccount",
  206. "isMut": true,
  207. "isSigner": false
  208. },
  209. {
  210. "name": "shortTokenMintAccount",
  211. "isMut": true,
  212. "isSigner": false
  213. },
  214. {
  215. "name": "escrowAccount",
  216. "isMut": true,
  217. "isSigner": false
  218. },
  219. {
  220. "name": "escrowAuthorityAccount",
  221. "isMut": true,
  222. "isSigner": false
  223. },
  224. {
  225. "name": "tokenProgram",
  226. "isMut": false,
  227. "isSigner": false
  228. }
  229. ],
  230. "args": []
  231. }
  232. ],
  233. "accounts": [
  234. {
  235. "name": "BinaryOption",
  236. "type": {
  237. "kind": "struct",
  238. "fields": [
  239. {
  240. "name": "decimals",
  241. "type": "u8"
  242. },
  243. {
  244. "name": "circulation",
  245. "type": "u64"
  246. },
  247. {
  248. "name": "settled",
  249. "type": "bool"
  250. },
  251. {
  252. "name": "escrowMintAccountPubkey",
  253. "type": "publicKey"
  254. },
  255. {
  256. "name": "escrowAccountPubkey",
  257. "type": "publicKey"
  258. },
  259. {
  260. "name": "longMintAccountPubkey",
  261. "type": "publicKey"
  262. },
  263. {
  264. "name": "shortMintAccountPubkey",
  265. "type": "publicKey"
  266. },
  267. {
  268. "name": "owner",
  269. "type": "publicKey"
  270. },
  271. {
  272. "name": "winningSidePubkey",
  273. "type": "publicKey"
  274. }
  275. ]
  276. }
  277. }
  278. ],
  279. "errors": [
  280. {
  281. "code": 0,
  282. "name": "PublicKeyMismatch",
  283. "msg": "PublicKeyMismatch"
  284. },
  285. {
  286. "code": 1,
  287. "name": "InvalidMintAuthority",
  288. "msg": "InvalidMintAuthority"
  289. },
  290. {
  291. "code": 2,
  292. "name": "NotMintAuthority",
  293. "msg": "NotMintAuthority"
  294. },
  295. {
  296. "code": 3,
  297. "name": "InvalidSupply",
  298. "msg": "InvalidSupply"
  299. },
  300. {
  301. "code": 4,
  302. "name": "InvalidWinner",
  303. "msg": "InvalidWinner"
  304. },
  305. {
  306. "code": 5,
  307. "name": "UninitializedAccount",
  308. "msg": "UninitializedAccount"
  309. },
  310. {
  311. "code": 6,
  312. "name": "IncorrectOwner",
  313. "msg": "IncorrectOwner"
  314. },
  315. {
  316. "code": 7,
  317. "name": "AlreadySettled",
  318. "msg": "AlreadySettled"
  319. },
  320. {
  321. "code": 8,
  322. "name": "BetNotSettled",
  323. "msg": "BetNotSettled"
  324. },
  325. {
  326. "code": 9,
  327. "name": "TokenNotFoundInPool",
  328. "msg": "TokenNotFoundInPool"
  329. },
  330. {
  331. "code": 10,
  332. "name": "PublicKeysShouldBeUnique",
  333. "msg": "PublicKeysShouldBeUnique"
  334. },
  335. {
  336. "code": 11,
  337. "name": "TradePricesIncorrect",
  338. "msg": "TradePricesIncorrect"
  339. }
  340. ]
  341. }