@wuwei-labs/srsly 3.0.0-beta.2 → 3.0.0-beta.21

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 (782) hide show
  1. package/README.md +38 -0
  2. package/dist/cjs/accounts/borrower.js +79 -15
  3. package/dist/cjs/accounts/borrower.js.map +1 -1
  4. package/dist/cjs/accounts/config.js +51 -3
  5. package/dist/cjs/accounts/config.js.map +1 -1
  6. package/dist/cjs/accounts/contract.js +52 -1
  7. package/dist/cjs/accounts/contract.js.map +1 -1
  8. package/dist/cjs/accounts/fleet.js +2 -1
  9. package/dist/cjs/accounts/fleet.js.map +1 -1
  10. package/dist/cjs/accounts/member.js +16 -0
  11. package/dist/cjs/accounts/member.js.map +1 -0
  12. package/dist/cjs/accounts/owner.js +105 -0
  13. package/dist/cjs/accounts/owner.js.map +1 -0
  14. package/dist/cjs/accounts/rental.js +49 -1
  15. package/dist/cjs/accounts/rental.js.map +1 -1
  16. package/dist/cjs/demos.js +337 -34
  17. package/dist/cjs/demos.js.map +1 -1
  18. package/dist/cjs/generated/codama/accounts/borrowerState.js +25 -25
  19. package/dist/cjs/generated/codama/accounts/borrowerState.js.map +1 -1
  20. package/dist/cjs/generated/codama/accounts/configState.js +55 -48
  21. package/dist/cjs/generated/codama/accounts/configState.js.map +1 -1
  22. package/dist/cjs/generated/codama/accounts/contractState.js +59 -42
  23. package/dist/cjs/generated/codama/accounts/contractState.js.map +1 -1
  24. package/dist/cjs/generated/codama/accounts/fleet.js +103 -0
  25. package/dist/cjs/generated/codama/accounts/fleet.js.map +1 -0
  26. package/dist/cjs/generated/codama/accounts/index.js +2 -2
  27. package/dist/cjs/generated/codama/accounts/index.js.map +1 -1
  28. package/dist/cjs/generated/codama/accounts/ownerState.js +86 -0
  29. package/dist/cjs/generated/codama/accounts/ownerState.js.map +1 -0
  30. package/dist/cjs/generated/codama/accounts/rentalState.js +42 -30
  31. package/dist/cjs/generated/codama/accounts/rentalState.js.map +1 -1
  32. package/dist/cjs/generated/codama/accounts/thread.js +47 -44
  33. package/dist/cjs/generated/codama/accounts/thread.js.map +1 -1
  34. package/dist/cjs/generated/codama/errors/srsly.js +61 -19
  35. package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
  36. package/dist/cjs/generated/codama/instructions/acceptRental.js +39 -61
  37. package/dist/cjs/generated/codama/instructions/acceptRental.js.map +1 -1
  38. package/dist/cjs/generated/codama/instructions/activateRental.js +193 -0
  39. package/dist/cjs/generated/codama/instructions/activateRental.js.map +1 -0
  40. package/dist/cjs/generated/codama/instructions/cancelRental.js +50 -28
  41. package/dist/cjs/generated/codama/instructions/cancelRental.js.map +1 -1
  42. package/dist/cjs/generated/codama/instructions/claimBorrower.js +36 -23
  43. package/dist/cjs/generated/codama/instructions/claimBorrower.js.map +1 -1
  44. package/dist/cjs/generated/codama/instructions/{claimContractPayments.js → claimOwner.js} +70 -56
  45. package/dist/cjs/generated/codama/instructions/claimOwner.js.map +1 -0
  46. package/dist/cjs/generated/codama/instructions/claimRental.js +336 -0
  47. package/dist/cjs/generated/codama/instructions/claimRental.js.map +1 -0
  48. package/dist/cjs/generated/codama/instructions/closeContract.js +17 -85
  49. package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
  50. package/dist/cjs/generated/codama/instructions/closeRental.js +46 -45
  51. package/dist/cjs/generated/codama/instructions/closeRental.js.map +1 -1
  52. package/dist/cjs/generated/codama/instructions/createConfig.js +56 -20
  53. package/dist/cjs/generated/codama/instructions/createConfig.js.map +1 -1
  54. package/dist/cjs/generated/codama/instructions/createContract.js +53 -37
  55. package/dist/cjs/generated/codama/instructions/createContract.js.map +1 -1
  56. package/dist/cjs/generated/codama/instructions/deleteConfig.js +15 -15
  57. package/dist/cjs/generated/codama/instructions/deleteConfig.js.map +1 -1
  58. package/dist/cjs/generated/codama/instructions/deleteContract.js +5 -5
  59. package/dist/cjs/generated/codama/instructions/deleteRental.js +5 -5
  60. package/dist/cjs/generated/codama/instructions/index.js +7 -4
  61. package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
  62. package/dist/cjs/generated/codama/instructions/invalidateRental.js +156 -0
  63. package/dist/cjs/generated/codama/instructions/invalidateRental.js.map +1 -0
  64. package/dist/cjs/generated/codama/instructions/payRental.js +64 -24
  65. package/dist/cjs/generated/codama/instructions/payRental.js.map +1 -1
  66. package/dist/cjs/generated/codama/instructions/releaseRental.js +8 -49
  67. package/dist/cjs/generated/codama/instructions/releaseRental.js.map +1 -1
  68. package/dist/cjs/generated/codama/instructions/reserveRental.js +41 -22
  69. package/dist/cjs/generated/codama/instructions/reserveRental.js.map +1 -1
  70. package/dist/cjs/generated/codama/instructions/scheduleRental.js +265 -0
  71. package/dist/cjs/generated/codama/instructions/scheduleRental.js.map +1 -0
  72. package/dist/cjs/generated/codama/instructions/setDelegate.js +79 -0
  73. package/dist/cjs/generated/codama/instructions/setDelegate.js.map +1 -0
  74. package/dist/cjs/generated/codama/instructions/updateBorrower.js +9 -9
  75. package/dist/cjs/generated/codama/instructions/updateBorrower.js.map +1 -1
  76. package/dist/cjs/generated/codama/instructions/updateConfig.js +43 -45
  77. package/dist/cjs/generated/codama/instructions/updateConfig.js.map +1 -1
  78. package/dist/cjs/generated/codama/instructions/updateContract.js +24 -22
  79. package/dist/cjs/generated/codama/instructions/updateContract.js.map +1 -1
  80. package/dist/cjs/generated/codama/instructions/updateOwner.js +79 -0
  81. package/dist/cjs/generated/codama/instructions/updateOwner.js.map +1 -0
  82. package/dist/cjs/generated/codama/programs/srsly.js +48 -36
  83. package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
  84. package/dist/cjs/generated/codama/shared/index.js +8 -8
  85. package/dist/cjs/generated/codama/types/atlasClaimed.js +33 -0
  86. package/dist/cjs/generated/codama/types/atlasClaimed.js.map +1 -0
  87. package/dist/cjs/generated/codama/types/borrowerInitialized.js +29 -0
  88. package/dist/cjs/generated/codama/types/borrowerInitialized.js.map +1 -0
  89. package/dist/cjs/generated/codama/types/cargoStats.js +43 -0
  90. package/dist/cjs/generated/codama/types/cargoStats.js.map +1 -0
  91. package/dist/cjs/generated/codama/types/contractClosed.js +31 -0
  92. package/dist/cjs/generated/codama/types/contractClosed.js.map +1 -0
  93. package/dist/cjs/generated/codama/types/contractCreated.js +33 -0
  94. package/dist/cjs/generated/codama/types/contractCreated.js.map +1 -0
  95. package/dist/cjs/generated/codama/types/contractDelegateSet.js +31 -0
  96. package/dist/cjs/generated/codama/types/contractDelegateSet.js.map +1 -0
  97. package/dist/cjs/generated/codama/types/contractPendingClose.js +31 -0
  98. package/dist/cjs/generated/codama/types/contractPendingClose.js.map +1 -0
  99. package/dist/cjs/generated/codama/types/contractUpdated.js +34 -0
  100. package/dist/cjs/generated/codama/types/contractUpdated.js.map +1 -0
  101. package/dist/cjs/generated/codama/types/discountAuthorization.js +33 -0
  102. package/dist/cjs/generated/codama/types/discountAuthorization.js.map +1 -0
  103. package/dist/cjs/generated/codama/types/fieldUpdate.js +29 -0
  104. package/dist/cjs/generated/codama/types/fieldUpdate.js.map +1 -0
  105. package/dist/cjs/generated/codama/types/index.js +25 -3
  106. package/dist/cjs/generated/codama/types/index.js.map +1 -1
  107. package/dist/cjs/generated/codama/types/miscStats.js +47 -0
  108. package/dist/cjs/generated/codama/types/miscStats.js.map +1 -0
  109. package/dist/cjs/generated/codama/types/movementStats.js +39 -0
  110. package/dist/cjs/generated/codama/types/movementStats.js.map +1 -0
  111. package/dist/cjs/generated/codama/types/optionalNonSystemPubkey.js +23 -0
  112. package/dist/cjs/generated/codama/types/optionalNonSystemPubkey.js.map +1 -0
  113. package/dist/cjs/generated/codama/types/rentalAccepted.js +43 -0
  114. package/dist/cjs/generated/codama/types/rentalAccepted.js.map +1 -0
  115. package/dist/cjs/generated/codama/types/rentalActivated.js +31 -0
  116. package/dist/cjs/generated/codama/types/rentalActivated.js.map +1 -0
  117. package/dist/cjs/generated/codama/types/rentalCancelled.js +35 -0
  118. package/dist/cjs/generated/codama/types/rentalCancelled.js.map +1 -0
  119. package/dist/cjs/generated/codama/types/rentalClaimed.js +41 -0
  120. package/dist/cjs/generated/codama/types/rentalClaimed.js.map +1 -0
  121. package/dist/cjs/generated/codama/types/rentalClosed.js +33 -0
  122. package/dist/cjs/generated/codama/types/rentalClosed.js.map +1 -0
  123. package/dist/cjs/generated/codama/types/rentalPaymentProcessed.js +33 -0
  124. package/dist/cjs/generated/codama/types/rentalPaymentProcessed.js.map +1 -0
  125. package/dist/cjs/generated/codama/types/rentalScheduled.js +35 -0
  126. package/dist/cjs/generated/codama/types/rentalScheduled.js.map +1 -0
  127. package/dist/cjs/generated/codama/types/rentalStatus.js +31 -0
  128. package/dist/cjs/generated/codama/types/rentalStatus.js.map +1 -0
  129. package/dist/cjs/generated/codama/types/reservationCreated.js +35 -0
  130. package/dist/cjs/generated/codama/types/reservationCreated.js.map +1 -0
  131. package/dist/cjs/generated/codama/types/reservationKnockoff.js +35 -0
  132. package/dist/cjs/generated/codama/types/reservationKnockoff.js.map +1 -0
  133. package/dist/cjs/generated/codama/types/schedule.js +14 -14
  134. package/dist/cjs/generated/codama/types/shipCounts.js +45 -0
  135. package/dist/cjs/generated/codama/types/shipCounts.js.map +1 -0
  136. package/dist/cjs/generated/codama/types/shipStats.js +32 -0
  137. package/dist/cjs/generated/codama/types/shipStats.js.map +1 -0
  138. package/dist/cjs/generated/codama/types/signal.js +12 -12
  139. package/dist/cjs/generated/codama/types/trigger.js +36 -36
  140. package/dist/cjs/index.js +64 -11
  141. package/dist/cjs/index.js.map +1 -1
  142. package/dist/cjs/instructions/acceptRental.js +82 -24
  143. package/dist/cjs/instructions/acceptRental.js.map +1 -1
  144. package/dist/cjs/instructions/approveAffiliate.js +11 -0
  145. package/dist/cjs/instructions/approveAffiliate.js.map +1 -0
  146. package/dist/cjs/instructions/cancelRental.js +12 -5
  147. package/dist/cjs/instructions/cancelRental.js.map +1 -1
  148. package/dist/cjs/instructions/claimBorrower.js +7 -3
  149. package/dist/cjs/instructions/claimBorrower.js.map +1 -1
  150. package/dist/cjs/instructions/claimRental.js +201 -0
  151. package/dist/cjs/instructions/claimRental.js.map +1 -0
  152. package/dist/cjs/instructions/closeContract.js +4 -3
  153. package/dist/cjs/instructions/closeContract.js.map +1 -1
  154. package/dist/cjs/instructions/closeRental.js +42 -12
  155. package/dist/cjs/instructions/closeRental.js.map +1 -1
  156. package/dist/cjs/instructions/createAffiliate.js +73 -0
  157. package/dist/cjs/instructions/createAffiliate.js.map +1 -0
  158. package/dist/cjs/instructions/createConfig.js +12 -0
  159. package/dist/cjs/instructions/createConfig.js.map +1 -1
  160. package/dist/cjs/instructions/createContract.js +12 -5
  161. package/dist/cjs/instructions/createContract.js.map +1 -1
  162. package/dist/cjs/instructions/deleteConfig.js +16 -5
  163. package/dist/cjs/instructions/deleteConfig.js.map +1 -1
  164. package/dist/cjs/instructions/deleteContract.js +79 -0
  165. package/dist/cjs/instructions/deleteContract.js.map +1 -0
  166. package/dist/cjs/instructions/index.js +56 -0
  167. package/dist/cjs/instructions/index.js.map +1 -0
  168. package/dist/cjs/instructions/invalidateRental.js +101 -0
  169. package/dist/cjs/instructions/invalidateRental.js.map +1 -0
  170. package/dist/cjs/instructions/ownerClaim.js +110 -0
  171. package/dist/cjs/instructions/ownerClaim.js.map +1 -0
  172. package/dist/cjs/instructions/ownerUpdate.js +68 -0
  173. package/dist/cjs/instructions/ownerUpdate.js.map +1 -0
  174. package/dist/cjs/instructions/releaseRental.js +20 -53
  175. package/dist/cjs/instructions/releaseRental.js.map +1 -1
  176. package/dist/cjs/instructions/removeAffiliate.js +11 -0
  177. package/dist/cjs/instructions/removeAffiliate.js.map +1 -0
  178. package/dist/cjs/instructions/reserveRental.js +8 -6
  179. package/dist/cjs/instructions/reserveRental.js.map +1 -1
  180. package/dist/cjs/instructions/setDelegate.js +72 -0
  181. package/dist/cjs/instructions/setDelegate.js.map +1 -0
  182. package/dist/cjs/instructions/updateAffiliate.js +57 -0
  183. package/dist/cjs/instructions/updateAffiliate.js.map +1 -0
  184. package/dist/cjs/instructions/updateBorrower.js +4 -2
  185. package/dist/cjs/instructions/updateBorrower.js.map +1 -1
  186. package/dist/cjs/instructions/updateConfig.js +0 -1
  187. package/dist/cjs/instructions/updateConfig.js.map +1 -1
  188. package/dist/cjs/instructions/updateContract.js +12 -5
  189. package/dist/cjs/instructions/updateContract.js.map +1 -1
  190. package/dist/cjs/kit/index.js +34 -0
  191. package/dist/cjs/kit/index.js.map +1 -0
  192. package/dist/cjs/legacy/index.js +127 -0
  193. package/dist/cjs/legacy/index.js.map +1 -0
  194. package/dist/cjs/package.json +9 -5
  195. package/dist/cjs/params/amount.js +4 -4
  196. package/dist/cjs/pda/constants.js +2 -1
  197. package/dist/cjs/pda/constants.js.map +1 -1
  198. package/dist/cjs/pda/index.js +7 -2
  199. package/dist/cjs/pda/index.js.map +1 -1
  200. package/dist/cjs/pda/lookupTable.js +59 -0
  201. package/dist/cjs/pda/lookupTable.js.map +1 -0
  202. package/dist/cjs/pda/slyvault.js +5 -49
  203. package/dist/cjs/pda/slyvault.js.map +1 -1
  204. package/dist/cjs/pda/srsly.js +32 -6
  205. package/dist/cjs/pda/srsly.js.map +1 -1
  206. package/dist/cjs/pda/thread.js +2 -2
  207. package/dist/cjs/utils/addresses.js +7 -1
  208. package/dist/cjs/utils/addresses.js.map +1 -1
  209. package/dist/cjs/utils/config.js +20 -2
  210. package/dist/cjs/utils/config.js.map +1 -1
  211. package/dist/cjs/utils/discountAuth.js +157 -0
  212. package/dist/cjs/utils/discountAuth.js.map +1 -0
  213. package/dist/cjs/utils/index.js +27 -1
  214. package/dist/cjs/utils/index.js.map +1 -1
  215. package/dist/cjs/utils/instructionResult.js +76 -0
  216. package/dist/cjs/utils/instructionResult.js.map +1 -0
  217. package/dist/cjs/utils/instructions.js +12 -17
  218. package/dist/cjs/utils/instructions.js.map +1 -1
  219. package/dist/cjs/utils/lookupTable.js +143 -0
  220. package/dist/cjs/utils/lookupTable.js.map +1 -0
  221. package/dist/cjs/utils/rental.js +135 -0
  222. package/dist/cjs/utils/rental.js.map +1 -0
  223. package/dist/cjs/utils/rpc.js +57 -0
  224. package/dist/cjs/utils/rpc.js.map +1 -0
  225. package/dist/cjs/utils/signer.js +8 -8
  226. package/dist/cjs/utils/signer.js.map +1 -1
  227. package/dist/cjs/version.js +1 -1
  228. package/dist/cjs/version.js.map +1 -1
  229. package/dist/esm/accounts/borrower.js +80 -17
  230. package/dist/esm/accounts/borrower.js.map +1 -1
  231. package/dist/esm/accounts/config.js +50 -3
  232. package/dist/esm/accounts/config.js.map +1 -1
  233. package/dist/esm/accounts/contract.js +53 -3
  234. package/dist/esm/accounts/contract.js.map +1 -1
  235. package/dist/esm/accounts/fleet.js +3 -2
  236. package/dist/esm/accounts/fleet.js.map +1 -1
  237. package/dist/esm/accounts/member.js +9 -0
  238. package/dist/esm/accounts/member.js.map +1 -0
  239. package/dist/esm/accounts/owner.js +101 -0
  240. package/dist/esm/accounts/owner.js.map +1 -0
  241. package/dist/esm/accounts/rental.js +50 -3
  242. package/dist/esm/accounts/rental.js.map +1 -1
  243. package/dist/esm/demos.js +336 -33
  244. package/dist/esm/demos.js.map +1 -1
  245. package/dist/esm/generated/codama/accounts/borrowerState.js +26 -26
  246. package/dist/esm/generated/codama/accounts/borrowerState.js.map +1 -1
  247. package/dist/esm/generated/codama/accounts/configState.js +57 -50
  248. package/dist/esm/generated/codama/accounts/configState.js.map +1 -1
  249. package/dist/esm/generated/codama/accounts/contractState.js +60 -43
  250. package/dist/esm/generated/codama/accounts/contractState.js.map +1 -1
  251. package/dist/esm/generated/codama/accounts/fleet.js +90 -0
  252. package/dist/esm/generated/codama/accounts/fleet.js.map +1 -0
  253. package/dist/esm/generated/codama/accounts/index.js +7 -7
  254. package/dist/esm/generated/codama/accounts/index.js.map +1 -1
  255. package/dist/esm/generated/codama/accounts/ownerState.js +73 -0
  256. package/dist/esm/generated/codama/accounts/ownerState.js.map +1 -0
  257. package/dist/esm/generated/codama/accounts/rentalState.js +43 -30
  258. package/dist/esm/generated/codama/accounts/rentalState.js.map +1 -1
  259. package/dist/esm/generated/codama/accounts/thread.js +49 -46
  260. package/dist/esm/generated/codama/accounts/thread.js.map +1 -1
  261. package/dist/esm/generated/codama/errors/index.js +1 -1
  262. package/dist/esm/generated/codama/errors/srsly.js +62 -20
  263. package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
  264. package/dist/esm/generated/codama/index.js +5 -5
  265. package/dist/esm/generated/codama/instructions/acceptRental.js +42 -64
  266. package/dist/esm/generated/codama/instructions/acceptRental.js.map +1 -1
  267. package/dist/esm/generated/codama/instructions/activateRental.js +183 -0
  268. package/dist/esm/generated/codama/instructions/activateRental.js.map +1 -0
  269. package/dist/esm/generated/codama/instructions/cancelRental.js +53 -31
  270. package/dist/esm/generated/codama/instructions/cancelRental.js.map +1 -1
  271. package/dist/esm/generated/codama/instructions/claimBorrower.js +39 -26
  272. package/dist/esm/generated/codama/instructions/claimBorrower.js.map +1 -1
  273. package/dist/esm/generated/codama/instructions/{claimContractPayments.js → claimOwner.js} +65 -51
  274. package/dist/esm/generated/codama/instructions/claimOwner.js.map +1 -0
  275. package/dist/esm/generated/codama/instructions/claimRental.js +326 -0
  276. package/dist/esm/generated/codama/instructions/claimRental.js.map +1 -0
  277. package/dist/esm/generated/codama/instructions/closeContract.js +20 -88
  278. package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
  279. package/dist/esm/generated/codama/instructions/closeRental.js +49 -48
  280. package/dist/esm/generated/codama/instructions/closeRental.js.map +1 -1
  281. package/dist/esm/generated/codama/instructions/createConfig.js +59 -23
  282. package/dist/esm/generated/codama/instructions/createConfig.js.map +1 -1
  283. package/dist/esm/generated/codama/instructions/createContract.js +56 -40
  284. package/dist/esm/generated/codama/instructions/createContract.js.map +1 -1
  285. package/dist/esm/generated/codama/instructions/deleteConfig.js +18 -18
  286. package/dist/esm/generated/codama/instructions/deleteConfig.js.map +1 -1
  287. package/dist/esm/generated/codama/instructions/deleteContract.js +8 -8
  288. package/dist/esm/generated/codama/instructions/deleteRental.js +8 -8
  289. package/dist/esm/generated/codama/instructions/index.js +23 -20
  290. package/dist/esm/generated/codama/instructions/index.js.map +1 -1
  291. package/dist/esm/generated/codama/instructions/invalidateRental.js +146 -0
  292. package/dist/esm/generated/codama/instructions/invalidateRental.js.map +1 -0
  293. package/dist/esm/generated/codama/instructions/payRental.js +67 -27
  294. package/dist/esm/generated/codama/instructions/payRental.js.map +1 -1
  295. package/dist/esm/generated/codama/instructions/releaseRental.js +11 -52
  296. package/dist/esm/generated/codama/instructions/releaseRental.js.map +1 -1
  297. package/dist/esm/generated/codama/instructions/reserveRental.js +44 -25
  298. package/dist/esm/generated/codama/instructions/reserveRental.js.map +1 -1
  299. package/dist/esm/generated/codama/instructions/scheduleRental.js +255 -0
  300. package/dist/esm/generated/codama/instructions/scheduleRental.js.map +1 -0
  301. package/dist/esm/generated/codama/instructions/setDelegate.js +70 -0
  302. package/dist/esm/generated/codama/instructions/setDelegate.js.map +1 -0
  303. package/dist/esm/generated/codama/instructions/updateBorrower.js +12 -12
  304. package/dist/esm/generated/codama/instructions/updateBorrower.js.map +1 -1
  305. package/dist/esm/generated/codama/instructions/updateConfig.js +47 -49
  306. package/dist/esm/generated/codama/instructions/updateConfig.js.map +1 -1
  307. package/dist/esm/generated/codama/instructions/updateContract.js +27 -25
  308. package/dist/esm/generated/codama/instructions/updateContract.js.map +1 -1
  309. package/dist/esm/generated/codama/instructions/updateOwner.js +70 -0
  310. package/dist/esm/generated/codama/instructions/updateOwner.js.map +1 -0
  311. package/dist/esm/generated/codama/programs/index.js +1 -1
  312. package/dist/esm/generated/codama/programs/srsly.js +49 -37
  313. package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
  314. package/dist/esm/generated/codama/shared/index.js +9 -9
  315. package/dist/esm/generated/codama/types/atlasClaimed.js +28 -0
  316. package/dist/esm/generated/codama/types/atlasClaimed.js.map +1 -0
  317. package/dist/esm/generated/codama/types/borrowerInitialized.js +24 -0
  318. package/dist/esm/generated/codama/types/borrowerInitialized.js.map +1 -0
  319. package/dist/esm/generated/codama/types/cargoStats.js +38 -0
  320. package/dist/esm/generated/codama/types/cargoStats.js.map +1 -0
  321. package/dist/esm/generated/codama/types/contractClosed.js +26 -0
  322. package/dist/esm/generated/codama/types/contractClosed.js.map +1 -0
  323. package/dist/esm/generated/codama/types/contractCreated.js +28 -0
  324. package/dist/esm/generated/codama/types/contractCreated.js.map +1 -0
  325. package/dist/esm/generated/codama/types/contractDelegateSet.js +26 -0
  326. package/dist/esm/generated/codama/types/contractDelegateSet.js.map +1 -0
  327. package/dist/esm/generated/codama/types/contractPendingClose.js +26 -0
  328. package/dist/esm/generated/codama/types/contractPendingClose.js.map +1 -0
  329. package/dist/esm/generated/codama/types/contractUpdated.js +29 -0
  330. package/dist/esm/generated/codama/types/contractUpdated.js.map +1 -0
  331. package/dist/esm/generated/codama/types/discountAuthorization.js +28 -0
  332. package/dist/esm/generated/codama/types/discountAuthorization.js.map +1 -0
  333. package/dist/esm/generated/codama/types/fieldUpdate.js +24 -0
  334. package/dist/esm/generated/codama/types/fieldUpdate.js.map +1 -0
  335. package/dist/esm/generated/codama/types/index.js +29 -7
  336. package/dist/esm/generated/codama/types/index.js.map +1 -1
  337. package/dist/esm/generated/codama/types/miscStats.js +42 -0
  338. package/dist/esm/generated/codama/types/miscStats.js.map +1 -0
  339. package/dist/esm/generated/codama/types/movementStats.js +34 -0
  340. package/dist/esm/generated/codama/types/movementStats.js.map +1 -0
  341. package/dist/esm/generated/codama/types/optionalNonSystemPubkey.js +18 -0
  342. package/dist/esm/generated/codama/types/optionalNonSystemPubkey.js.map +1 -0
  343. package/dist/esm/generated/codama/types/paymentFrequency.js +1 -1
  344. package/dist/esm/generated/codama/types/rentalAccepted.js +38 -0
  345. package/dist/esm/generated/codama/types/rentalAccepted.js.map +1 -0
  346. package/dist/esm/generated/codama/types/rentalActivated.js +26 -0
  347. package/dist/esm/generated/codama/types/rentalActivated.js.map +1 -0
  348. package/dist/esm/generated/codama/types/rentalCancelled.js +30 -0
  349. package/dist/esm/generated/codama/types/rentalCancelled.js.map +1 -0
  350. package/dist/esm/generated/codama/types/rentalClaimed.js +36 -0
  351. package/dist/esm/generated/codama/types/rentalClaimed.js.map +1 -0
  352. package/dist/esm/generated/codama/types/rentalClosed.js +28 -0
  353. package/dist/esm/generated/codama/types/rentalClosed.js.map +1 -0
  354. package/dist/esm/generated/codama/types/rentalPaymentProcessed.js +28 -0
  355. package/dist/esm/generated/codama/types/rentalPaymentProcessed.js.map +1 -0
  356. package/dist/esm/generated/codama/types/rentalScheduled.js +30 -0
  357. package/dist/esm/generated/codama/types/rentalScheduled.js.map +1 -0
  358. package/dist/esm/generated/codama/types/rentalStatus.js +25 -0
  359. package/dist/esm/generated/codama/types/rentalStatus.js.map +1 -0
  360. package/dist/esm/generated/codama/types/reservationCreated.js +30 -0
  361. package/dist/esm/generated/codama/types/reservationCreated.js.map +1 -0
  362. package/dist/esm/generated/codama/types/reservationKnockoff.js +30 -0
  363. package/dist/esm/generated/codama/types/reservationKnockoff.js.map +1 -0
  364. package/dist/esm/generated/codama/types/schedule.js +15 -15
  365. package/dist/esm/generated/codama/types/shipCounts.js +40 -0
  366. package/dist/esm/generated/codama/types/shipCounts.js.map +1 -0
  367. package/dist/esm/generated/codama/types/shipStats.js +27 -0
  368. package/dist/esm/generated/codama/types/shipStats.js.map +1 -0
  369. package/dist/esm/generated/codama/types/signal.js +14 -14
  370. package/dist/esm/generated/codama/types/trigger.js +37 -37
  371. package/dist/esm/index.js +38 -13
  372. package/dist/esm/index.js.map +1 -1
  373. package/dist/esm/instructions/acceptRental.js +84 -26
  374. package/dist/esm/instructions/acceptRental.js.map +1 -1
  375. package/dist/esm/instructions/approveAffiliate.js +7 -0
  376. package/dist/esm/instructions/approveAffiliate.js.map +1 -0
  377. package/dist/esm/instructions/cancelRental.js +12 -5
  378. package/dist/esm/instructions/cancelRental.js.map +1 -1
  379. package/dist/esm/instructions/claimBorrower.js +8 -4
  380. package/dist/esm/instructions/claimBorrower.js.map +1 -1
  381. package/dist/esm/instructions/claimRental.js +198 -0
  382. package/dist/esm/instructions/claimRental.js.map +1 -0
  383. package/dist/esm/instructions/closeContract.js +4 -3
  384. package/dist/esm/instructions/closeContract.js.map +1 -1
  385. package/dist/esm/instructions/closeRental.js +43 -13
  386. package/dist/esm/instructions/closeRental.js.map +1 -1
  387. package/dist/esm/instructions/createAffiliate.js +70 -0
  388. package/dist/esm/instructions/createAffiliate.js.map +1 -0
  389. package/dist/esm/instructions/createConfig.js +12 -0
  390. package/dist/esm/instructions/createConfig.js.map +1 -1
  391. package/dist/esm/instructions/createContract.js +12 -5
  392. package/dist/esm/instructions/createContract.js.map +1 -1
  393. package/dist/esm/instructions/deleteConfig.js +17 -6
  394. package/dist/esm/instructions/deleteConfig.js.map +1 -1
  395. package/dist/esm/instructions/deleteContract.js +76 -0
  396. package/dist/esm/instructions/deleteContract.js.map +1 -0
  397. package/dist/esm/instructions/index.js +29 -0
  398. package/dist/esm/instructions/index.js.map +1 -0
  399. package/dist/esm/instructions/invalidateRental.js +98 -0
  400. package/dist/esm/instructions/invalidateRental.js.map +1 -0
  401. package/dist/esm/instructions/ownerClaim.js +107 -0
  402. package/dist/esm/instructions/ownerClaim.js.map +1 -0
  403. package/dist/esm/instructions/ownerUpdate.js +65 -0
  404. package/dist/esm/instructions/ownerUpdate.js.map +1 -0
  405. package/dist/esm/instructions/releaseRental.js +20 -53
  406. package/dist/esm/instructions/releaseRental.js.map +1 -1
  407. package/dist/esm/instructions/removeAffiliate.js +7 -0
  408. package/dist/esm/instructions/removeAffiliate.js.map +1 -0
  409. package/dist/esm/instructions/reserveRental.js +10 -8
  410. package/dist/esm/instructions/reserveRental.js.map +1 -1
  411. package/dist/esm/instructions/setDelegate.js +69 -0
  412. package/dist/esm/instructions/setDelegate.js.map +1 -0
  413. package/dist/esm/instructions/updateAffiliate.js +54 -0
  414. package/dist/esm/instructions/updateAffiliate.js.map +1 -0
  415. package/dist/esm/instructions/updateBorrower.js +4 -2
  416. package/dist/esm/instructions/updateBorrower.js.map +1 -1
  417. package/dist/esm/instructions/updateConfig.js +0 -1
  418. package/dist/esm/instructions/updateConfig.js.map +1 -1
  419. package/dist/esm/instructions/updateContract.js +12 -5
  420. package/dist/esm/instructions/updateContract.js.map +1 -1
  421. package/dist/esm/kit/index.js +18 -0
  422. package/dist/esm/kit/index.js.map +1 -0
  423. package/dist/esm/legacy/index.js +86 -0
  424. package/dist/esm/legacy/index.js.map +1 -0
  425. package/dist/esm/package.json +9 -5
  426. package/dist/esm/params/amount.js +4 -4
  427. package/dist/esm/pda/constants.js +1 -0
  428. package/dist/esm/pda/constants.js.map +1 -1
  429. package/dist/esm/pda/index.js +5 -3
  430. package/dist/esm/pda/index.js.map +1 -1
  431. package/dist/esm/pda/lookupTable.js +56 -0
  432. package/dist/esm/pda/lookupTable.js.map +1 -0
  433. package/dist/esm/pda/slyvault.js +2 -47
  434. package/dist/esm/pda/slyvault.js.map +1 -1
  435. package/dist/esm/pda/srsly.js +32 -7
  436. package/dist/esm/pda/srsly.js.map +1 -1
  437. package/dist/esm/pda/thread.js +2 -2
  438. package/dist/esm/utils/addresses.js +7 -1
  439. package/dist/esm/utils/addresses.js.map +1 -1
  440. package/dist/esm/utils/config.js +19 -2
  441. package/dist/esm/utils/config.js.map +1 -1
  442. package/dist/esm/utils/discountAuth.js +151 -0
  443. package/dist/esm/utils/discountAuth.js.map +1 -0
  444. package/dist/esm/utils/index.js +11 -1
  445. package/dist/esm/utils/index.js.map +1 -1
  446. package/dist/esm/utils/instructionResult.js +72 -0
  447. package/dist/esm/utils/instructionResult.js.map +1 -0
  448. package/dist/esm/utils/instructions.js +12 -17
  449. package/dist/esm/utils/instructions.js.map +1 -1
  450. package/dist/esm/utils/lookupTable.js +139 -0
  451. package/dist/esm/utils/lookupTable.js.map +1 -0
  452. package/dist/esm/utils/rental.js +129 -0
  453. package/dist/esm/utils/rental.js.map +1 -0
  454. package/dist/esm/utils/rpc.js +52 -0
  455. package/dist/esm/utils/rpc.js.map +1 -0
  456. package/dist/esm/utils/signer.js +8 -8
  457. package/dist/esm/utils/signer.js.map +1 -1
  458. package/dist/esm/version.js +1 -1
  459. package/dist/esm/version.js.map +1 -1
  460. package/dist/idl/srsly.json +7364 -0
  461. package/dist/types/accounts/borrower.d.ts +33 -9
  462. package/dist/types/accounts/borrower.d.ts.map +1 -1
  463. package/dist/types/accounts/config.d.ts +19 -0
  464. package/dist/types/accounts/config.d.ts.map +1 -1
  465. package/dist/types/accounts/contract.d.ts +19 -0
  466. package/dist/types/accounts/contract.d.ts.map +1 -1
  467. package/dist/types/accounts/fleet.d.ts.map +1 -1
  468. package/dist/types/accounts/member.d.ts +9 -0
  469. package/dist/types/accounts/member.d.ts.map +1 -0
  470. package/dist/types/accounts/owner.d.ts +52 -0
  471. package/dist/types/accounts/owner.d.ts.map +1 -0
  472. package/dist/types/accounts/rental.d.ts +19 -0
  473. package/dist/types/accounts/rental.d.ts.map +1 -1
  474. package/dist/types/demos.d.ts +47 -2
  475. package/dist/types/demos.d.ts.map +1 -1
  476. package/dist/types/generated/codama/accounts/borrowerState.d.ts +12 -20
  477. package/dist/types/generated/codama/accounts/borrowerState.d.ts.map +1 -1
  478. package/dist/types/generated/codama/accounts/configState.d.ts +23 -6
  479. package/dist/types/generated/codama/accounts/configState.d.ts.map +1 -1
  480. package/dist/types/generated/codama/accounts/contractState.d.ts +64 -19
  481. package/dist/types/generated/codama/accounts/contractState.d.ts.map +1 -1
  482. package/dist/types/generated/codama/accounts/fleet.d.ts +64 -0
  483. package/dist/types/generated/codama/accounts/fleet.d.ts.map +1 -0
  484. package/dist/types/generated/codama/accounts/index.d.ts +7 -7
  485. package/dist/types/generated/codama/accounts/index.d.ts.map +1 -1
  486. package/dist/types/generated/codama/accounts/ownerState.d.ts +65 -0
  487. package/dist/types/generated/codama/accounts/ownerState.d.ts.map +1 -0
  488. package/dist/types/generated/codama/accounts/rentalState.d.ts +32 -5
  489. package/dist/types/generated/codama/accounts/rentalState.d.ts.map +1 -1
  490. package/dist/types/generated/codama/accounts/thread.d.ts +5 -2
  491. package/dist/types/generated/codama/accounts/thread.d.ts.map +1 -1
  492. package/dist/types/generated/codama/errors/index.d.ts +1 -1
  493. package/dist/types/generated/codama/errors/srsly.d.ts +43 -15
  494. package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
  495. package/dist/types/generated/codama/index.d.ts +5 -5
  496. package/dist/types/generated/codama/instructions/acceptRental.d.ts +28 -27
  497. package/dist/types/generated/codama/instructions/acceptRental.d.ts.map +1 -1
  498. package/dist/types/generated/codama/instructions/activateRental.d.ts +90 -0
  499. package/dist/types/generated/codama/instructions/activateRental.d.ts.map +1 -0
  500. package/dist/types/generated/codama/instructions/cancelRental.d.ts +25 -13
  501. package/dist/types/generated/codama/instructions/cancelRental.d.ts.map +1 -1
  502. package/dist/types/generated/codama/instructions/claimBorrower.d.ts +33 -21
  503. package/dist/types/generated/codama/instructions/claimBorrower.d.ts.map +1 -1
  504. package/dist/types/generated/codama/instructions/claimOwner.d.ts +91 -0
  505. package/dist/types/generated/codama/instructions/claimOwner.d.ts.map +1 -0
  506. package/dist/types/generated/codama/instructions/claimRental.d.ts +133 -0
  507. package/dist/types/generated/codama/instructions/claimRental.d.ts.map +1 -0
  508. package/dist/types/generated/codama/instructions/closeContract.d.ts +20 -29
  509. package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
  510. package/dist/types/generated/codama/instructions/closeRental.d.ts +45 -24
  511. package/dist/types/generated/codama/instructions/closeRental.d.ts.map +1 -1
  512. package/dist/types/generated/codama/instructions/createConfig.d.ts +36 -15
  513. package/dist/types/generated/codama/instructions/createConfig.d.ts.map +1 -1
  514. package/dist/types/generated/codama/instructions/createContract.d.ts +47 -36
  515. package/dist/types/generated/codama/instructions/createContract.d.ts.map +1 -1
  516. package/dist/types/generated/codama/instructions/deleteConfig.d.ts +3 -3
  517. package/dist/types/generated/codama/instructions/deleteConfig.d.ts.map +1 -1
  518. package/dist/types/generated/codama/instructions/deleteContract.d.ts +2 -2
  519. package/dist/types/generated/codama/instructions/deleteRental.d.ts +2 -2
  520. package/dist/types/generated/codama/instructions/index.d.ts +23 -20
  521. package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
  522. package/dist/types/generated/codama/instructions/invalidateRental.d.ts +89 -0
  523. package/dist/types/generated/codama/instructions/invalidateRental.d.ts.map +1 -0
  524. package/dist/types/generated/codama/instructions/payRental.d.ts +50 -28
  525. package/dist/types/generated/codama/instructions/payRental.d.ts.map +1 -1
  526. package/dist/types/generated/codama/instructions/releaseRental.d.ts +42 -49
  527. package/dist/types/generated/codama/instructions/releaseRental.d.ts.map +1 -1
  528. package/dist/types/generated/codama/instructions/reserveRental.d.ts +25 -21
  529. package/dist/types/generated/codama/instructions/reserveRental.d.ts.map +1 -1
  530. package/dist/types/generated/codama/instructions/scheduleRental.d.ts +114 -0
  531. package/dist/types/generated/codama/instructions/scheduleRental.d.ts.map +1 -0
  532. package/dist/types/generated/codama/instructions/setDelegate.d.ts +44 -0
  533. package/dist/types/generated/codama/instructions/setDelegate.d.ts.map +1 -0
  534. package/dist/types/generated/codama/instructions/updateBorrower.d.ts +5 -5
  535. package/dist/types/generated/codama/instructions/updateBorrower.d.ts.map +1 -1
  536. package/dist/types/generated/codama/instructions/updateConfig.d.ts +41 -47
  537. package/dist/types/generated/codama/instructions/updateConfig.d.ts.map +1 -1
  538. package/dist/types/generated/codama/instructions/updateContract.d.ts +37 -31
  539. package/dist/types/generated/codama/instructions/updateContract.d.ts.map +1 -1
  540. package/dist/types/generated/codama/instructions/updateOwner.d.ts +44 -0
  541. package/dist/types/generated/codama/instructions/updateOwner.d.ts.map +1 -0
  542. package/dist/types/generated/codama/programs/index.d.ts +1 -1
  543. package/dist/types/generated/codama/programs/srsly.d.ts +39 -30
  544. package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
  545. package/dist/types/generated/codama/shared/index.d.ts +2 -2
  546. package/dist/types/generated/codama/types/atlasClaimed.d.ts +24 -0
  547. package/dist/types/generated/codama/types/atlasClaimed.d.ts.map +1 -0
  548. package/dist/types/generated/codama/types/borrowerInitialized.d.ts +17 -0
  549. package/dist/types/generated/codama/types/borrowerInitialized.d.ts.map +1 -0
  550. package/dist/types/generated/codama/types/cargoStats.d.ts +25 -0
  551. package/dist/types/generated/codama/types/cargoStats.d.ts.map +1 -0
  552. package/dist/types/generated/codama/types/contractClosed.d.ts +18 -0
  553. package/dist/types/generated/codama/types/contractClosed.d.ts.map +1 -0
  554. package/dist/types/generated/codama/types/contractCreated.d.ts +24 -0
  555. package/dist/types/generated/codama/types/contractCreated.d.ts.map +1 -0
  556. package/dist/types/generated/codama/types/contractDelegateSet.d.ts +22 -0
  557. package/dist/types/generated/codama/types/contractDelegateSet.d.ts.map +1 -0
  558. package/dist/types/generated/codama/types/contractPendingClose.d.ts +18 -0
  559. package/dist/types/generated/codama/types/contractPendingClose.d.ts.map +1 -0
  560. package/dist/types/generated/codama/types/contractUpdated.d.ts +27 -0
  561. package/dist/types/generated/codama/types/contractUpdated.d.ts.map +1 -0
  562. package/dist/types/generated/codama/types/discountAuthorization.d.ts +36 -0
  563. package/dist/types/generated/codama/types/discountAuthorization.d.ts.map +1 -0
  564. package/dist/types/generated/codama/types/fieldUpdate.d.ts +20 -0
  565. package/dist/types/generated/codama/types/fieldUpdate.d.ts.map +1 -0
  566. package/dist/types/generated/codama/types/index.d.ts +29 -7
  567. package/dist/types/generated/codama/types/index.d.ts.map +1 -1
  568. package/dist/types/generated/codama/types/miscStats.d.ts +27 -0
  569. package/dist/types/generated/codama/types/miscStats.d.ts.map +1 -0
  570. package/dist/types/generated/codama/types/movementStats.d.ts +23 -0
  571. package/dist/types/generated/codama/types/movementStats.d.ts.map +1 -0
  572. package/dist/types/generated/codama/types/optionalNonSystemPubkey.d.ts +17 -0
  573. package/dist/types/generated/codama/types/optionalNonSystemPubkey.d.ts.map +1 -0
  574. package/dist/types/generated/codama/types/paymentFrequency.d.ts +1 -1
  575. package/dist/types/generated/codama/types/rentalAccepted.d.ts +34 -0
  576. package/dist/types/generated/codama/types/rentalAccepted.d.ts.map +1 -0
  577. package/dist/types/generated/codama/types/rentalActivated.d.ts +18 -0
  578. package/dist/types/generated/codama/types/rentalActivated.d.ts.map +1 -0
  579. package/dist/types/generated/codama/types/rentalCancelled.d.ts +26 -0
  580. package/dist/types/generated/codama/types/rentalCancelled.d.ts.map +1 -0
  581. package/dist/types/generated/codama/types/rentalClaimed.d.ts +32 -0
  582. package/dist/types/generated/codama/types/rentalClaimed.d.ts.map +1 -0
  583. package/dist/types/generated/codama/types/rentalClosed.d.ts +19 -0
  584. package/dist/types/generated/codama/types/rentalClosed.d.ts.map +1 -0
  585. package/dist/types/generated/codama/types/rentalPaymentProcessed.d.ts +24 -0
  586. package/dist/types/generated/codama/types/rentalPaymentProcessed.d.ts.map +1 -0
  587. package/dist/types/generated/codama/types/rentalScheduled.d.ts +20 -0
  588. package/dist/types/generated/codama/types/rentalScheduled.d.ts.map +1 -0
  589. package/dist/types/generated/codama/types/rentalStatus.d.ts +19 -0
  590. package/dist/types/generated/codama/types/rentalStatus.d.ts.map +1 -0
  591. package/dist/types/generated/codama/types/reservationCreated.d.ts +26 -0
  592. package/dist/types/generated/codama/types/reservationCreated.d.ts.map +1 -0
  593. package/dist/types/generated/codama/types/reservationKnockoff.d.ts +26 -0
  594. package/dist/types/generated/codama/types/reservationKnockoff.d.ts.map +1 -0
  595. package/dist/types/generated/codama/types/schedule.d.ts +11 -11
  596. package/dist/types/generated/codama/types/shipCounts.d.ts +26 -0
  597. package/dist/types/generated/codama/types/shipCounts.d.ts.map +1 -0
  598. package/dist/types/generated/codama/types/shipStats.d.ts +24 -0
  599. package/dist/types/generated/codama/types/shipStats.d.ts.map +1 -0
  600. package/dist/types/generated/codama/types/signal.d.ts +21 -21
  601. package/dist/types/generated/codama/types/trigger.d.ts +23 -23
  602. package/dist/types/index.d.ts +20 -11
  603. package/dist/types/index.d.ts.map +1 -1
  604. package/dist/types/instructions/acceptRental.d.ts +31 -2
  605. package/dist/types/instructions/acceptRental.d.ts.map +1 -1
  606. package/dist/types/instructions/approveAffiliate.d.ts +7 -0
  607. package/dist/types/instructions/approveAffiliate.d.ts.map +1 -0
  608. package/dist/types/instructions/cancelRental.d.ts +5 -0
  609. package/dist/types/instructions/cancelRental.d.ts.map +1 -1
  610. package/dist/types/instructions/claimBorrower.d.ts +6 -0
  611. package/dist/types/instructions/claimBorrower.d.ts.map +1 -1
  612. package/dist/types/instructions/claimRental.d.ts +114 -0
  613. package/dist/types/instructions/claimRental.d.ts.map +1 -0
  614. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  615. package/dist/types/instructions/closeRental.d.ts +12 -5
  616. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  617. package/dist/types/instructions/createAffiliate.d.ts +66 -0
  618. package/dist/types/instructions/createAffiliate.d.ts.map +1 -0
  619. package/dist/types/instructions/createConfig.d.ts +10 -0
  620. package/dist/types/instructions/createConfig.d.ts.map +1 -1
  621. package/dist/types/instructions/createContract.d.ts +17 -9
  622. package/dist/types/instructions/createContract.d.ts.map +1 -1
  623. package/dist/types/instructions/deleteConfig.d.ts +4 -2
  624. package/dist/types/instructions/deleteConfig.d.ts.map +1 -1
  625. package/dist/types/instructions/deleteContract.d.ts +60 -0
  626. package/dist/types/instructions/deleteContract.d.ts.map +1 -0
  627. package/dist/types/instructions/index.d.ts +29 -0
  628. package/dist/types/instructions/index.d.ts.map +1 -0
  629. package/dist/types/instructions/invalidateRental.d.ts +86 -0
  630. package/dist/types/instructions/invalidateRental.d.ts.map +1 -0
  631. package/dist/types/instructions/ownerClaim.d.ts +72 -0
  632. package/dist/types/instructions/ownerClaim.d.ts.map +1 -0
  633. package/dist/types/instructions/ownerUpdate.d.ts +57 -0
  634. package/dist/types/instructions/ownerUpdate.d.ts.map +1 -0
  635. package/dist/types/instructions/releaseRental.d.ts +19 -39
  636. package/dist/types/instructions/releaseRental.d.ts.map +1 -1
  637. package/dist/types/instructions/removeAffiliate.d.ts +7 -0
  638. package/dist/types/instructions/removeAffiliate.d.ts.map +1 -0
  639. package/dist/types/instructions/reserveRental.d.ts.map +1 -1
  640. package/dist/types/instructions/setDelegate.d.ts +63 -0
  641. package/dist/types/instructions/setDelegate.d.ts.map +1 -0
  642. package/dist/types/instructions/updateAffiliate.d.ts +64 -0
  643. package/dist/types/instructions/updateAffiliate.d.ts.map +1 -0
  644. package/dist/types/instructions/updateBorrower.d.ts.map +1 -1
  645. package/dist/types/instructions/updateConfig.d.ts.map +1 -1
  646. package/dist/types/instructions/updateContract.d.ts +13 -4
  647. package/dist/types/instructions/updateContract.d.ts.map +1 -1
  648. package/dist/types/kit/index.d.ts +18 -0
  649. package/dist/types/kit/index.d.ts.map +1 -0
  650. package/dist/types/legacy/index.d.ts +90 -0
  651. package/dist/types/legacy/index.d.ts.map +1 -0
  652. package/dist/types/params/amount.d.ts +3 -3
  653. package/dist/types/pda/constants.d.ts +1 -0
  654. package/dist/types/pda/constants.d.ts.map +1 -1
  655. package/dist/types/pda/index.d.ts +4 -3
  656. package/dist/types/pda/index.d.ts.map +1 -1
  657. package/dist/types/pda/lookupTable.d.ts +29 -0
  658. package/dist/types/pda/lookupTable.d.ts.map +1 -0
  659. package/dist/types/pda/slyvault.d.ts +2 -23
  660. package/dist/types/pda/slyvault.d.ts.map +1 -1
  661. package/dist/types/pda/srsly.d.ts +17 -3
  662. package/dist/types/pda/srsly.d.ts.map +1 -1
  663. package/dist/types/pda/thread.d.ts +2 -2
  664. package/dist/types/utils/addresses.d.ts +7 -1
  665. package/dist/types/utils/addresses.d.ts.map +1 -1
  666. package/dist/types/utils/config.d.ts +48 -0
  667. package/dist/types/utils/config.d.ts.map +1 -1
  668. package/dist/types/utils/discountAuth.d.ts +90 -0
  669. package/dist/types/utils/discountAuth.d.ts.map +1 -0
  670. package/dist/types/utils/index.d.ts +6 -1
  671. package/dist/types/utils/index.d.ts.map +1 -1
  672. package/dist/types/utils/instructionResult.d.ts +57 -0
  673. package/dist/types/utils/instructionResult.d.ts.map +1 -0
  674. package/dist/types/utils/instructions.d.ts +16 -18
  675. package/dist/types/utils/instructions.d.ts.map +1 -1
  676. package/dist/types/utils/lookupTable.d.ts +48 -0
  677. package/dist/types/utils/lookupTable.d.ts.map +1 -0
  678. package/dist/types/utils/rental.d.ts +80 -0
  679. package/dist/types/utils/rental.d.ts.map +1 -0
  680. package/dist/types/utils/rpc.d.ts +37 -0
  681. package/dist/types/utils/rpc.d.ts.map +1 -0
  682. package/dist/types/utils/signer.d.ts +2 -2
  683. package/dist/types/utils/signer.d.ts.map +1 -1
  684. package/dist/types/version.d.ts +1 -1
  685. package/dist/types/version.d.ts.map +1 -1
  686. package/package.json +40 -21
  687. package/dist/cjs/generated/codama/accounts/memberState.js +0 -78
  688. package/dist/cjs/generated/codama/accounts/memberState.js.map +0 -1
  689. package/dist/cjs/generated/codama/accounts/vaultState.js +0 -82
  690. package/dist/cjs/generated/codama/accounts/vaultState.js.map +0 -1
  691. package/dist/cjs/generated/codama/instructions/captureRental.js +0 -129
  692. package/dist/cjs/generated/codama/instructions/captureRental.js.map +0 -1
  693. package/dist/cjs/generated/codama/instructions/claimBorrowerPayments.js +0 -225
  694. package/dist/cjs/generated/codama/instructions/claimBorrowerPayments.js.map +0 -1
  695. package/dist/cjs/generated/codama/instructions/claimContractPayments.js.map +0 -1
  696. package/dist/cjs/generated/codama/instructions/closeBorrower.js +0 -84
  697. package/dist/cjs/generated/codama/instructions/closeBorrower.js.map +0 -1
  698. package/dist/cjs/generated/codama/instructions/deleteBorrower.js +0 -126
  699. package/dist/cjs/generated/codama/instructions/deleteBorrower.js.map +0 -1
  700. package/dist/cjs/generated/codama/instructions/discountBorrower.js +0 -118
  701. package/dist/cjs/generated/codama/instructions/discountBorrower.js.map +0 -1
  702. package/dist/cjs/generated/codama/types/capturedFlagData.js +0 -31
  703. package/dist/cjs/generated/codama/types/capturedFlagData.js.map +0 -1
  704. package/dist/cjs/generated/codama/types/memberConfig.js +0 -33
  705. package/dist/cjs/generated/codama/types/memberConfig.js.map +0 -1
  706. package/dist/cjs/generated/codama/types/memberType.js +0 -55
  707. package/dist/cjs/generated/codama/types/memberType.js.map +0 -1
  708. package/dist/cjs/instructions/captureRental.js +0 -85
  709. package/dist/cjs/instructions/captureRental.js.map +0 -1
  710. package/dist/cjs/instructions/claimBorrowerPayments.js +0 -69
  711. package/dist/cjs/instructions/claimBorrowerPayments.js.map +0 -1
  712. package/dist/cjs/instructions/claimContractPayments.js +0 -79
  713. package/dist/cjs/instructions/claimContractPayments.js.map +0 -1
  714. package/dist/cjs/instructions/closeBorrower.js +0 -60
  715. package/dist/cjs/instructions/closeBorrower.js.map +0 -1
  716. package/dist/cjs/instructions/deleteBorrower.js +0 -60
  717. package/dist/cjs/instructions/deleteBorrower.js.map +0 -1
  718. package/dist/cjs/instructions/discountBorrower.js +0 -75
  719. package/dist/cjs/instructions/discountBorrower.js.map +0 -1
  720. package/dist/esm/generated/codama/accounts/memberState.js +0 -66
  721. package/dist/esm/generated/codama/accounts/memberState.js.map +0 -1
  722. package/dist/esm/generated/codama/accounts/vaultState.js +0 -70
  723. package/dist/esm/generated/codama/accounts/vaultState.js.map +0 -1
  724. package/dist/esm/generated/codama/instructions/captureRental.js +0 -119
  725. package/dist/esm/generated/codama/instructions/captureRental.js.map +0 -1
  726. package/dist/esm/generated/codama/instructions/claimContractPayments.js.map +0 -1
  727. package/dist/esm/generated/codama/instructions/closeBorrower.js +0 -75
  728. package/dist/esm/generated/codama/instructions/closeBorrower.js.map +0 -1
  729. package/dist/esm/generated/codama/instructions/deleteBorrower.js +0 -116
  730. package/dist/esm/generated/codama/instructions/deleteBorrower.js.map +0 -1
  731. package/dist/esm/generated/codama/instructions/discountBorrower.js +0 -108
  732. package/dist/esm/generated/codama/instructions/discountBorrower.js.map +0 -1
  733. package/dist/esm/generated/codama/types/capturedFlagData.js +0 -26
  734. package/dist/esm/generated/codama/types/capturedFlagData.js.map +0 -1
  735. package/dist/esm/generated/codama/types/memberConfig.js +0 -28
  736. package/dist/esm/generated/codama/types/memberConfig.js.map +0 -1
  737. package/dist/esm/generated/codama/types/memberType.js +0 -48
  738. package/dist/esm/generated/codama/types/memberType.js.map +0 -1
  739. package/dist/esm/instructions/captureRental.js +0 -82
  740. package/dist/esm/instructions/captureRental.js.map +0 -1
  741. package/dist/esm/instructions/claimContractPayments.js +0 -76
  742. package/dist/esm/instructions/claimContractPayments.js.map +0 -1
  743. package/dist/esm/instructions/closeBorrower.js +0 -57
  744. package/dist/esm/instructions/closeBorrower.js.map +0 -1
  745. package/dist/esm/instructions/deleteBorrower.js +0 -57
  746. package/dist/esm/instructions/deleteBorrower.js.map +0 -1
  747. package/dist/esm/instructions/discountBorrower.js +0 -72
  748. package/dist/esm/instructions/discountBorrower.js.map +0 -1
  749. package/dist/types/generated/codama/accounts/memberState.d.ts +0 -58
  750. package/dist/types/generated/codama/accounts/memberState.d.ts.map +0 -1
  751. package/dist/types/generated/codama/accounts/vaultState.d.ts +0 -66
  752. package/dist/types/generated/codama/accounts/vaultState.d.ts.map +0 -1
  753. package/dist/types/generated/codama/instructions/captureRental.d.ts +0 -59
  754. package/dist/types/generated/codama/instructions/captureRental.d.ts.map +0 -1
  755. package/dist/types/generated/codama/instructions/claimBorrowerPayments.d.ts +0 -75
  756. package/dist/types/generated/codama/instructions/claimBorrowerPayments.d.ts.map +0 -1
  757. package/dist/types/generated/codama/instructions/claimContractPayments.d.ts +0 -98
  758. package/dist/types/generated/codama/instructions/claimContractPayments.d.ts.map +0 -1
  759. package/dist/types/generated/codama/instructions/closeBorrower.d.ts +0 -43
  760. package/dist/types/generated/codama/instructions/closeBorrower.d.ts.map +0 -1
  761. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts +0 -55
  762. package/dist/types/generated/codama/instructions/deleteBorrower.d.ts.map +0 -1
  763. package/dist/types/generated/codama/instructions/discountBorrower.d.ts +0 -56
  764. package/dist/types/generated/codama/instructions/discountBorrower.d.ts.map +0 -1
  765. package/dist/types/generated/codama/types/capturedFlagData.d.ts +0 -35
  766. package/dist/types/generated/codama/types/capturedFlagData.d.ts.map +0 -1
  767. package/dist/types/generated/codama/types/memberConfig.d.ts +0 -33
  768. package/dist/types/generated/codama/types/memberConfig.d.ts.map +0 -1
  769. package/dist/types/generated/codama/types/memberType.d.ts +0 -48
  770. package/dist/types/generated/codama/types/memberType.d.ts.map +0 -1
  771. package/dist/types/instructions/captureRental.d.ts +0 -58
  772. package/dist/types/instructions/captureRental.d.ts.map +0 -1
  773. package/dist/types/instructions/claimBorrowerPayments.d.ts +0 -59
  774. package/dist/types/instructions/claimBorrowerPayments.d.ts.map +0 -1
  775. package/dist/types/instructions/claimContractPayments.d.ts +0 -78
  776. package/dist/types/instructions/claimContractPayments.d.ts.map +0 -1
  777. package/dist/types/instructions/closeBorrower.d.ts +0 -45
  778. package/dist/types/instructions/closeBorrower.d.ts.map +0 -1
  779. package/dist/types/instructions/deleteBorrower.d.ts +0 -53
  780. package/dist/types/instructions/deleteBorrower.d.ts.map +0 -1
  781. package/dist/types/instructions/discountBorrower.d.ts +0 -64
  782. package/dist/types/instructions/discountBorrower.d.ts.map +0 -1
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @purpose Discount authorization helper for server-side signing
3
+ * @module utils/discountAuth
4
+ */
5
+ import { address, createKeyPairSignerFromBytes } from '@solana/kit';
6
+ import { createDiscountAuth as slyvaultCreateDiscountAuth, fetchMember } from '@wuwei-labs/slyvault';
7
+ import { getRpcUrl, mergeConfig } from './config';
8
+ import { createRpc } from './rpc';
9
+ /**
10
+ * Parse a stringified keypair (JSON array of bytes) into a KeyPairSigner
11
+ */
12
+ async function parseKeypairString(keypairString) {
13
+ try {
14
+ const bytes = JSON.parse(keypairString);
15
+ if (!Array.isArray(bytes) || bytes.length !== 64) {
16
+ throw new Error('Invalid keypair: expected array of 64 bytes');
17
+ }
18
+ return await createKeyPairSignerFromBytes(new Uint8Array(bytes));
19
+ }
20
+ catch (e) {
21
+ throw new Error(`Failed to parse keypair string: ${e.message}`);
22
+ }
23
+ }
24
+ /**
25
+ * Browser-compatible base64 encoding (Uint8Array -> string)
26
+ */
27
+ function uint8ArrayToBase64(bytes) {
28
+ let binary = '';
29
+ for (let i = 0; i < bytes.length; i++) {
30
+ binary += String.fromCharCode(bytes[i]);
31
+ }
32
+ return btoa(binary);
33
+ }
34
+ /**
35
+ * Browser-compatible base64 decoding (string -> Uint8Array)
36
+ */
37
+ function base64ToUint8Array(base64) {
38
+ const binary = atob(base64);
39
+ const bytes = new Uint8Array(binary.length);
40
+ for (let i = 0; i < binary.length; i++) {
41
+ bytes[i] = binary.charCodeAt(i);
42
+ }
43
+ return bytes;
44
+ }
45
+ /**
46
+ * Create a signed discount authorization
47
+ *
48
+ * Server-side helper that fetches the member to get the nonce,
49
+ * then creates a signed discount authorization in a JSON-serializable format.
50
+ *
51
+ * @param params - Discount parameters including member address
52
+ * @param config - Optional SDK configuration overrides
53
+ * @returns A SerializedDiscountAuth object ready for API transport
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * import { createDiscount } from '@wuwei-labs/srsly';
58
+ *
59
+ * const discountAuth = await createDiscount({
60
+ * address: 'AFFILIATE_MEMBER_PDA',
61
+ * discount: 10, // 10%
62
+ * expirySlots: 1000, // ~6-7 minutes
63
+ * discountAuthority: serverKeypair,
64
+ * });
65
+ *
66
+ * // Ready to return via API - no serialization needed
67
+ * return discountAuth;
68
+ * ```
69
+ */
70
+ export async function createDiscount(params, config) {
71
+ const finalConfig = mergeConfig(config);
72
+ const rpcUrl = getRpcUrl(finalConfig);
73
+ // Fetch member to get nonce
74
+ const memberAddr = address(params.address);
75
+ const member = await fetchMember(memberAddr, rpcUrl);
76
+ // Fetch current slot and compute absolute expiry
77
+ const rpc = createRpc(rpcUrl);
78
+ const currentSlot = await rpc.getSlot({ commitment: 'confirmed' }).send();
79
+ const expirySlot = currentSlot + BigInt(params.expirySlots);
80
+ // Convert discountAuthority to KeyPairSigner
81
+ let discountAuthority;
82
+ if (typeof params.discountAuthority === 'string') {
83
+ discountAuthority = await parseKeypairString(params.discountAuthority);
84
+ }
85
+ else if (params.discountAuthority instanceof Uint8Array) {
86
+ discountAuthority = await createKeyPairSignerFromBytes(params.discountAuthority);
87
+ }
88
+ else if (Array.isArray(params.discountAuthority)) {
89
+ discountAuthority = await createKeyPairSignerFromBytes(new Uint8Array(params.discountAuthority));
90
+ }
91
+ else if ('secretKey' in params.discountAuthority && params.discountAuthority.secretKey instanceof Uint8Array) {
92
+ // web3.js Keypair
93
+ discountAuthority = await createKeyPairSignerFromBytes(params.discountAuthority.secretKey);
94
+ }
95
+ else {
96
+ // Already a KeyPairSigner
97
+ discountAuthority = params.discountAuthority;
98
+ }
99
+ // Create the raw discount auth
100
+ const raw = await slyvaultCreateDiscountAuth({
101
+ memberNonce: member.data.nonce,
102
+ discount: params.discount,
103
+ expirySlot,
104
+ discountAuthority,
105
+ });
106
+ // Return serialized format for API transport
107
+ return serializeDiscountAuth(raw);
108
+ }
109
+ /**
110
+ * Deserialize a discount authorization from API format
111
+ *
112
+ * Converts the JSON-safe SerializedDiscountAuth back to the format
113
+ * expected by the on-chain program.
114
+ *
115
+ * @internal Used by acceptRental and claimRental
116
+ */
117
+ export function deserializeDiscountAuth(serialized) {
118
+ return {
119
+ memberNonce: serialized.memberNonce,
120
+ discountBps: serialized.discountBps,
121
+ expirySlot: BigInt(serialized.expirySlot),
122
+ signature: base64ToUint8Array(serialized.signature),
123
+ };
124
+ }
125
+ /**
126
+ * Serialize a raw discount authorization to JSON-safe format
127
+ *
128
+ * Converts bigint expirySlot and Uint8Array signature to string representations
129
+ * suitable for API transport (JSON.stringify/JSON.parse safe).
130
+ *
131
+ * @param raw - Raw discount authorization with bigint/Uint8Array fields
132
+ * @returns SerializedDiscountAuth ready for JSON transport
133
+ */
134
+ export function serializeDiscountAuth(raw) {
135
+ return {
136
+ memberNonce: raw.memberNonce,
137
+ discountBps: raw.discountBps,
138
+ expirySlot: raw.expirySlot.toString(),
139
+ signature: uint8ArrayToBase64(new Uint8Array(raw.signature)),
140
+ };
141
+ }
142
+ /**
143
+ * Check if a value is a SerializedDiscountAuth
144
+ */
145
+ export function isSerializedDiscountAuth(value) {
146
+ return (typeof value === 'object' &&
147
+ value !== null &&
148
+ 'signature' in value &&
149
+ typeof value.signature === 'string');
150
+ }
151
+ //# sourceMappingURL=discountAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discountAuth.js","sourceRoot":"","sources":["../../../src/utils/discountAuth.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * @module utils
4
4
  */
