@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 @@
1
+ {"version":3,"file":"instructionResult.js","sourceRoot":"","sources":["../../../src/utils/instructionResult.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,qCAAmE;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,MAAa,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,IAAA,qBAAY,GAAE,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;AAlCD,8CAkCC"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  /**
3
- * Shared utilities for preparing instructions with compute budget and web3.js conversion
3
+ * Shared utilities for preparing instructions with compute budget
4
4
  * @module utils/instructions
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.prepareInstructions = prepareInstructions;
8
- const web3js_1 = require("./web3js");
8
+ const instructionResult_1 = require("./instructionResult");
9
9
  /**
10
10
  * Compute Budget Program ID
11
11
  */
@@ -18,7 +18,7 @@ const SET_COMPUTE_UNIT_LIMIT_DISCRIMINATOR = 0x02;
18
18
  * Create a SetComputeUnitLimit instruction manually
19
19
  *
20
20
  * @param units - Compute units to allocate
21
- * @returns Kit instruction for setting compute unit limit
21
+ * @returns Instruction for setting compute unit limit
22
22
  */
23
23
  function createComputeBudgetInstruction(units) {
24
24
  // Encode u32 in little-endian format
@@ -39,26 +39,25 @@ function createComputeBudgetInstruction(units) {
39
39
  * This utility handles the common workflow of:
40
40
  * 1. Normalizing single instruction to array
41
41
  * 2. Optionally prepending compute budget instruction
42
- * 3. Optionally converting to web3.js format
42
+ * 3. Returning an InstructionResult that can be used directly with @solana/kit
43
+ * or converted to web3.js format via .toLegacy()
43
44
  *
44
45
  * @param instructions - Single instruction or array of instructions
45
- * @param options - Optional configuration for compute budget and web3.js conversion
46
- * @returns Prepared instruction array (Kit or web3.js format)
46
+ * @param options - Optional configuration for compute budget
47
+ * @returns InstructionResult (extends Instruction[], has .toLegacy() method)
47
48
  *
48
49
  * @example
49
50
  * ```typescript
50
- * // Just return kit instructions as array
51
+ * // Kit users - use result directly as Instruction[]
51
52
  * const ixs = prepareInstructions(acceptRentalIx);
53
+ * // ixs works with appendTransactionMessageInstruction()
52
54
  *
53
55
  * // Add compute budget
54
56
  * const ixs = prepareInstructions(acceptRentalIx, { computeUnits: 400_000 });
55
57
  *
56
- * // Convert to web3.js
58
+ * // Web3.js users - call .toLegacy()
57
59
  * import { PublicKey } from '@solana/web3.js';
58
- * const ixs = prepareInstructions(acceptRentalIx, { PublicKey });
59
- *
60
- * // Both compute budget and web3.js conversion
61
- * const ixs = prepareInstructions(acceptRentalIx, { computeUnits: 400_000, PublicKey });
60
+ * const legacyIxs = prepareInstructions(acceptRentalIx).toLegacy(PublicKey);
62
61
  * ```
63
62
  */
64
63
  function prepareInstructions(instructions, options) {
@@ -70,10 +69,6 @@ function prepareInstructions(instructions, options) {
70
69
  const computeBudgetIx = createComputeBudgetInstruction(options.computeUnits);
71
70
  finalIxs = [computeBudgetIx, ...ixArray];
72
71
  }
73
- // Optionally convert to web3.js format
74
- if (options?.PublicKey) {
75
- return finalIxs.map(ix => (0, web3js_1.toWeb3Instruction)(ix, options.PublicKey));
76
- }
77
- return finalIxs;
72
+ return new instructionResult_1.InstructionResult(finalIxs);
78
73
  }
79
74
  //# sourceMappingURL=instructions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/utils/instructions.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAkFH,kDAoBC;AAnGD,qCAAsH;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,SAAgB,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,IAAA,0BAAiB,EAAC,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;;AAgFH,kDAeC;AA5FD,2DAAwD;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,SAAgB,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,qCAAiB,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * @purpose Address Lookup Table utilities for SRSLY
4
+ *
5
+ * Provides helpers for fetching and using the SRSLY Address Lookup Table
6
+ * to reduce transaction size for rental operations.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.fetchLookupTable = fetchLookupTable;
10
+ exports.getLookupTableAddress = getLookupTableAddress;
11
+ const config_1 = require("../accounts/config");
12
+ const rpc_1 = require("./rpc");
13
+ const config_2 = require("./config");
14
+ /**
15
+ * System program address used as default when ALT not configured
16
+ */
17
+ const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
18
+ /**
19
+ * Fetch the SRSLY Address Lookup Table from chain
20
+ *
21
+ * The ALT contains static addresses used across all rental operations,
22
+ * reducing transaction size by ~310 bytes when used with versioned transactions.
23
+ *
24
+ * @param rpcUrl - Optional RPC endpoint URL. If not provided, uses RPC from global config
25
+ * @returns ALT data with addresses, or null if ALT not configured
26
+ * @throws Error if fetch fails
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // Fetch ALT using global config RPC
31
+ * const alt = await fetchLookupTable();
32
+ * if (alt) {
33
+ * console.log('ALT address:', alt.address);
34
+ * console.log('Contains', alt.addresses.length, 'addresses');
35
+ * }
36
+ * ```
37
+ */
38
+ async function fetchLookupTable(rpcUrl) {
39
+ try {
40
+ // Fetch config to get ALT address
41
+ const config = await (0, config_1.fetchConfig)(rpcUrl);
42
+ const altAddress = config.data.lookupTable;
43
+ // Return null if ALT not configured (default pubkey)
44
+ if (altAddress === SYSTEM_PROGRAM_ID) {
45
+ return null;
46
+ }
47
+ // Fetch ALT account data
48
+ const resolvedRpcUrl = rpcUrl || (0, config_2.getRpcUrl)();
49
+ const rpc = (0, rpc_1.createRpc)(resolvedRpcUrl);
50
+ const accountInfo = await rpc
51
+ .getAccountInfo(altAddress, { encoding: 'base64' })
52
+ .send();
53
+ if (!accountInfo.value) {
54
+ return null;
55
+ }
56
+ // Decode ALT data
57
+ // ALT format: https://docs.solanalabs.com/implemented-proposals/address-lookup-table
58
+ // Header: 56 bytes (discriminator, deactivation_slot, last_extended_slot, etc.)
59
+ // Addresses: remaining bytes, 32 bytes each
60
+ const data = base64ToUint8Array(accountInfo.value.data[0]);
61
+ // Skip 56-byte header to get to addresses
62
+ const HEADER_SIZE = 56;
63
+ const ADDRESS_SIZE = 32;
64
+ const addresses = [];
65
+ for (let i = HEADER_SIZE; i < data.length; i += ADDRESS_SIZE) {
66
+ const addressBytes = data.subarray(i, i + ADDRESS_SIZE);
67
+ // Convert to base58 address string
68
+ addresses.push(bs58Encode(addressBytes));
69
+ }
70
+ return {
71
+ address: altAddress,
72
+ addresses,
73
+ isActive: addresses.length > 0
74
+ };
75
+ }
76
+ catch (error) {
77
+ throw new Error(`Failed to fetch lookup table: ${error.message}`);
78
+ }
79
+ }
80
+ /**
81
+ * Get the ALT address from config without fetching full ALT data
82
+ *
83
+ * @param rpcUrl - Optional RPC endpoint URL
84
+ * @returns ALT address, or null if not configured
85
+ */
86
+ async function getLookupTableAddress(rpcUrl) {
87
+ const config = await (0, config_1.fetchConfig)(rpcUrl);
88
+ const altAddress = config.data.lookupTable;
89
+ if (altAddress === SYSTEM_PROGRAM_ID) {
90
+ return null;
91
+ }
92
+ return altAddress;
93
+ }
94
+ /**
95
+ * Browser-compatible base64 to Uint8Array decoder
96
+ * Uses atob which is available in browsers and Node.js 16+
97
+ */
98
+ function base64ToUint8Array(base64) {
99
+ const binaryString = atob(base64);
100
+ const bytes = new Uint8Array(binaryString.length);
101
+ for (let i = 0; i < binaryString.length; i++) {
102
+ bytes[i] = binaryString.charCodeAt(i);
103
+ }
104
+ return bytes;
105
+ }
106
+ /**
107
+ * Simple base58 encoder for address bytes
108
+ * Using a minimal implementation to avoid additional dependencies
109
+ */
110
+ function bs58Encode(bytes) {
111
+ const ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
112
+ const BASE = 58;
113
+ if (bytes.length === 0)
114
+ return '';
115
+ // Count leading zeros
116
+ let zeros = 0;
117
+ while (zeros < bytes.length && bytes[zeros] === 0) {
118
+ zeros++;
119
+ }
120
+ // Convert to base58
121
+ const input = Array.from(bytes);
122
+ const encoded = [];
123
+ for (const byte of input) {
124
+ let carry = byte;
125
+ for (let i = 0; i < encoded.length; i++) {
126
+ carry += encoded[i] << 8;
127
+ encoded[i] = carry % BASE;
128
+ carry = Math.floor(carry / BASE);
129
+ }
130
+ while (carry > 0) {
131
+ encoded.push(carry % BASE);
132
+ carry = Math.floor(carry / BASE);
133
+ }
134
+ }
135
+ // Add leading zeros
136
+ let result = ALPHABET[0].repeat(zeros);
137
+ // Convert to string (encoded is in reverse order)
138
+ for (let i = encoded.length - 1; i >= 0; i--) {
139
+ result += ALPHABET[encoded[i]];
140
+ }
141
+ return result;
142
+ }
143
+ //# 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,135 @@
1
+ "use strict";
2
+ /**
3
+ * Rental utility functions
4
+ * @module utils/rental
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.findExistingRentalSlot = findExistingRentalSlot;
8
+ exports.requireExistingRentalSlot = requireExistingRentalSlot;
9
+ exports.findBorrowerRentalSlot = findBorrowerRentalSlot;
10
+ exports.requireBorrowerRentalSlot = requireBorrowerRentalSlot;
11
+ const accounts_1 = require("../generated/codama/accounts");
12
+ const srsly_1 = require("../pda/srsly");
13
+ const rpc_1 = require("./rpc");
14
+ // System program ID constant
15
+ const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
16
+ /**
17
+ * Find which slot has an existing rental from contract data.
18
+ *
19
+ * Uses the contract's rentalSlot0/rentalSlot1 fields to determine which slot has a rental.
20
+ * If both slots have rentals, returns the active slot.
21
+ * If only one slot has a rental, returns that slot.
22
+ *
23
+ * @param contractData - Object with rentalSlot0, rentalSlot1, and activeSlot fields
24
+ * @returns The slot number (0 or 1) if found, undefined if no rentals exist
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const contract = await fetchContract(contractAddress, rpcUrl);
29
+ * const slot = findExistingRentalSlot(contract.data);
30
+ * if (slot !== undefined) {
31
+ * console.log(`Found rental at slot ${slot}`);
32
+ * }
33
+ * ```
34
+ */
35
+ function findExistingRentalSlot(contractData) {
36
+ const slot0HasRental = contractData.rentalSlot0 !== SYSTEM_PROGRAM_ID;
37
+ const slot1HasRental = contractData.rentalSlot1 !== SYSTEM_PROGRAM_ID;
38
+ if (slot0HasRental && slot1HasRental) {
39
+ // Both slots have rentals, return the active one
40
+ return contractData.activeSlot;
41
+ }
42
+ else if (slot0HasRental) {
43
+ return 0;
44
+ }
45
+ else if (slot1HasRental) {
46
+ return 1;
47
+ }
48
+ return undefined;
49
+ }
50
+ /**
51
+ * Find which slot has an existing rental, throwing if none found.
52
+ *
53
+ * @param contractData - Object with rentalSlot0, rentalSlot1, and activeSlot fields
54
+ * @returns The slot number (0 or 1)
55
+ * @throws Error if no rental exists on this contract
56
+ */
57
+ function requireExistingRentalSlot(contractData) {
58
+ const slot = findExistingRentalSlot(contractData);
59
+ if (slot === undefined) {
60
+ throw new Error('No rental exists on this contract');
61
+ }
62
+ return slot;
63
+ }
64
+ /**
65
+ * Find which rental slot belongs to a borrower on a contract.
66
+ *
67
+ * Checks both slot 0 and slot 1 to find the rental that belongs to the borrower.
68
+ * Useful for operations like cancel where the borrower can only act on their own rental.
69
+ *
70
+ * @param contract - The contract address
71
+ * @param borrower - The borrower address to search for
72
+ * @param rpcUrl - RPC URL to use for fetching rental states
73
+ * @returns The slot number (0 or 1) if found, undefined if no rental exists for this borrower
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const slot = await findBorrowerRentalSlot(contractAddress, borrowerAddress, rpcUrl);
78
+ * if (slot !== undefined) {
79
+ * console.log(`Borrower has rental at slot ${slot}`);
80
+ * }
81
+ * ```
82
+ */
83
+ async function findBorrowerRentalSlot(contract, borrower, rpcUrl) {
84
+ const rpc = (0, rpc_1.createRpc)(rpcUrl);
85
+ // Address type is a branded string, so we can compare directly
86
+ const borrowerStr = typeof borrower === 'string' ? borrower : borrower;
87
+ // Try slot 0 first
88
+ try {
89
+ const rental0 = await (0, srsly_1.deriveRental)(contract, 0);
90
+ const rentalState0 = await (0, accounts_1.fetchRentalState)(rpc, rental0);
91
+ if (rentalState0.data.borrower === borrowerStr) {
92
+ return 0;
93
+ }
94
+ }
95
+ catch {
96
+ // slot 0 doesn't exist or fetch failed
97
+ }
98
+ // Try slot 1
99
+ try {
100
+ const rental1 = await (0, srsly_1.deriveRental)(contract, 1);
101
+ const rentalState1 = await (0, accounts_1.fetchRentalState)(rpc, rental1);
102
+ if (rentalState1.data.borrower === borrowerStr) {
103
+ return 1;
104
+ }
105
+ }
106
+ catch {
107
+ // slot 1 doesn't exist or fetch failed
108
+ }
109
+ return undefined;
110
+ }
111
+ /**
112
+ * Find which rental slot belongs to a borrower, throwing if not found.
113
+ *
114
+ * Same as findBorrowerRentalSlot but throws an error if no rental is found.
115
+ *
116
+ * @param contract - The contract address
117
+ * @param borrower - The borrower address to search for
118
+ * @param rpcUrl - RPC URL to use for fetching rental states
119
+ * @returns The slot number (0 or 1)
120
+ * @throws Error if no rental is found for this borrower
121
+ *
122
+ * @example
123
+ * ```typescript
124
+ * const slot = await requireBorrowerRentalSlot(contractAddress, borrowerAddress, rpcUrl);
125
+ * // Will throw if borrower has no rental on this contract
126
+ * ```
127
+ */
128
+ async function requireBorrowerRentalSlot(contract, borrower, rpcUrl) {
129
+ const slot = await findBorrowerRentalSlot(contract, borrower, rpcUrl);
130
+ if (slot === undefined) {
131
+ throw new Error('No active rental found for this borrower on this contract');
132
+ }
133
+ return slot;
134
+ }
135
+ //# sourceMappingURL=rental.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rental.js","sourceRoot":"","sources":["../../../src/utils/rental.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAsCH,wDAcC;AASD,8DAMC;AAqBD,wDAgCC;AAmBD,8DAUC;AAlJD,2DAAgE;AAChE,wCAA4C;AAC5C,+BAAkC;AAElC,6BAA6B;AAC7B,MAAM,iBAAiB,GAAG,kCAAkC,CAAC;AAW7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,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,SAAgB,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;AACI,KAAK,UAAU,sBAAsB,CAC1C,QAA0B,EAC1B,QAA0B,EAC1B,MAAc;IAEd,MAAM,GAAG,GAAG,IAAA,eAAS,EAAC,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,IAAA,oBAAY,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAgB,EAAC,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,IAAA,oBAAY,EAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAgB,EAAC,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;AACI,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"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * @purpose Centralized RPC client creation for SRSLY SDK
4
+ *
5
+ * Provides a single point for creating Solana RPC clients, making it easier
6
+ * to add environment-specific configurations or debugging in the future.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.setRpcDebug = setRpcDebug;
10
+ exports.isRpcDebugEnabled = isRpcDebugEnabled;
11
+ exports.createRpc = createRpc;
12
+ const kit_1 = require("@solana/kit");
13
+ // Debug flag - can be set via setSdkConfig or environment
14
+ let debugMode = false;
15
+ /**
16
+ * Enable or disable RPC debug mode
17
+ * When enabled, logs RPC requests to console
18
+ */
19
+ function setRpcDebug(enabled) {
20
+ debugMode = enabled;
21
+ }
22
+ /**
23
+ * Check if RPC debug mode is enabled
24
+ */
25
+ function isRpcDebugEnabled() {
26
+ return debugMode;
27
+ }
28
+ /**
29
+ * Create a Solana RPC client
30
+ *
31
+ * This utility centralizes RPC client creation for the SDK. While it currently
32
+ * uses the standard createSolanaRpc approach, having a single point of creation
33
+ * makes it easier to:
34
+ * - Add debugging/logging
35
+ * - Handle environment-specific configurations
36
+ * - Implement retry logic or custom transports
37
+ *
38
+ * @param rpcUrl - The RPC endpoint URL
39
+ * @returns A configured Solana RPC client
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const rpc = createRpc('https://api.devnet.solana.com');
44
+ * const account = await rpc.getAccountInfo(address).send();
45
+ * ```
46
+ */
47
+ function createRpc(rpcUrl) {
48
+ if (debugMode) {
49
+ console.log('[SRSLY RPC Debug] Creating RPC client:', {
50
+ url: rpcUrl,
51
+ environment: typeof window !== 'undefined' ? 'browser' : 'node',
52
+ userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : 'N/A'
53
+ });
54
+ }
55
+ return (0, kit_1.createSolanaRpc)(rpcUrl);
56
+ }
57
+ //# sourceMappingURL=rpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../../src/utils/rpc.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAeH,kCAEC;AAKD,8CAEC;AAqBD,8BASC;AApDD,qCAIqB;AAErB,0DAA0D;AAC1D,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB;;;GAGG;AACH,SAAgB,WAAW,CAAC,OAAgB;IAC1C,SAAS,GAAG,OAAO,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,SAAS,CAAC,MAAc;IACtC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE;YACpD,GAAG,EAAE,MAAM;YACX,WAAW,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YAC/D,SAAS,EAAE,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;SAC1E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAA,qBAAe,EAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
@@ -39,21 +39,21 @@ function getSignerAddress(signer) {
39
39
  // Handle string address
40
40
  if (typeof signer === 'string') {
41
41
  validateAddress(signer);
42
- return signer;
42
+ return (0, kit_1.address)(signer);
43
43
  }
44
44
  // Handle object signers
45
45
  if (signer && typeof signer === 'object') {
46
46
  // web3.js Keypair/Wallet format
47
47
  if ('publicKey' in signer && signer.publicKey && typeof signer.publicKey.toBase58 === 'function') {
48
- const address = signer.publicKey.toBase58();
49
- validateAddress(address);
50
- return address;
48
+ const addr = signer.publicKey.toBase58();
49
+ validateAddress(addr);
50
+ return (0, kit_1.address)(addr);
51
51
  }
52
52
  // @solana/kit signer format
53
53
  if ('address' in signer) {
54
- const address = String(signer.address);
55
- validateAddress(address);
56
- return address;
54
+ const addr = String(signer.address);
55
+ validateAddress(addr);
56
+ return (0, kit_1.address)(addr);
57
57
  }
58
58
  }
59
59
  throw new Error('Invalid signer format. Expected:\n' +
@@ -141,6 +141,6 @@ function toTransactionSigner(signer) {
141
141
  return signer;
142
142
  }
143
143
  // Otherwise, extract address and create noop signer (for browser/wallet cases)
144
- return (0, kit_1.createNoopSigner)((0, kit_1.address)(getSignerAddress(signer)));
144
+ return (0, kit_1.createNoopSigner)(getSignerAddress(signer));
145
145
  }
146
146
  //# sourceMappingURL=signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAyCH,4CA8BC;AAWD,0CAwBC;AAKD,wCASC;AAKD,kCAEC;AAKD,0CAEC;AA2BD,kDAQC;AAvKD,qCAA8F;AAgB9F;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,gBAAgB,CAAC,MAAuB;IACtD,wBAAwB;IACxB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,gCAAgC;QAChC,IAAI,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACjG,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC5C,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,4BAA4B;QAC5B,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvC,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACb,oCAAoC;QAClC,sBAAsB;QACtB,mDAAmD;QACnD,2DAA2D,CAC9D,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,OAAe;IAC7C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,qDAAqD;IACrD,mEAAmE;IACnE,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACb,kCAAkC,OAAO,CAAC,MAAM,IAAI;YAClD,uDAAuD;YACvD,SAAS,OAAO,GAAG,CACtB,CAAC;IACJ,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAAG,yBAAyB,CAAC;IAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,qCAAqC;YACnC,gEAAgE;YAChE,SAAS,OAAO,GAAG,CACtB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAC5B,MAAuB;IAEvB,OAAO,CACL,OAAO,MAAM,KAAK,QAAQ;QAC1B,MAAM,KAAK,IAAI;QACf,WAAW,IAAI,MAAM;QACrB,OAAQ,MAAc,CAAC,SAAS,EAAE,QAAQ,KAAK,UAAU,CAC1D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,MAAuB;IACjD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,IAAI,MAAM,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAuB;IACrD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAgB,mBAAmB,CAAC,MAAuB;IACzD,0EAA0E;IAC1E,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,cAAc,IAAI,MAAM,EAAE,CAAC;QAC9E,OAAO,MAA2B,CAAC;IACrC,CAAC;IAED,+EAA+E;IAC/E,OAAO,IAAA,sBAAgB,EAAC,IAAA,aAAO,EAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  // Auto-generated from package.json - DO NOT EDIT
5
5
  // Run "pnpm run generate:version" to update
6
- exports.VERSION = '3.0.0-beta.1';
6
+ exports.VERSION = '3.0.0-beta.20';
7
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AACjD,4CAA4C;AAC/B,QAAA,OAAO,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AACjD,4CAA4C;AAC/B,QAAA,OAAO,GAAG,eAAe,CAAC"}
@@ -3,42 +3,105 @@
3
3
  *
4
4
  * Fetches borrower state data from the SRSLY program.
5
5
  */
6
- import { createSolanaRpc } from '@solana/kit';
7
- import { fetchBorrowerState } from '../generated/codama/accounts';
6
+ import { getBase64Encoder } from '@solana/kit';
7
+ import { fetchBorrowerState, BORROWER_STATE_DISCRIMINATOR, getBorrowerStateDecoder } from '../generated/codama/accounts';
8
+ import { SRSLY_PROGRAM_ADDRESS } from '../generated/codama/programs/srsly';
8
9
  import { getRpcUrl } from '../utils/config';
10
+ import { createRpc } from '../utils/rpc';
11
+ import { deriveBorrowerState } from '../pda';
9
12
  /**
10
13
  * Fetch borrower state from the SRSLY program
11
14
  *
12
- * @param borrowerAddress - Borrower state account address
15
+ * Accepts either a borrower state PDA address OR a wallet address.
16
+ * If direct fetch fails, automatically derives the borrower state PDA
17
+ * from the address (treating it as a wallet) and retries.
18
+ *
19
+ * @param address - Borrower state address OR wallet address
13
20
  * @param rpcUrl - Optional RPC endpoint URL. If not provided, uses RPC from global config
14
21
  * @returns Borrower state with discounts, payment info, etc.
15
22
  * @throws Error if borrower account not found or fetch fails
16
23
  *
17
24
  * @example
18
25
  * ```typescript
19
- * // Uses RPC URL from global config
20
- * const borrower = await fetchBorrower('BorrowerAddress...');
21
- * console.log(borrower.data.discountPercentageBps);
26
+ * // Fetch by borrower state PDA address
27
+ * const borrower = await fetchBorrower('BorrowerStatePDA...');
28
+ *
29
+ * // Fetch by wallet address (auto-derives PDA)
30
+ * const borrower2 = await fetchBorrower('WalletAddress...');
22
31
  *
23
- * // Uses specific RPC URL
24
- * const borrower2 = await fetchBorrower(
25
- * 'BorrowerAddress...',
32
+ * // With custom RPC
33
+ * const borrower3 = await fetchBorrower(
34
+ * 'WalletOrStateAddress...',
26
35
  * 'https://api.devnet.solana.com'
27
36
  * );
28
- * console.log('Total Paid:', borrower2.data.totalPaid);
29
37
  * ```
30
38
  */
31
- export async function fetchBorrower(borrowerAddress, rpcUrl) {
39
+ export async function fetchBorrower(address, rpcUrl) {
40
+ // Get RPC URL from config or use provided
41
+ const resolvedRpcUrl = rpcUrl || getRpcUrl();
42
+ const rpc = createRpc(resolvedRpcUrl);
43
+ // Try direct fetch first (assumes address is borrower state PDA)
32
44
  try {
33
- // Get RPC URL from config or use provided
34
- const resolvedRpcUrl = rpcUrl || getRpcUrl();
35
- const rpc = createSolanaRpc(resolvedRpcUrl);
36
- // Use Codama-generated fetch function
37
- const account = await fetchBorrowerState(rpc, borrowerAddress);
45
+ const account = await fetchBorrowerState(rpc, address);
38
46
  return account;
39
47
  }
48
+ catch (directError) {
49
+ // Direct fetch failed - try deriving PDA from address as wallet
50
+ try {
51
+ const derivedAddress = await deriveBorrowerState(address);
52
+ const account = await fetchBorrowerState(rpc, derivedAddress);
53
+ return account;
54
+ }
55
+ catch (derivedError) {
56
+ // Both attempts failed - throw with helpful message
57
+ throw new Error(`Failed to fetch borrower state. Tried direct fetch at ${address} and derived PDA. ` +
58
+ `Error: ${derivedError.message}`);
59
+ }
60
+ }
61
+ }
62
+ /**
63
+ * Fetch all borrower state accounts from the SRSLY program
64
+ *
65
+ * Uses getProgramAccounts with a discriminator filter to find all BorrowerState accounts.
66
+ *
67
+ * @param rpcUrl - Optional RPC endpoint URL. If not provided, uses RPC from global config
68
+ * @returns Array of borrower states with their addresses
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const borrowers = await fetchAllBorrowers();
73
+ * console.log(`Found ${borrowers.length} borrowers`);
74
+ * borrowers.forEach(b => console.log(b.address, b.data.borrower));
75
+ * ```
76
+ */
77
+ export async function fetchAllBorrowers(rpcUrl) {
78
+ try {
79
+ const resolvedRpcUrl = rpcUrl || getRpcUrl();
80
+ const rpc = createRpc(resolvedRpcUrl);
81
+ const discriminatorBase64 = btoa(String.fromCharCode(...BORROWER_STATE_DISCRIMINATOR));
82
+ const response = await rpc.getProgramAccounts(SRSLY_PROGRAM_ADDRESS, {
83
+ encoding: 'base64',
84
+ filters: [
85
+ {
86
+ memcmp: {
87
+ offset: 0n,
88
+ bytes: discriminatorBase64,
89
+ encoding: 'base64',
90
+ },
91
+ },
92
+ ],
93
+ }).send();
94
+ const base64Encoder = getBase64Encoder();
95
+ const decoder = getBorrowerStateDecoder();
96
+ const accounts = Array.isArray(response) ? response : response.value;
97
+ return accounts.map((account) => {
98
+ const bytes = base64Encoder.encode(account.account.data[0]);
99
+ const decoded = decoder.decode(bytes);
100
+ return { data: decoded, address: account.pubkey };
101
+ });
102
+ }
40
103
  catch (error) {
41
- throw new Error(`Failed to fetch borrower state at ${borrowerAddress}: ${error.message}`);
104
+ throw new Error(`Failed to fetch all borrower states: ${error.message}`);
42
105
  }
43
106
  }
44
107
  //# sourceMappingURL=borrower.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"borrower.js","sourceRoot":"","sources":["../../../src/accounts/borrower.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAsB,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,eAAiC,EACjC,MAAe;IAEf,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,cAAc,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;QAE5C,sCAAsC;QACtC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,eAA0B,CAAC,CAAC;QAE1E,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,qCAAqC,eAAe,KAAK,KAAK,CAAC,OAAO,EAAE,CACzE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"borrower.js","sourceRoot":"","sources":["../../../src/accounts/borrower.ts"],"names":[],"mappings":"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"}