idl.json 27 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289
  1. {
  2. "version": "0.2.0",
  3. "name": "spl_token_lending",
  4. "instructions": [
  5. {
  6. "name": "initLendingMarket",
  7. "accounts": [
  8. {
  9. "name": "lendingMarket",
  10. "isMut": true,
  11. "isSigner": false
  12. },
  13. {
  14. "name": "rent",
  15. "isMut": false,
  16. "isSigner": false
  17. },
  18. {
  19. "name": "tokenProgram",
  20. "isMut": false,
  21. "isSigner": false
  22. },
  23. {
  24. "name": "oracleProgram",
  25. "isMut": false,
  26. "isSigner": false
  27. }
  28. ],
  29. "args": [
  30. {
  31. "name": "owner",
  32. "type": "publicKey"
  33. },
  34. {
  35. "name": "quoteCurrency",
  36. "type": {
  37. "array": [
  38. "u8",
  39. 32
  40. ]
  41. }
  42. }
  43. ]
  44. },
  45. {
  46. "name": "setLendingMarketOwner",
  47. "accounts": [
  48. {
  49. "name": "lendingMarket",
  50. "isMut": true,
  51. "isSigner": false
  52. },
  53. {
  54. "name": "lendingMarketOwner",
  55. "isMut": false,
  56. "isSigner": true
  57. }
  58. ],
  59. "args": [
  60. {
  61. "name": "newOwner",
  62. "type": "publicKey"
  63. }
  64. ]
  65. },
  66. {
  67. "name": "initReserve",
  68. "accounts": [
  69. {
  70. "name": "sourceLiquidity",
  71. "isMut": true,
  72. "isSigner": false
  73. },
  74. {
  75. "name": "destinationCollateral",
  76. "isMut": true,
  77. "isSigner": false
  78. },
  79. {
  80. "name": "reserve",
  81. "isMut": true,
  82. "isSigner": false
  83. },
  84. {
  85. "name": "reserveLiquidityMint",
  86. "isMut": false,
  87. "isSigner": false
  88. },
  89. {
  90. "name": "reserveLiquiditySupply",
  91. "isMut": true,
  92. "isSigner": false
  93. },
  94. {
  95. "name": "reserveLiquidityFeeReceiver",
  96. "isMut": true,
  97. "isSigner": false
  98. },
  99. {
  100. "name": "reserveCollateralMint",
  101. "isMut": true,
  102. "isSigner": false
  103. },
  104. {
  105. "name": "reserveCollateralSupply",
  106. "isMut": true,
  107. "isSigner": false
  108. },
  109. {
  110. "name": "pythProduct",
  111. "isMut": false,
  112. "isSigner": false
  113. },
  114. {
  115. "name": "pythPrice",
  116. "isMut": false,
  117. "isSigner": false
  118. },
  119. {
  120. "name": "lendingMarket",
  121. "isMut": false,
  122. "isSigner": false
  123. },
  124. {
  125. "name": "lendingMarketAuthority",
  126. "isMut": false,
  127. "isSigner": false
  128. },
  129. {
  130. "name": "lendingMarketOwner",
  131. "isMut": false,
  132. "isSigner": true
  133. },
  134. {
  135. "name": "userTransferAuthority",
  136. "isMut": false,
  137. "isSigner": true
  138. },
  139. {
  140. "name": "clock",
  141. "isMut": false,
  142. "isSigner": false
  143. },
  144. {
  145. "name": "rent",
  146. "isMut": false,
  147. "isSigner": false
  148. },
  149. {
  150. "name": "tokenProgram",
  151. "isMut": false,
  152. "isSigner": false
  153. }
  154. ],
  155. "args": [
  156. {
  157. "name": "liquidityAmount",
  158. "type": "u64"
  159. },
  160. {
  161. "name": "config",
  162. "type": {
  163. "defined": "ReserveConfig"
  164. }
  165. }
  166. ]
  167. },
  168. {
  169. "name": "refreshReserve",
  170. "accounts": [
  171. {
  172. "name": "reserve",
  173. "isMut": true,
  174. "isSigner": false
  175. },
  176. {
  177. "name": "reserveLiquidityOracle",
  178. "isMut": false,
  179. "isSigner": false
  180. },
  181. {
  182. "name": "clock",
  183. "isMut": false,
  184. "isSigner": false
  185. }
  186. ],
  187. "args": []
  188. },
  189. {
  190. "name": "depositReserveLiquidity",
  191. "accounts": [
  192. {
  193. "name": "sourceLiquidity",
  194. "isMut": true,
  195. "isSigner": false
  196. },
  197. {
  198. "name": "destinationCollateral",
  199. "isMut": true,
  200. "isSigner": false
  201. },
  202. {
  203. "name": "reserve",
  204. "isMut": true,
  205. "isSigner": false
  206. },
  207. {
  208. "name": "reserveLiquiditySupply",
  209. "isMut": true,
  210. "isSigner": false
  211. },
  212. {
  213. "name": "reserveCollateralMint",
  214. "isMut": true,
  215. "isSigner": false
  216. },
  217. {
  218. "name": "lendingMarket",
  219. "isMut": false,
  220. "isSigner": false
  221. },
  222. {
  223. "name": "lendingMarketAuthority",
  224. "isMut": false,
  225. "isSigner": false
  226. },
  227. {
  228. "name": "userTransferAuthority",
  229. "isMut": false,
  230. "isSigner": true
  231. },
  232. {
  233. "name": "clock",
  234. "isMut": false,
  235. "isSigner": false
  236. },
  237. {
  238. "name": "tokenProgram",
  239. "isMut": false,
  240. "isSigner": false
  241. }
  242. ],
  243. "args": [
  244. {
  245. "name": "liquidityAmount",
  246. "type": "u64"
  247. }
  248. ]
  249. },
  250. {
  251. "name": "redeemReserveCollateral",
  252. "accounts": [
  253. {
  254. "name": "sourceCollateral",
  255. "isMut": true,
  256. "isSigner": false
  257. },
  258. {
  259. "name": "destinationLiquidity",
  260. "isMut": true,
  261. "isSigner": false
  262. },
  263. {
  264. "name": "reserve",
  265. "isMut": true,
  266. "isSigner": false
  267. },
  268. {
  269. "name": "reserveCollateralMint",
  270. "isMut": true,
  271. "isSigner": false
  272. },
  273. {
  274. "name": "reserveLiquiditySupply",
  275. "isMut": true,
  276. "isSigner": false
  277. },
  278. {
  279. "name": "lendingMarket",
  280. "isMut": false,
  281. "isSigner": false
  282. },
  283. {
  284. "name": "lendingMarketAuthority",
  285. "isMut": false,
  286. "isSigner": false
  287. },
  288. {
  289. "name": "userTransferAuthority",
  290. "isMut": false,
  291. "isSigner": true
  292. },
  293. {
  294. "name": "clock",
  295. "isMut": false,
  296. "isSigner": false
  297. },
  298. {
  299. "name": "tokenProgram",
  300. "isMut": false,
  301. "isSigner": false
  302. }
  303. ],
  304. "args": [
  305. {
  306. "name": "collateralAmount",
  307. "type": "u64"
  308. }
  309. ]
  310. },
  311. {
  312. "name": "initObligation",
  313. "accounts": [
  314. {
  315. "name": "obligation",
  316. "isMut": true,
  317. "isSigner": false
  318. },
  319. {
  320. "name": "lendingMarket",
  321. "isMut": false,
  322. "isSigner": false
  323. },
  324. {
  325. "name": "obligationOwner",
  326. "isMut": false,
  327. "isSigner": true
  328. },
  329. {
  330. "name": "clock",
  331. "isMut": false,
  332. "isSigner": false
  333. },
  334. {
  335. "name": "rent",
  336. "isMut": false,
  337. "isSigner": false
  338. },
  339. {
  340. "name": "tokenProgram",
  341. "isMut": false,
  342. "isSigner": false
  343. }
  344. ],
  345. "args": []
  346. },
  347. {
  348. "name": "refreshObligation",
  349. "accounts": [
  350. {
  351. "name": "obligation",
  352. "isMut": true,
  353. "isSigner": false
  354. },
  355. {
  356. "name": "clock",
  357. "isMut": false,
  358. "isSigner": false
  359. }
  360. ],
  361. "args": []
  362. },
  363. {
  364. "name": "depositObligationCollateral",
  365. "accounts": [
  366. {
  367. "name": "sourceCollateral",
  368. "isMut": true,
  369. "isSigner": false
  370. },
  371. {
  372. "name": "destinationCollateral",
  373. "isMut": true,
  374. "isSigner": false
  375. },
  376. {
  377. "name": "depositReserve",
  378. "isMut": false,
  379. "isSigner": false
  380. },
  381. {
  382. "name": "obligation",
  383. "isMut": true,
  384. "isSigner": false
  385. },
  386. {
  387. "name": "lendingMarket",
  388. "isMut": false,
  389. "isSigner": false
  390. },
  391. {
  392. "name": "obligationOwner",
  393. "isMut": false,
  394. "isSigner": true
  395. },
  396. {
  397. "name": "userTransferAuthority",
  398. "isMut": false,
  399. "isSigner": true
  400. },
  401. {
  402. "name": "clock",
  403. "isMut": false,
  404. "isSigner": false
  405. },
  406. {
  407. "name": "tokenProgram",
  408. "isMut": false,
  409. "isSigner": false
  410. }
  411. ],
  412. "args": [
  413. {
  414. "name": "collateralAmount",
  415. "type": "u64"
  416. }
  417. ]
  418. },
  419. {
  420. "name": "withdrawObligationCollateral",
  421. "accounts": [
  422. {
  423. "name": "sourceCollateral",
  424. "isMut": true,
  425. "isSigner": false
  426. },
  427. {
  428. "name": "destinationCollateral",
  429. "isMut": true,
  430. "isSigner": false
  431. },
  432. {
  433. "name": "withdrawReserve",
  434. "isMut": false,
  435. "isSigner": false
  436. },
  437. {
  438. "name": "obligation",
  439. "isMut": true,
  440. "isSigner": false
  441. },
  442. {
  443. "name": "lendingMarket",
  444. "isMut": false,
  445. "isSigner": false
  446. },
  447. {
  448. "name": "lendingMarketAuthority",
  449. "isMut": false,
  450. "isSigner": false
  451. },
  452. {
  453. "name": "obligationOwner",
  454. "isMut": false,
  455. "isSigner": true
  456. },
  457. {
  458. "name": "clock",
  459. "isMut": false,
  460. "isSigner": false
  461. },
  462. {
  463. "name": "tokenProgram",
  464. "isMut": false,
  465. "isSigner": false
  466. }
  467. ],
  468. "args": [
  469. {
  470. "name": "collateralAmount",
  471. "type": "u64"
  472. }
  473. ]
  474. },
  475. {
  476. "name": "borrowObligationLiquidity",
  477. "accounts": [
  478. {
  479. "name": "sourceLiquidity",
  480. "isMut": true,
  481. "isSigner": false
  482. },
  483. {
  484. "name": "destinationLiquidity",
  485. "isMut": true,
  486. "isSigner": false
  487. },
  488. {
  489. "name": "borrowReserve",
  490. "isMut": true,
  491. "isSigner": false
  492. },
  493. {
  494. "name": "borrowReserveLiquidityFeeReceiver",
  495. "isMut": true,
  496. "isSigner": false
  497. },
  498. {
  499. "name": "obligation",
  500. "isMut": true,
  501. "isSigner": false
  502. },
  503. {
  504. "name": "lendingMarket",
  505. "isMut": false,
  506. "isSigner": false
  507. },
  508. {
  509. "name": "lendingMarketAuthority",
  510. "isMut": false,
  511. "isSigner": false
  512. },
  513. {
  514. "name": "obligationOwner",
  515. "isMut": false,
  516. "isSigner": true
  517. },
  518. {
  519. "name": "clock",
  520. "isMut": false,
  521. "isSigner": false
  522. },
  523. {
  524. "name": "tokenProgram",
  525. "isMut": false,
  526. "isSigner": false
  527. }
  528. ],
  529. "args": [
  530. {
  531. "name": "liquidityAmount",
  532. "type": "u64"
  533. }
  534. ]
  535. },
  536. {
  537. "name": "repayObligationLiquidity",
  538. "accounts": [
  539. {
  540. "name": "sourceLiquidity",
  541. "isMut": true,
  542. "isSigner": false
  543. },
  544. {
  545. "name": "destinationLiquidity",
  546. "isMut": true,
  547. "isSigner": false
  548. },
  549. {
  550. "name": "repayReserve",
  551. "isMut": true,
  552. "isSigner": false
  553. },
  554. {
  555. "name": "obligation",
  556. "isMut": true,
  557. "isSigner": false
  558. },
  559. {
  560. "name": "lendingMarket",
  561. "isMut": false,
  562. "isSigner": false
  563. },
  564. {
  565. "name": "userTransferAuthority",
  566. "isMut": false,
  567. "isSigner": true
  568. },
  569. {
  570. "name": "clock",
  571. "isMut": false,
  572. "isSigner": false
  573. },
  574. {
  575. "name": "tokenProgram",
  576. "isMut": false,
  577. "isSigner": false
  578. }
  579. ],
  580. "args": [
  581. {
  582. "name": "liquidityAmount",
  583. "type": "u64"
  584. }
  585. ]
  586. },
  587. {
  588. "name": "liquidateObligation",
  589. "accounts": [
  590. {
  591. "name": "sourceLiquidity",
  592. "isMut": true,
  593. "isSigner": false
  594. },
  595. {
  596. "name": "destinationCollateral",
  597. "isMut": true,
  598. "isSigner": false
  599. },
  600. {
  601. "name": "repayReserve",
  602. "isMut": true,
  603. "isSigner": false
  604. },
  605. {
  606. "name": "repayReserveLiquiditySupply",
  607. "isMut": true,
  608. "isSigner": false
  609. },
  610. {
  611. "name": "withdrawReserve",
  612. "isMut": false,
  613. "isSigner": false
  614. },
  615. {
  616. "name": "withdrawReserveCollateralSupply",
  617. "isMut": true,
  618. "isSigner": false
  619. },
  620. {
  621. "name": "obligation",
  622. "isMut": true,
  623. "isSigner": false
  624. },
  625. {
  626. "name": "lendingMarket",
  627. "isMut": false,
  628. "isSigner": false
  629. },
  630. {
  631. "name": "lendingMarketAuthority",
  632. "isMut": false,
  633. "isSigner": false
  634. },
  635. {
  636. "name": "userTransferAuthority",
  637. "isMut": false,
  638. "isSigner": true
  639. },
  640. {
  641. "name": "clock",
  642. "isMut": false,
  643. "isSigner": false
  644. },
  645. {
  646. "name": "tokenProgram",
  647. "isMut": false,
  648. "isSigner": false
  649. }
  650. ],
  651. "args": [
  652. {
  653. "name": "liquidityAmount",
  654. "type": "u64"
  655. }
  656. ]
  657. },
  658. {
  659. "name": "flashLoan",
  660. "accounts": [
  661. {
  662. "name": "sourceLiquidity",
  663. "isMut": true,
  664. "isSigner": false
  665. },
  666. {
  667. "name": "destinationLiquidity",
  668. "isMut": true,
  669. "isSigner": false
  670. },
  671. {
  672. "name": "reserve",
  673. "isMut": true,
  674. "isSigner": false
  675. },
  676. {
  677. "name": "reserveLiquidityFeeReceiver",
  678. "isMut": true,
  679. "isSigner": false
  680. },
  681. {
  682. "name": "hostFeeReceiver",
  683. "isMut": true,
  684. "isSigner": false
  685. },
  686. {
  687. "name": "lendingMarket",
  688. "isMut": false,
  689. "isSigner": false
  690. },
  691. {
  692. "name": "lendingMarketAuthority",
  693. "isMut": false,
  694. "isSigner": false
  695. },
  696. {
  697. "name": "tokenProgram",
  698. "isMut": false,
  699. "isSigner": false
  700. },
  701. {
  702. "name": "flashLoanReceiverProgram",
  703. "isMut": false,
  704. "isSigner": false
  705. }
  706. ],
  707. "args": [
  708. {
  709. "name": "amount",
  710. "type": "u64"
  711. }
  712. ]
  713. }
  714. ],
  715. "accounts": [
  716. {
  717. "name": "Obligation",
  718. "type": {
  719. "kind": "struct",
  720. "fields": [
  721. {
  722. "name": "version",
  723. "type": "u8"
  724. },
  725. {
  726. "name": "lastUpdate",
  727. "type": {
  728. "defined": "LastUpdate"
  729. }
  730. },
  731. {
  732. "name": "lendingMarket",
  733. "type": "publicKey"
  734. },
  735. {
  736. "name": "owner",
  737. "type": "publicKey"
  738. },
  739. {
  740. "name": "deposits",
  741. "type": {
  742. "vec": {
  743. "defined": "ObligationCollateral"
  744. }
  745. }
  746. },
  747. {
  748. "name": "borrows",
  749. "type": {
  750. "vec": {
  751. "defined": "ObligationLiquidity"
  752. }
  753. }
  754. },
  755. {
  756. "name": "depositedValue",
  757. "type": {
  758. "defined": "Decimal"
  759. }
  760. },
  761. {
  762. "name": "borrowedValue",
  763. "type": {
  764. "defined": "Decimal"
  765. }
  766. },
  767. {
  768. "name": "allowedBorrowValue",
  769. "type": {
  770. "defined": "Decimal"
  771. }
  772. },
  773. {
  774. "name": "unhealthyBorrowValue",
  775. "type": {
  776. "defined": "Decimal"
  777. }
  778. }
  779. ]
  780. }
  781. },
  782. {
  783. "name": "LendingMarket",
  784. "type": {
  785. "kind": "struct",
  786. "fields": [
  787. {
  788. "name": "version",
  789. "type": "u8"
  790. },
  791. {
  792. "name": "bumpSeed",
  793. "type": "u8"
  794. },
  795. {
  796. "name": "owner",
  797. "type": "publicKey"
  798. },
  799. {
  800. "name": "quoteCurrency",
  801. "type": {
  802. "array": [
  803. "u8",
  804. 32
  805. ]
  806. }
  807. },
  808. {
  809. "name": "tokenProgramId",
  810. "type": "publicKey"
  811. },
  812. {
  813. "name": "oracleProgramId",
  814. "type": "publicKey"
  815. }
  816. ]
  817. }
  818. },
  819. {
  820. "name": "Reserve",
  821. "type": {
  822. "kind": "struct",
  823. "fields": [
  824. {
  825. "name": "version",
  826. "type": "u8"
  827. },
  828. {
  829. "name": "lastUpdate",
  830. "type": {
  831. "defined": "LastUpdate"
  832. }
  833. },
  834. {
  835. "name": "lendingMarket",
  836. "type": "publicKey"
  837. },
  838. {
  839. "name": "liquidity",
  840. "type": {
  841. "defined": "ReserveLiquidity"
  842. }
  843. },
  844. {
  845. "name": "collateral",
  846. "type": {
  847. "defined": "ReserveCollateral"
  848. }
  849. },
  850. {
  851. "name": "config",
  852. "type": {
  853. "defined": "ReserveConfig"
  854. }
  855. }
  856. ]
  857. }
  858. }
  859. ],
  860. "types": [
  861. {
  862. "name": "LastUpdate",
  863. "type": {
  864. "kind": "struct",
  865. "fields": [
  866. {
  867. "name": "slot",
  868. "type": "u64"
  869. },
  870. {
  871. "name": "stale",
  872. "type": "bool"
  873. }
  874. ]
  875. }
  876. },
  877. {
  878. "name": "ObligationCollateral",
  879. "type": {
  880. "kind": "struct",
  881. "fields": [
  882. {
  883. "name": "depositReserve",
  884. "type": "publicKey"
  885. },
  886. {
  887. "name": "depositedAmount",
  888. "type": "u64"
  889. },
  890. {
  891. "name": "marketValue",
  892. "type": {
  893. "defined": "Decimal"
  894. }
  895. }
  896. ]
  897. }
  898. },
  899. {
  900. "name": "ObligationLiquidity",
  901. "type": {
  902. "kind": "struct",
  903. "fields": [
  904. {
  905. "name": "borrowReserve",
  906. "type": "publicKey"
  907. },
  908. {
  909. "name": "cumulativeBorrowRateWads",
  910. "type": {
  911. "defined": "Decimal"
  912. }
  913. },
  914. {
  915. "name": "borrowedAmountWads",
  916. "type": {
  917. "defined": "Decimal"
  918. }
  919. },
  920. {
  921. "name": "marketValue",
  922. "type": {
  923. "defined": "Decimal"
  924. }
  925. }
  926. ]
  927. }
  928. },
  929. {
  930. "name": "ReserveLiquidity",
  931. "type": {
  932. "kind": "struct",
  933. "fields": [
  934. {
  935. "name": "mintPubkey",
  936. "type": "publicKey"
  937. },
  938. {
  939. "name": "mintDecimals",
  940. "type": "u8"
  941. },
  942. {
  943. "name": "supplyPubkey",
  944. "type": "publicKey"
  945. },
  946. {
  947. "name": "feeReceiver",
  948. "type": "publicKey"
  949. },
  950. {
  951. "name": "oraclePubkey",
  952. "type": "publicKey"
  953. },
  954. {
  955. "name": "availableAmount",
  956. "type": "u64"
  957. },
  958. {
  959. "name": "borrowedAmountWads",
  960. "type": {
  961. "defined": "Decimal"
  962. }
  963. },
  964. {
  965. "name": "cumulativeBorrowRateWads",
  966. "type": {
  967. "defined": "Decimal"
  968. }
  969. },
  970. {
  971. "name": "marketPrice",
  972. "type": {
  973. "defined": "Decimal"
  974. }
  975. }
  976. ]
  977. }
  978. },
  979. {
  980. "name": "ReserveCollateral",
  981. "type": {
  982. "kind": "struct",
  983. "fields": [
  984. {
  985. "name": "mintPubkey",
  986. "type": "publicKey"
  987. },
  988. {
  989. "name": "mintTotalSupply",
  990. "type": "u64"
  991. },
  992. {
  993. "name": "supplyPubkey",
  994. "type": "publicKey"
  995. }
  996. ]
  997. }
  998. },
  999. {
  1000. "name": "ReserveFees",
  1001. "type": {
  1002. "kind": "struct",
  1003. "fields": [
  1004. {
  1005. "name": "borrowFeeWad",
  1006. "type": "u64"
  1007. },
  1008. {
  1009. "name": "flashLoanFeeWad",
  1010. "type": "u64"
  1011. },
  1012. {
  1013. "name": "hostFeePercentage",
  1014. "type": "u8"
  1015. }
  1016. ]
  1017. }
  1018. },
  1019. {
  1020. "name": "ReserveConfig",
  1021. "type": {
  1022. "kind": "struct",
  1023. "fields": [
  1024. {
  1025. "name": "optimalUtilizationRate",
  1026. "type": "u8"
  1027. },
  1028. {
  1029. "name": "loanToValueRatio",
  1030. "type": "u8"
  1031. },
  1032. {
  1033. "name": "liquidationBonus",
  1034. "type": "u8"
  1035. },
  1036. {
  1037. "name": "liquidationThreshold",
  1038. "type": "u8"
  1039. },
  1040. {
  1041. "name": "minBorrowRate",
  1042. "type": "u8"
  1043. },
  1044. {
  1045. "name": "optimalBorrowRate",
  1046. "type": "u8"
  1047. },
  1048. {
  1049. "name": "maxBorrowRate",
  1050. "type": "u8"
  1051. },
  1052. {
  1053. "name": "fees",
  1054. "type": {
  1055. "defined": "ReserveFees"
  1056. }
  1057. }
  1058. ]
  1059. }
  1060. }
  1061. ],
  1062. "errors": [
  1063. {
  1064. "code": 0,
  1065. "name": "InstructionUnpackError",
  1066. "msg": "Failed to unpack instruction data"
  1067. },
  1068. {
  1069. "code": 1,
  1070. "name": "AlreadyInitialized",
  1071. "msg": "Account is already initialized"
  1072. },
  1073. {
  1074. "code": 2,
  1075. "name": "NotRentExempt",
  1076. "msg": "Lamport balance below rent-exempt threshold"
  1077. },
  1078. {
  1079. "code": 3,
  1080. "name": "InvalidMarketAuthority",
  1081. "msg": "Market authority is invalid"
  1082. },
  1083. {
  1084. "code": 4,
  1085. "name": "InvalidMarketOwner",
  1086. "msg": "Market owner is invalid"
  1087. },
  1088. {
  1089. "code": 5,
  1090. "name": "InvalidAccountOwner",
  1091. "msg": "Input account owner is not the program address"
  1092. },
  1093. {
  1094. "code": 6,
  1095. "name": "InvalidTokenOwner",
  1096. "msg": "Input token account is not owned by the correct token program id"
  1097. },
  1098. {
  1099. "code": 7,
  1100. "name": "InvalidTokenAccount",
  1101. "msg": "Input token account is not valid"
  1102. },
  1103. {
  1104. "code": 8,
  1105. "name": "InvalidTokenMint",
  1106. "msg": "Input token mint account is not valid"
  1107. },
  1108. {
  1109. "code": 9,
  1110. "name": "InvalidTokenProgram",
  1111. "msg": "Input token program account is not valid"
  1112. },
  1113. {
  1114. "code": 10,
  1115. "name": "InvalidAmount",
  1116. "msg": "Input amount is invalid"
  1117. },
  1118. {
  1119. "code": 11,
  1120. "name": "InvalidConfig",
  1121. "msg": "Input config value is invalid"
  1122. },
  1123. {
  1124. "code": 12,
  1125. "name": "InvalidSigner",
  1126. "msg": "Input account must be a signer"
  1127. },
  1128. {
  1129. "code": 13,
  1130. "name": "InvalidAccountInput",
  1131. "msg": "Invalid account input"
  1132. },
  1133. {
  1134. "code": 14,
  1135. "name": "MathOverflow",
  1136. "msg": "Math operation overflow"
  1137. },
  1138. {
  1139. "code": 15,
  1140. "name": "TokenInitializeMintFailed",
  1141. "msg": "Token initialize mint failed"
  1142. },
  1143. {
  1144. "code": 16,
  1145. "name": "TokenInitializeAccountFailed",
  1146. "msg": "Token initialize account failed"
  1147. },
  1148. {
  1149. "code": 17,
  1150. "name": "TokenTransferFailed",
  1151. "msg": "Token transfer failed"
  1152. },
  1153. {
  1154. "code": 18,
  1155. "name": "TokenMintToFailed",
  1156. "msg": "Token mint to failed"
  1157. },
  1158. {
  1159. "code": 19,
  1160. "name": "TokenBurnFailed",
  1161. "msg": "Token burn failed"
  1162. },
  1163. {
  1164. "code": 20,
  1165. "name": "InsufficientLiquidity",
  1166. "msg": "Insufficient liquidity available"
  1167. },
  1168. {
  1169. "code": 21,
  1170. "name": "ReserveCollateralDisabled",
  1171. "msg": "Input reserve has collateral disabled"
  1172. },
  1173. {
  1174. "code": 22,
  1175. "name": "ReserveStale",
  1176. "msg": "Reserve state needs to be refreshed"
  1177. },
  1178. {
  1179. "code": 23,
  1180. "name": "WithdrawTooSmall",
  1181. "msg": "Withdraw amount too small"
  1182. },
  1183. {
  1184. "code": 24,
  1185. "name": "WithdrawTooLarge",
  1186. "msg": "Withdraw amount too large"
  1187. },
  1188. {
  1189. "code": 25,
  1190. "name": "BorrowTooSmall",
  1191. "msg": "Borrow amount too small to receive liquidity after fees"
  1192. },
  1193. {
  1194. "code": 26,
  1195. "name": "BorrowTooLarge",
  1196. "msg": "Borrow amount too large for deposited collateral"
  1197. },
  1198. {
  1199. "code": 27,
  1200. "name": "RepayTooSmall",
  1201. "msg": "Repay amount too small to transfer liquidity"
  1202. },
  1203. {
  1204. "code": 28,
  1205. "name": "LiquidationTooSmall",
  1206. "msg": "Liquidation amount too small to receive collateral"
  1207. },
  1208. {
  1209. "code": 29,
  1210. "name": "ObligationHealthy",
  1211. "msg": "Cannot liquidate healthy obligations"
  1212. },
  1213. {
  1214. "code": 30,
  1215. "name": "ObligationStale",
  1216. "msg": "Obligation state needs to be refreshed"
  1217. },
  1218. {
  1219. "code": 31,
  1220. "name": "ObligationReserveLimit",
  1221. "msg": "Obligation reserve limit exceeded"
  1222. },
  1223. {
  1224. "code": 32,
  1225. "name": "InvalidObligationOwner",
  1226. "msg": "Obligation owner is invalid"
  1227. },
  1228. {
  1229. "code": 33,
  1230. "name": "ObligationDepositsEmpty",
  1231. "msg": "Obligation deposits are empty"
  1232. },
  1233. {
  1234. "code": 34,
  1235. "name": "ObligationBorrowsEmpty",
  1236. "msg": "Obligation borrows are empty"
  1237. },
  1238. {
  1239. "code": 35,
  1240. "name": "ObligationDepositsZero",
  1241. "msg": "Obligation deposits have zero value"
  1242. },
  1243. {
  1244. "code": 36,
  1245. "name": "ObligationBorrowsZero",
  1246. "msg": "Obligation borrows have zero value"
  1247. },
  1248. {
  1249. "code": 37,
  1250. "name": "InvalidObligationCollateral",
  1251. "msg": "Invalid obligation collateral"
  1252. },
  1253. {
  1254. "code": 38,
  1255. "name": "InvalidObligationLiquidity",
  1256. "msg": "Invalid obligation liquidity"
  1257. },
  1258. {
  1259. "code": 39,
  1260. "name": "ObligationCollateralEmpty",
  1261. "msg": "Obligation collateral is empty"
  1262. },
  1263. {
  1264. "code": 40,
  1265. "name": "ObligationLiquidityEmpty",
  1266. "msg": "Obligation liquidity is empty"
  1267. },
  1268. {
  1269. "code": 41,
  1270. "name": "NegativeInterestRate",
  1271. "msg": "Interest rate is negative"
  1272. },
  1273. {
  1274. "code": 42,
  1275. "name": "InvalidOracleConfig",
  1276. "msg": "Input oracle config is invalid"
  1277. },
  1278. {
  1279. "code": 43,
  1280. "name": "InvalidFlashLoanReceiverProgram",
  1281. "msg": "Input flash loan receiver program account is not valid"
  1282. },
  1283. {
  1284. "code": 44,
  1285. "name": "NotEnoughLiquidityAfterFlashLoan",
  1286. "msg": "Not enough liquidity after flash loan"
  1287. }
  1288. ]
  1289. }