5
5
  // Configuration
6
- export { setSdkConfig, getSdkConfig, clearSdkConfig, mergeConfig, getAddresses } from './config';
6
+ export { setSdkConfig, getSdkConfig, clearSdkConfig, mergeConfig, getAddresses, getAffiliateConfig, getRpcUrl } from './config';
7
7
  // Network Addresses
8
8
  export { getProgramAddresses, getNetworkAddresses, isValidProgramSet, isValidNetwork, MAINNET_ADDRESSES, ATLASNET_ADDRESSES } from './addresses';
9
9
  // Signer Utilities
@@ -12,4 +12,14 @@ export { toTransactionSigner, validateAddress, isWeb3jsSigner, isKitSigner, isAd
12
12
  export { toWeb3Instruction, toAddress } from './web3js';
13
13
  // Instruction Utilities
14
14
  export { prepareInstructions } from './instructions';
15
+ // Instruction Result
16
+ export { InstructionResult } from './instructionResult';
17
+ // RPC Utilities
18
+ export { createRpc, setRpcDebug, isRpcDebugEnabled } from './rpc';
19
+ // Address Lookup Table Utilities
20
+ export { fetchLookupTable, getLookupTableAddress } from './lookupTable';
21
+ // Rental Utilities
22
+ export { findBorrowerRentalSlot, requireBorrowerRentalSlot, findExistingRentalSlot, requireExistingRentalSlot } from './rental';
23
+ // Discount Authorization Utilities
24
+ export { createDiscount, serializeDiscountAuth, deserializeDiscountAuth, isSerializedDiscountAuth } from './discountAuth';
15
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EAGb,MAAM,UAAU,CAAC;AAElB,oBAAoB;AACpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAInB,MAAM,aAAa,CAAC;AAErB,mBAAmB;AACnB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EAEhB,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,SAAS,EAIV,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,EAIV,MAAM,UAAU,CAAC;AAElB,oBAAoB;AACpB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAInB,MAAM,aAAa,CAAC;AAErB,mBAAmB;AACnB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,EAEhB,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,iBAAiB,EACjB,SAAS,EAIV,MAAM,UAAU,CAAC;AAElB,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAE7B,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAElE,iCAAiC;AACjC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EAEtB,MAAM,eAAe,CAAC;AAEvB,mBAAmB;AACnB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EAE1B,MAAM,UAAU,CAAC;AAElB,mCAAmC;AACnC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EAKzB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @purpose InstructionResult - Array-like wrapper for @solana/kit Instructions with legacy conversion
3
+ *
4
+ * Provides native @solana/kit Instruction[] compatibility with optional .toLegacy() conversion
5
+ * for web3.js users.
6
+ */
7
+ import { getSdkConfig } from './config';
8
+ /**
9
+ * Convert a single @solana/kit Instruction to legacy web3.js format
10
+ */
11
+ function convertToLegacy(instruction, PublicKey) {
12
+ const accounts = instruction.accounts || [];
13
+ const data = instruction.data || new Uint8Array();
14
+ return {
15
+ keys: accounts.map(account => ({
16
+ pubkey: new PublicKey(String(account.address)),
17
+ isWritable: (account.role & 1) === 1, // Check writable bit
18
+ isSigner: (account.role & 2) === 2 // Check signer bit
19
+ })),
20
+ programId: new PublicKey(String(instruction.programAddress)),
21
+ data
22
+ };
23
+ }
24
+ /**
25
+ * InstructionResult - Wrapper for @solana/kit Instructions with legacy conversion
26
+ *
27
+ * Contains a plain Instruction[] array accessible via `.instructions`.
28
+ * Supports iteration (`for...of`, spread) and `.toLegacy()` conversion for web3.js.
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * // Kit users - access instructions directly
33
+ * const result = await createContract(params);
34
+ * for (const ix of result) { ... }
35
+ * // Or unwrap: result.instructions
36
+ *
37
+ * // Web3.js users - convert to legacy format
38
+ * import { PublicKey } from '@solana/web3.js';
39
+ * const legacyIxs = result.toLegacy(PublicKey);
40
+ * // Or if PublicKey is configured in SDK:
41
+ * setSdkConfig({ PublicKey });
42
+ * const legacyIxs = result.toLegacy();
43
+ * ```
44
+ */
45
+ export class InstructionResult {
46
+ instructions;
47
+ constructor(instructions) {
48
+ this.instructions = instructions;
49
+ }
50
+ /**
51
+ * Convert to legacy web3.js instruction format
52
+ *
53
+ * @param PublicKey - Optional PublicKey constructor. If not provided,
54
+ * uses the PublicKey from SDK config (set via setSdkConfig)
55
+ * @returns Array of instructions in web3.js format
56
+ * @throws Error if no PublicKey is available
57
+ */
58
+ toLegacy(PublicKey) {
59
+ const pk = PublicKey || getSdkConfig().PublicKey;
60
+ if (!pk) {
61
+ throw new Error('PublicKey constructor required - pass it to toLegacy() or set in SDK config via setSdkConfig({ PublicKey })');
62
+ }
63
+ return this.instructions.map(ix => convertToLegacy(ix, pk));
64
+ }
65
+ get length() {
66
+ return this.instructions.length;
67
+ }
68
+ [Symbol.iterator]() {
69
+ return this.instructions[Symbol.iterator]();
70
+ }
71
+ }
72
+ //# sourceMappingURL=instructionResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructionResult.js","sourceRoot":"","sources":["../../../src/utils/instructionResult.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAA6B,MAAM,UAAU,CAAC;AAenE;;GAEG;AACH,SAAS,eAAe,CACtB,WAAwB,EACxB,SAA2C;IAE3C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;IAElD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9C,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,qBAAqB;YAC3D,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB;SACvD,CAAC,CAAC;QACH,SAAS,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,iBAAiB;IACnB,YAAY,CAAgB;IAErC,YAAY,YAA2B;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CACN,SAA4C;QAE5C,MAAM,EAAE,GAAG,SAAS,IAAI,YAAY,EAAE,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9C,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Shared utilities for preparing instructions with compute budget and web3.js conversion
2
+ * Shared utilities for preparing instructions with compute budget
3
3
  * @module utils/instructions
4
4
  */
5
- import { toWeb3Instruction } from './web3js';
5
+ import { InstructionResult } from './instructionResult';
6
6
  /**
7
7
  * Compute Budget Program ID
8
8
  */
@@ -15,7 +15,7 @@ const SET_COMPUTE_UNIT_LIMIT_DISCRIMINATOR = 0x02;
15
15
  * Create a SetComputeUnitLimit instruction manually
16
16
  *
17
17
  * @param units - Compute units to allocate
18
- * @returns Kit instruction for setting compute unit limit
18
+ * @returns Instruction for setting compute unit limit
19
19
  */
20
20
  function createComputeBudgetInstruction(units) {
21
21
  // Encode u32 in little-endian format
@@ -36,26 +36,25 @@ function createComputeBudgetInstruction(units) {
36
36
  * This utility handles the common workflow of:
37
37
  * 1. Normalizing single instruction to array
38
38
  * 2. Optionally prepending compute budget instruction
39
- * 3. Optionally converting to web3.js format
39
+ * 3. Returning an InstructionResult that can be used directly with @solana/kit
40
+ * or converted to web3.js format via .toLegacy()
40
41
  *
41
42
  * @param instructions - Single instruction or array of instructions
42
- * @param options - Optional configuration for compute budget and web3.js conversion
43
- * @returns Prepared instruction array (Kit or web3.js format)
43
+ * @param options - Optional configuration for compute budget
44
+ * @returns InstructionResult (extends Instruction[], has .toLegacy() method)
44
45
  *
45
46
  * @example
46
47
  * ```typescript
47
- * // Just return kit instructions as array
48
+ * // Kit users - use result directly as Instruction[]
48
49
  * const ixs = prepareInstructions(acceptRentalIx);
50
+ * // ixs works with appendTransactionMessageInstruction()
49
51
  *
50
52
  * // Add compute budget
51
53
  * const ixs = prepareInstructions(acceptRentalIx, { computeUnits: 400_000 });
52
54
  *
53
- * // Convert to web3.js
55
+ * // Web3.js users - call .toLegacy()
54
56
  * import { PublicKey } from '@solana/web3.js';
55
- * const ixs = prepareInstructions(acceptRentalIx, { PublicKey });
56
- *
57
- * // Both compute budget and web3.js conversion
58
- * const ixs = prepareInstructions(acceptRentalIx, { computeUnits: 400_000, PublicKey });
57
+ * const legacyIxs = prepareInstructions(acceptRentalIx).toLegacy(PublicKey);
59
58
  * ```
60
59
  */
61
60
  export function prepareInstructions(instructions, options) {
@@ -67,10 +66,6 @@ export function prepareInstructions(instructions, options) {
67
66
  const computeBudgetIx = createComputeBudgetInstruction(options.computeUnits);
68
67
  finalIxs = [computeBudgetIx, ...ixArray];
69
68
  }
70
- // Optionally convert to web3.js format
71
- if (options?.PublicKey) {
72
- return finalIxs.map(ix => toWeb3Instruction(ix, options.PublicKey));
73
- }
74
- return finalIxs;
69
+ return new InstructionResult(finalIxs);
75
70
  }
76
71
  //# sourceMappingURL=instructions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/utils/instructions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAA2E,MAAM,UAAU,CAAC;AAGtH;;GAEG;AACH,MAAM,sBAAsB,GAAG,6CAA6C,CAAC;AAE7E;;GAEG;AACH,MAAM,oCAAoC,GAAG,IAAI,CAAC;AAElD;;;;;GAKG;AACH,SAAS,8BAA8B,CAAC,KAAa;IACnD,qCAAqC;IACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,oCAAoC,CAAC;IAC/C,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAE/B,OAAO;QACL,cAAc,EAAE,sBAAsB;QACtC,IAAI;KACL,CAAC;AACJ,CAAC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAA+C,EAC/C,OAAgD;IAEhD,qBAAqB;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE5E,gDAAgD;IAChD,IAAI,QAAQ,GAAqB,OAAO,CAAC;IACzC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,8BAA8B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7E,QAAQ,GAAG,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/utils/instructions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,sBAAsB,GAAG,6CAAwD,CAAC;AAExF;;GAEG;AACH,MAAM,oCAAoC,GAAG,IAAI,CAAC;AAElD;;;;;GAKG;AACH,SAAS,8BAA8B,CAAC,KAAa;IACnD,qCAAqC;IACrC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,oCAAoC,CAAC;IAC/C,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAE/B,OAAO;QACL,cAAc,EAAE,sBAAsB;QACtC,IAAI;KACL,CAAC;AACJ,CAAC;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAyC,EACzC,OAAoC;IAEpC,qBAAqB;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IAE5E,gDAAgD;IAChD,IAAI,QAAQ,GAAkB,OAAO,CAAC;IACtC,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,8BAA8B,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC7E,QAAQ,GAAG,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @purpose Address Lookup Table utilities for SRSLY
3
+ *
4
+ * Provides helpers for fetching and using the SRSLY Address Lookup Table
5
+ * to reduce transaction size for rental operations.
6
+ */
7
+ import { fetchConfig } from '../accounts/config';
8
+ import { createRpc } from './rpc';
9
+ import { getRpcUrl } from './config';
10
+ /**
11
+ * System program address used as default when ALT not configured
12
+ */
13
+ const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
14
+ /**
15
+ * Fetch the SRSLY Address Lookup Table from chain
16
+ *
17
+ * The ALT contains static addresses used across all rental operations,
18
+ * reducing transaction size by ~310 bytes when used with versioned transactions.
19
+ *
20
+ * @param rpcUrl - Optional RPC endpoint URL. If not provided, uses RPC from global config
21
+ * @returns ALT data with addresses, or null if ALT not configured
22
+ * @throws Error if fetch fails
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // Fetch ALT using global config RPC
27
+ * const alt = await fetchLookupTable();
28
+ * if (alt) {
29
+ * console.log('ALT address:', alt.address);
30
+ * console.log('Contains', alt.addresses.length, 'addresses');
31
+ * }
32
+ * ```
33
+ */
34
+ export async function fetchLookupTable(rpcUrl) {
35
+ try {
36
+ // Fetch config to get ALT address
37
+ const config = await fetchConfig(rpcUrl);
38
+ const altAddress = config.data.lookupTable;
39
+ // Return null if ALT not configured (default pubkey)
40
+ if (altAddress === SYSTEM_PROGRAM_ID) {
41
+ return null;
42
+ }
43
+ // Fetch ALT account data
44
+ const resolvedRpcUrl = rpcUrl || getRpcUrl();
45
+ const rpc = createRpc(resolvedRpcUrl);
46
+ const accountInfo = await rpc
47
+ .getAccountInfo(altAddress, { encoding: 'base64' })
48
+ .send();
49
+ if (!accountInfo.value) {
50
+ return null;
51
+ }
52
+ // Decode ALT data
53
+ // ALT format: https://docs.solanalabs.com/implemented-proposals/address-lookup-table
54
+ // Header: 56 bytes (discriminator, deactivation_slot, last_extended_slot, etc.)
55
+ // Addresses: remaining bytes, 32 bytes each
56
+ const data = base64ToUint8Array(accountInfo.value.data[0]);
57
+ // Skip 56-byte header to get to addresses
58
+ const HEADER_SIZE = 56;
59
+ const ADDRESS_SIZE = 32;
60
+ const addresses = [];
61
+ for (let i = HEADER_SIZE; i < data.length; i += ADDRESS_SIZE) {
62
+ const addressBytes = data.subarray(i, i + ADDRESS_SIZE);
63
+ // Convert to base58 address string
64
+ addresses.push(bs58Encode(addressBytes));
65
+ }
66
+ return {
67
+ address: altAddress,
68
+ addresses,
69
+ isActive: addresses.length > 0
70
+ };
71
+ }
72
+ catch (error) {
73
+ throw new Error(`Failed to fetch lookup table: ${error.message}`);
74
+ }
75
+ }
76
+ /**
77
+ * Get the ALT address from config without fetching full ALT data
78
+ *
79
+ * @param rpcUrl - Optional RPC endpoint URL
80
+ * @returns ALT address, or null if not configured
81
+ */
82
+ export async function getLookupTableAddress(rpcUrl) {
83
+ const config = await fetchConfig(rpcUrl);
84
+ const altAddress = config.data.lookupTable;
85
+ if (altAddress === SYSTEM_PROGRAM_ID) {
86
+ return null;
87
+ }
88
+ return altAddress;
89
+ }
90
+ /**
91
+ * Browser-compatible base64 to Uint8Array decoder
92
+ * Uses atob which is available in browsers and Node.js 16+
93
+ */
94
+ function base64ToUint8Array(base64) {
95
+ const binaryString = atob(base64);
96
+ const bytes = new Uint8Array(binaryString.length);
97
+ for (let i = 0; i < binaryString.length; i++) {
98
+ bytes[i] = binaryString.charCodeAt(i);
99
+ }
100
+ return bytes;
101
+ }
102
+ /**
103
+ * Simple base58 encoder for address bytes
104
+ * Using a minimal implementation to avoid additional dependencies
105
+ */
106
+ function bs58Encode(bytes) {
107
+ const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
108
+ const BASE = 58;
109
+ if (bytes.length === 0)
110
+ return '';
111
+ // Count leading zeros
112
+ let zeros = 0;
113
+ while (zeros < bytes.length && bytes[zeros] === 0) {
114
+ zeros++;
115
+ }
116
+ // Convert to base58
117
+ const input = Array.from(bytes);
118
+ const encoded = [];
119
+ for (const byte of input) {
120
+ let carry = byte;
121
+ for (let i = 0; i < encoded.length; i++) {
122
+ carry += encoded[i] << 8;
123
+ encoded[i] = carry % BASE;
124
+ carry = Math.floor(carry / BASE);
125
+ }
126
+ while (carry > 0) {
127
+ encoded.push(carry % BASE);
128
+ carry = Math.floor(carry / BASE);
129
+ }
130
+ }
131
+ // Add leading zeros
132
+ let result = ALPHABET[0].repeat(zeros);
133
+ // Convert to string (encoded is in reverse order)
134
+ for (let i = encoded.length - 1; i >= 0; i--) {
135
+ result += ALPHABET[encoded[i]];
136
+ }
137
+ return result;
138
+ }
139
+ //# sourceMappingURL=lookupTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lookupTable.js","sourceRoot":"","sources":["../../../src/utils/lookupTable.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Rental utility functions
3
+ * @module utils/rental
4
+ */
5
+ import { fetchRentalState } from '../generated/codama/accounts';
6
+ import { deriveRental } from '../pda/srsly';
7
+ import { createRpc } from './rpc';
8
+ // System program ID constant
9
+ const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
10
+ /**
11
+ * Find which slot has an existing rental from contract data.
12
+ *
13
+ * Uses the contract's rentalSlot0/rentalSlot1 fields to determine which slot has a rental.
14
+ * If both slots have rentals, returns the active slot.
15
+ * If only one slot has a rental, returns that slot.
16
+ *
17
+ * @param contractData - Object with rentalSlot0, rentalSlot1, and activeSlot fields
18
+ * @returns The slot number (0 or 1) if found, undefined if no rentals exist
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const contract = await fetchContract(contractAddress, rpcUrl);
23
+ * const slot = findExistingRentalSlot(contract.data);
24
+ * if (slot !== undefined) {
25
+ * console.log(`Found rental at slot ${slot}`);
26
+ * }
27
+ * ```
28
+ */
29
+ export function findExistingRentalSlot(contractData) {
30
+ const slot0HasRental = contractData.rentalSlot0 !== SYSTEM_PROGRAM_ID;
31
+ const slot1HasRental = contractData.rentalSlot1 !== SYSTEM_PROGRAM_ID;
32
+ if (slot0HasRental && slot1HasRental) {
33
+ // Both slots have rentals, return the active one
34
+ return contractData.activeSlot;
35
+ }
36
+ else if (slot0HasRental) {
37
+ return 0;
38
+ }
39
+ else if (slot1HasRental) {
40
+ return 1;
41
+ }
42
+ return undefined;
43
+ }
44
+ /**
45
+ * Find which slot has an existing rental, throwing if none found.
46
+ *
47
+ * @param contractData - Object with rentalSlot0, rentalSlot1, and activeSlot fields
48
+ * @returns The slot number (0 or 1)
49
+ * @throws Error if no rental exists on this contract
50
+ */
51
+ export function requireExistingRentalSlot(contractData) {
52
+ const slot = findExistingRentalSlot(contractData);
53
+ if (slot === undefined) {
54
+ throw new Error('No rental exists on this contract');
55
+ }
56
+ return slot;
57
+ }
58
+ /**
59
+ * Find which rental slot belongs to a borrower on a contract.
60
+ *
61
+ * Checks both slot 0 and slot 1 to find the rental that belongs to the borrower.
62
+ * Useful for operations like cancel where the borrower can only act on their own rental.
63
+ *
64
+ * @param contract - The contract address
65
+ * @param borrower - The borrower address to search for
66
+ * @param rpcUrl - RPC URL to use for fetching rental states
67
+ * @returns The slot number (0 or 1) if found, undefined if no rental exists for this borrower
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const slot = await findBorrowerRentalSlot(contractAddress, borrowerAddress, rpcUrl);
72
+ * if (slot !== undefined) {
73
+ * console.log(`Borrower has rental at slot ${slot}`);
74
+ * }
75
+ * ```
76
+ */
77
+ export async function findBorrowerRentalSlot(contract, borrower, rpcUrl) {
78
+ const rpc = createRpc(rpcUrl);
79
+ // Address type is a branded string, so we can compare directly
80
+ const borrowerStr = typeof borrower === 'string' ? borrower : borrower;
81
+ // Try slot 0 first
82
+ try {
83
+ const rental0 = await deriveRental(contract, 0);
84
+ const rentalState0 = await fetchRentalState(rpc, rental0);
85
+ if (rentalState0.data.borrower === borrowerStr) {
86
+ return 0;
87
+ }
88
+ }
89
+ catch {
90
+ // slot 0 doesn't exist or fetch failed
91
+ }
92
+ // Try slot 1
93
+ try {
94
+ const rental1 = await deriveRental(contract, 1);
95
+ const rentalState1 = await fetchRentalState(rpc, rental1);
96
+ if (rentalState1.data.borrower === borrowerStr) {
97
+ return 1;
98
+ }
99
+ }
100
+ catch {
101
+ // slot 1 doesn't exist or fetch failed
102
+ }
103
+ return undefined;
104
+ }
105
+ /**
106
+ * Find which rental slot belongs to a borrower, throwing if not found.
107
+ *
108
+ * Same as findBorrowerRentalSlot but throws an error if no rental is found.
109
+ *
110
+ * @param contract - The contract address
111
+ * @param borrower - The borrower address to search for
112
+ * @param rpcUrl - RPC URL to use for fetching rental states
113
+ * @returns The slot number (0 or 1)
114
+ * @throws Error if no rental is found for this borrower
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const slot = await requireBorrowerRentalSlot(contractAddress, borrowerAddress, rpcUrl);
119
+ * // Will throw if borrower has no rental on this contract
120
+ * ```
121
+ */
122
+ export async function requireBorrowerRentalSlot(contract, borrower, rpcUrl) {
123
+ const slot = await findBorrowerRentalSlot(contract, borrower, rpcUrl);
124
+ if (slot === undefined) {
125
+ throw new Error('No active rental found for this borrower on this contract');
126
+ }
127
+ return slot;
128
+ }
129
+ //# sourceMappingURL=rental.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rental.js","sourceRoot":"","sources":["../../../src/utils/rental.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,6BAA6B;AAC7B,MAAM,iBAAiB,GAAG,kCAAkC,CAAC;AAW7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAA8B;IACnE,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,KAAK,iBAAiB,CAAC;IACtE,MAAM,cAAc,GAAG,YAAY,CAAC,WAAW,KAAK,iBAAiB,CAAC;IAEtE,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;QACrC,iDAAiD;QACjD,OAAO,YAAY,CAAC,UAAU,CAAC;IACjC,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,IAAI,cAAc,EAAE,CAAC;QAC1B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAA8B;IACtE,MAAM,IAAI,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAA0B,EAC1B,QAA0B,EAC1B,MAAc;IAEd,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC9B,+DAA+D;IAC/D,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,QAAmB,CAAC;IAEnF,mBAAmB;IACnB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IAED,aAAa;IACb,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC/C,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,QAA0B,EAC1B,QAA0B,EAC1B,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}