@wuwei-labs/srsly 2.0.0-beta.3 → 2.0.0-beta.31

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 (395) hide show
  1. package/README.md +322 -197
  2. package/dist/cjs/codama/accounts/config.js +88 -0
  3. package/dist/cjs/codama/accounts/config.js.map +1 -0
  4. package/dist/cjs/codama/{devnet/accounts → accounts}/contractState.js +2 -7
  5. package/dist/cjs/codama/accounts/contractState.js.map +1 -0
  6. package/dist/cjs/codama/{devnet/accounts → accounts}/index.js +1 -1
  7. package/dist/cjs/codama/accounts/index.js.map +1 -0
  8. package/dist/cjs/codama/{devnet/accounts → accounts}/rentalState.js +3 -1
  9. package/dist/cjs/codama/accounts/rentalState.js.map +1 -0
  10. package/dist/cjs/codama/accounts/thread.js.map +1 -0
  11. package/dist/cjs/codama/errors/index.js.map +1 -0
  12. package/dist/cjs/codama/{devnet/errors → errors}/srsly.js +30 -3
  13. package/dist/cjs/codama/errors/srsly.js.map +1 -0
  14. package/dist/cjs/codama/index.js.map +1 -0
  15. package/dist/cjs/codama/{devnet/instructions → instructions}/acceptRental.js +30 -39
  16. package/dist/cjs/codama/instructions/acceptRental.js.map +1 -0
  17. package/dist/cjs/codama/{devnet/instructions → instructions}/cancelRental.js +10 -33
  18. package/dist/cjs/codama/instructions/cancelRental.js.map +1 -0
  19. package/dist/cjs/codama/{devnet/instructions → instructions}/closeContract.js +15 -23
  20. package/dist/cjs/codama/instructions/closeContract.js.map +1 -0
  21. package/dist/cjs/codama/{devnet/instructions → instructions}/closeRental.js +19 -19
  22. package/dist/cjs/codama/instructions/closeRental.js.map +1 -0
  23. package/dist/cjs/codama/{devnet/instructions → instructions}/createContract.js +13 -16
  24. package/dist/cjs/codama/instructions/createContract.js.map +1 -0
  25. package/dist/cjs/codama/{devnet/instructions → instructions}/index.js +2 -1
  26. package/dist/cjs/codama/instructions/index.js.map +1 -0
  27. package/dist/cjs/codama/instructions/initializeConfig.js +131 -0
  28. package/dist/cjs/codama/instructions/initializeConfig.js.map +1 -0
  29. package/dist/cjs/codama/{devnet/instructions → instructions}/payRental.js +32 -23
  30. package/dist/cjs/codama/instructions/payRental.js.map +1 -0
  31. package/dist/cjs/codama/{devnet/instructions → instructions}/resetRental.js +0 -9
  32. package/dist/cjs/codama/instructions/resetRental.js.map +1 -0
  33. package/dist/cjs/codama/instructions/updateConfig.js +145 -0
  34. package/dist/cjs/codama/instructions/updateConfig.js.map +1 -0
  35. package/dist/cjs/codama/programs/index.js.map +1 -0
  36. package/dist/cjs/codama/{devnet/programs → programs}/srsly.js +12 -8
  37. package/dist/cjs/codama/programs/srsly.js.map +1 -0
  38. package/dist/cjs/codama/shared/index.js.map +1 -0
  39. package/dist/cjs/codama/types/clockData.js.map +1 -0
  40. package/dist/cjs/codama/types/equality.js.map +1 -0
  41. package/dist/cjs/codama/types/execContext.js.map +1 -0
  42. package/dist/cjs/codama/types/index.js.map +1 -0
  43. package/dist/cjs/codama/types/paymentFrequency.js.map +1 -0
  44. package/dist/cjs/codama/types/serializableAccount.js.map +1 -0
  45. package/dist/cjs/codama/types/serializableInstruction.js.map +1 -0
  46. package/dist/cjs/codama/types/threadResponse.js.map +1 -0
  47. package/dist/cjs/codama/types/trigger.js.map +1 -0
  48. package/dist/cjs/codama/types/triggerContext.js.map +1 -0
  49. package/dist/cjs/contract/close.js +74 -31
  50. package/dist/cjs/contract/close.js.map +1 -1
  51. package/dist/cjs/contract/create.js +79 -35
  52. package/dist/cjs/contract/create.js.map +1 -1
  53. package/dist/cjs/index.js +25 -2
  54. package/dist/cjs/index.js.map +1 -1
  55. package/dist/cjs/package.json +53 -0
  56. package/dist/cjs/rental/accept.js +76 -42
  57. package/dist/cjs/rental/accept.js.map +1 -1
  58. package/dist/cjs/rental/cancel.js +40 -28
  59. package/dist/cjs/rental/cancel.js.map +1 -1
  60. package/dist/cjs/rental/close.js +42 -30
  61. package/dist/cjs/rental/close.js.map +1 -1
  62. package/dist/cjs/rental/reset.js +50 -43
  63. package/dist/cjs/rental/reset.js.map +1 -1
  64. package/dist/cjs/types/paymentFrequency.js +58 -0
  65. package/dist/cjs/types/paymentFrequency.js.map +1 -0
  66. package/dist/cjs/utils/config.js +216 -0
  67. package/dist/cjs/utils/config.js.map +1 -0
  68. package/dist/cjs/utils/constants.js +55 -27
  69. package/dist/cjs/utils/constants.js.map +1 -1
  70. package/dist/cjs/utils/duration.js +77 -0
  71. package/dist/cjs/utils/duration.js.map +1 -0
  72. package/dist/cjs/utils/index.js +4 -0
  73. package/dist/cjs/utils/index.js.map +1 -1
  74. package/dist/cjs/utils/instruction-converter.js +66 -0
  75. package/dist/cjs/utils/instruction-converter.js.map +1 -0
  76. package/dist/cjs/utils/paymentFrequency.js +60 -0
  77. package/dist/cjs/utils/paymentFrequency.js.map +1 -0
  78. package/dist/cjs/utils/profiles.js +38 -18
  79. package/dist/cjs/utils/profiles.js.map +1 -1
  80. package/dist/cjs/utils/types.js +6 -0
  81. package/dist/cjs/utils/types.js.map +1 -0
  82. package/dist/esm/codama/accounts/config.js +76 -0
  83. package/dist/esm/codama/accounts/config.js.map +1 -0
  84. package/dist/esm/codama/{devnet/accounts → accounts}/contractState.js +3 -7
  85. package/dist/esm/codama/accounts/contractState.js.map +1 -0
  86. package/dist/esm/codama/{devnet/accounts → accounts}/index.js +1 -1
  87. package/dist/esm/codama/accounts/index.js.map +1 -0
  88. package/dist/esm/codama/{devnet/accounts → accounts}/rentalState.js +3 -1
  89. package/dist/esm/codama/accounts/rentalState.js.map +1 -0
  90. package/dist/esm/codama/accounts/thread.js.map +1 -0
  91. package/dist/esm/codama/errors/index.js.map +1 -0
  92. package/dist/esm/codama/{devnet/errors → errors}/srsly.js +29 -2
  93. package/dist/esm/codama/errors/srsly.js.map +1 -0
  94. package/dist/esm/codama/index.js.map +1 -0
  95. package/dist/esm/codama/{devnet/instructions → instructions}/acceptRental.js +30 -39
  96. package/dist/esm/codama/instructions/acceptRental.js.map +1 -0
  97. package/dist/esm/codama/{devnet/instructions → instructions}/cancelRental.js +10 -33
  98. package/dist/esm/codama/instructions/cancelRental.js.map +1 -0
  99. package/dist/esm/codama/{devnet/instructions → instructions}/closeContract.js +17 -25
  100. package/dist/esm/codama/instructions/closeContract.js.map +1 -0
  101. package/dist/esm/codama/{devnet/instructions → instructions}/closeRental.js +19 -19
  102. package/dist/esm/codama/instructions/closeRental.js.map +1 -0
  103. package/dist/esm/codama/{devnet/instructions → instructions}/createContract.js +13 -16
  104. package/dist/esm/codama/instructions/createContract.js.map +1 -0
  105. package/dist/esm/codama/{devnet/instructions → instructions}/index.js +2 -1
  106. package/dist/esm/codama/instructions/index.js.map +1 -0
  107. package/dist/esm/codama/instructions/initializeConfig.js +121 -0
  108. package/dist/esm/codama/instructions/initializeConfig.js.map +1 -0
  109. package/dist/esm/codama/{devnet/instructions → instructions}/payRental.js +34 -25
  110. package/dist/esm/codama/instructions/payRental.js.map +1 -0
  111. package/dist/esm/codama/{devnet/instructions → instructions}/resetRental.js +0 -9
  112. package/dist/esm/codama/instructions/resetRental.js.map +1 -0
  113. package/dist/esm/codama/instructions/updateConfig.js +135 -0
  114. package/dist/esm/codama/instructions/updateConfig.js.map +1 -0
  115. package/dist/esm/codama/programs/index.js.map +1 -0
  116. package/dist/esm/codama/{devnet/programs → programs}/srsly.js +12 -8
  117. package/dist/esm/codama/programs/srsly.js.map +1 -0
  118. package/dist/esm/codama/shared/index.js.map +1 -0
  119. package/dist/esm/codama/types/clockData.js.map +1 -0
  120. package/dist/esm/codama/types/equality.js.map +1 -0
  121. package/dist/esm/codama/types/execContext.js.map +1 -0
  122. package/dist/esm/codama/types/index.js.map +1 -0
  123. package/dist/esm/codama/types/paymentFrequency.js.map +1 -0
  124. package/dist/esm/codama/types/serializableAccount.js.map +1 -0
  125. package/dist/esm/codama/types/serializableInstruction.js.map +1 -0
  126. package/dist/esm/codama/types/threadResponse.js.map +1 -0
  127. package/dist/esm/codama/types/trigger.js.map +1 -0
  128. package/dist/esm/codama/types/triggerContext.js.map +1 -0
  129. package/dist/esm/contract/close.js +75 -32
  130. package/dist/esm/contract/close.js.map +1 -1
  131. package/dist/esm/contract/create.js +79 -34
  132. package/dist/esm/contract/create.js.map +1 -1
  133. package/dist/esm/index.js +8 -2
  134. package/dist/esm/index.js.map +1 -1
  135. package/dist/esm/package.json +53 -0
  136. package/dist/esm/rental/accept.js +77 -43
  137. package/dist/esm/rental/accept.js.map +1 -1
  138. package/dist/esm/rental/cancel.js +40 -28
  139. package/dist/esm/rental/cancel.js.map +1 -1
  140. package/dist/esm/rental/close.js +42 -30
  141. package/dist/esm/rental/close.js.map +1 -1
  142. package/dist/esm/rental/reset.js +51 -44
  143. package/dist/esm/rental/reset.js.map +1 -1
  144. package/dist/esm/types/paymentFrequency.js +53 -0
  145. package/dist/esm/types/paymentFrequency.js.map +1 -0
  146. package/dist/esm/utils/config.js +173 -0
  147. package/dist/esm/utils/config.js.map +1 -0
  148. package/dist/esm/utils/constants.js +49 -24
  149. package/dist/esm/utils/constants.js.map +1 -1
  150. package/dist/esm/utils/duration.js +68 -0
  151. package/dist/esm/utils/duration.js.map +1 -0
  152. package/dist/esm/utils/index.js +4 -0
  153. package/dist/esm/utils/index.js.map +1 -1
  154. package/dist/esm/utils/instruction-converter.js +62 -0
  155. package/dist/esm/utils/instruction-converter.js.map +1 -0
  156. package/dist/esm/utils/paymentFrequency.js +55 -0
  157. package/dist/esm/utils/paymentFrequency.js.map +1 -0
  158. package/dist/esm/utils/profiles.js +39 -19
  159. package/dist/esm/utils/profiles.js.map +1 -1
  160. package/dist/esm/utils/types.js +5 -0
  161. package/dist/esm/utils/types.js.map +1 -0
  162. package/dist/types/codama/accounts/config.d.ts +52 -0
  163. package/dist/types/codama/accounts/config.d.ts.map +1 -0
  164. package/dist/types/codama/{devnet/accounts → accounts}/contractState.d.ts +2 -4
  165. package/dist/types/codama/accounts/contractState.d.ts.map +1 -0
  166. package/dist/types/codama/{devnet/accounts → accounts}/index.d.ts +1 -1
  167. package/dist/types/codama/accounts/index.d.ts.map +1 -0
  168. package/dist/types/codama/{devnet/accounts → accounts}/rentalState.d.ts +2 -0
  169. package/dist/types/codama/accounts/rentalState.d.ts.map +1 -0
  170. package/dist/types/codama/accounts/thread.d.ts.map +1 -0
  171. package/dist/types/codama/errors/index.d.ts.map +1 -0
  172. package/dist/types/codama/{devnet/errors → errors}/srsly.d.ts +20 -2
  173. package/dist/types/codama/errors/srsly.d.ts.map +1 -0
  174. package/dist/types/codama/index.d.ts.map +1 -0
  175. package/dist/types/codama/instructions/acceptRental.d.ts +135 -0
  176. package/dist/types/codama/instructions/acceptRental.d.ts.map +1 -0
  177. package/dist/types/codama/{devnet/instructions → instructions}/cancelRental.d.ts +14 -10
  178. package/dist/types/codama/instructions/cancelRental.d.ts.map +1 -0
  179. package/dist/types/codama/instructions/closeContract.d.ts +104 -0
  180. package/dist/types/codama/instructions/closeContract.d.ts.map +1 -0
  181. package/dist/types/codama/{devnet/instructions → instructions}/closeRental.d.ts +20 -12
  182. package/dist/types/codama/instructions/closeRental.d.ts.map +1 -0
  183. package/dist/types/codama/instructions/createContract.d.ts +112 -0
  184. package/dist/types/codama/instructions/createContract.d.ts.map +1 -0
  185. package/dist/types/codama/{devnet/instructions → instructions}/index.d.ts +2 -1
  186. package/dist/types/codama/instructions/index.d.ts.map +1 -0
  187. package/dist/types/codama/instructions/initializeConfig.d.ts +60 -0
  188. package/dist/types/codama/instructions/initializeConfig.d.ts.map +1 -0
  189. package/dist/types/codama/{devnet/instructions → instructions}/payRental.d.ts +28 -13
  190. package/dist/types/codama/instructions/payRental.d.ts.map +1 -0
  191. package/dist/types/codama/{devnet/instructions → instructions}/resetRental.d.ts +3 -3
  192. package/dist/types/codama/instructions/resetRental.d.ts.map +1 -0
  193. package/dist/types/codama/instructions/updateConfig.d.ts +93 -0
  194. package/dist/types/codama/instructions/updateConfig.d.ts.map +1 -0
  195. package/dist/types/codama/programs/index.d.ts.map +1 -0
  196. package/dist/types/codama/{devnet/programs → programs}/srsly.d.ts +11 -8
  197. package/dist/types/codama/programs/srsly.d.ts.map +1 -0
  198. package/dist/types/codama/shared/index.d.ts.map +1 -0
  199. package/dist/types/codama/types/clockData.d.ts.map +1 -0
  200. package/dist/types/codama/types/equality.d.ts.map +1 -0
  201. package/dist/types/codama/types/execContext.d.ts.map +1 -0
  202. package/dist/types/codama/types/index.d.ts.map +1 -0
  203. package/dist/types/codama/types/paymentFrequency.d.ts.map +1 -0
  204. package/dist/types/codama/types/serializableAccount.d.ts.map +1 -0
  205. package/dist/types/codama/types/serializableInstruction.d.ts.map +1 -0
  206. package/dist/types/codama/types/threadResponse.d.ts.map +1 -0
  207. package/dist/types/codama/types/trigger.d.ts.map +1 -0
  208. package/dist/types/codama/types/triggerContext.d.ts.map +1 -0
  209. package/dist/types/contract/close.d.ts +29 -13
  210. package/dist/types/contract/close.d.ts.map +1 -1
  211. package/dist/types/contract/create.d.ts +55 -54
  212. package/dist/types/contract/create.d.ts.map +1 -1
  213. package/dist/types/index.d.ts +5 -2
  214. package/dist/types/index.d.ts.map +1 -1
  215. package/dist/types/rental/accept.d.ts +65 -15
  216. package/dist/types/rental/accept.d.ts.map +1 -1
  217. package/dist/types/rental/cancel.d.ts +36 -8
  218. package/dist/types/rental/cancel.d.ts.map +1 -1
  219. package/dist/types/rental/close.d.ts +36 -8
  220. package/dist/types/rental/close.d.ts.map +1 -1
  221. package/dist/types/rental/reset.d.ts +42 -11
  222. package/dist/types/rental/reset.d.ts.map +1 -1
  223. package/dist/types/types/paymentFrequency.d.ts +44 -0
  224. package/dist/types/types/paymentFrequency.d.ts.map +1 -0
  225. package/dist/types/utils/config.d.ts +110 -0
  226. package/dist/types/utils/config.d.ts.map +1 -0
  227. package/dist/types/utils/constants.d.ts +14 -11
  228. package/dist/types/utils/constants.d.ts.map +1 -1
  229. package/dist/types/utils/duration.d.ts +56 -0
  230. package/dist/types/utils/duration.d.ts.map +1 -0
  231. package/dist/types/utils/index.d.ts +4 -0
  232. package/dist/types/utils/index.d.ts.map +1 -1
  233. package/dist/types/utils/instruction-converter.d.ts +117 -0
  234. package/dist/types/utils/instruction-converter.d.ts.map +1 -0
  235. package/dist/types/utils/paymentFrequency.d.ts +18 -0
  236. package/dist/types/utils/paymentFrequency.d.ts.map +1 -0
  237. package/dist/types/utils/profiles.d.ts +14 -8
  238. package/dist/types/utils/profiles.d.ts.map +1 -1
  239. package/dist/types/utils/types.d.ts +6 -0
  240. package/dist/types/utils/types.d.ts.map +1 -0
  241. package/package.json +33 -25
  242. package/target/idl/{srsly-devnet.json → srsly.json} +795 -523
  243. package/dist/cjs/codama/devnet/accounts/contractState.js.map +0 -1
  244. package/dist/cjs/codama/devnet/accounts/fleet.js +0 -77
  245. package/dist/cjs/codama/devnet/accounts/fleet.js.map +0 -1
  246. package/dist/cjs/codama/devnet/accounts/index.js.map +0 -1
  247. package/dist/cjs/codama/devnet/accounts/rentalState.js.map +0 -1
  248. package/dist/cjs/codama/devnet/accounts/thread.js.map +0 -1
  249. package/dist/cjs/codama/devnet/errors/index.js.map +0 -1
  250. package/dist/cjs/codama/devnet/errors/srsly.js.map +0 -1
  251. package/dist/cjs/codama/devnet/index.js.map +0 -1
  252. package/dist/cjs/codama/devnet/instructions/acceptRental.js.map +0 -1
  253. package/dist/cjs/codama/devnet/instructions/cancelRental.js.map +0 -1
  254. package/dist/cjs/codama/devnet/instructions/closeContract.js.map +0 -1
  255. package/dist/cjs/codama/devnet/instructions/closeRental.js.map +0 -1
  256. package/dist/cjs/codama/devnet/instructions/createContract.js.map +0 -1
  257. package/dist/cjs/codama/devnet/instructions/index.js.map +0 -1
  258. package/dist/cjs/codama/devnet/instructions/normalizeAdmin.js +0 -152
  259. package/dist/cjs/codama/devnet/instructions/normalizeAdmin.js.map +0 -1
  260. package/dist/cjs/codama/devnet/instructions/payRental.js.map +0 -1
  261. package/dist/cjs/codama/devnet/instructions/resetRental.js.map +0 -1
  262. package/dist/cjs/codama/devnet/programs/index.js.map +0 -1
  263. package/dist/cjs/codama/devnet/programs/srsly.js.map +0 -1
  264. package/dist/cjs/codama/devnet/shared/index.js.map +0 -1
  265. package/dist/cjs/codama/devnet/types/clockData.js.map +0 -1
  266. package/dist/cjs/codama/devnet/types/equality.js.map +0 -1
  267. package/dist/cjs/codama/devnet/types/execContext.js.map +0 -1
  268. package/dist/cjs/codama/devnet/types/index.js.map +0 -1
  269. package/dist/cjs/codama/devnet/types/paymentFrequency.js.map +0 -1
  270. package/dist/cjs/codama/devnet/types/serializableAccount.js.map +0 -1
  271. package/dist/cjs/codama/devnet/types/serializableInstruction.js.map +0 -1
  272. package/dist/cjs/codama/devnet/types/threadResponse.js.map +0 -1
  273. package/dist/cjs/codama/devnet/types/trigger.js.map +0 -1
  274. package/dist/cjs/codama/devnet/types/triggerContext.js.map +0 -1
  275. package/dist/cjs/network.js +0 -107
  276. package/dist/cjs/network.js.map +0 -1
  277. package/dist/esm/codama/devnet/accounts/contractState.js.map +0 -1
  278. package/dist/esm/codama/devnet/accounts/fleet.js +0 -64
  279. package/dist/esm/codama/devnet/accounts/fleet.js.map +0 -1
  280. package/dist/esm/codama/devnet/accounts/index.js.map +0 -1
  281. package/dist/esm/codama/devnet/accounts/rentalState.js.map +0 -1
  282. package/dist/esm/codama/devnet/accounts/thread.js.map +0 -1
  283. package/dist/esm/codama/devnet/errors/index.js.map +0 -1
  284. package/dist/esm/codama/devnet/errors/srsly.js.map +0 -1
  285. package/dist/esm/codama/devnet/index.js.map +0 -1
  286. package/dist/esm/codama/devnet/instructions/acceptRental.js.map +0 -1
  287. package/dist/esm/codama/devnet/instructions/cancelRental.js.map +0 -1
  288. package/dist/esm/codama/devnet/instructions/closeContract.js.map +0 -1
  289. package/dist/esm/codama/devnet/instructions/closeRental.js.map +0 -1
  290. package/dist/esm/codama/devnet/instructions/createContract.js.map +0 -1
  291. package/dist/esm/codama/devnet/instructions/index.js.map +0 -1
  292. package/dist/esm/codama/devnet/instructions/normalizeAdmin.js +0 -142
  293. package/dist/esm/codama/devnet/instructions/normalizeAdmin.js.map +0 -1
  294. package/dist/esm/codama/devnet/instructions/payRental.js.map +0 -1
  295. package/dist/esm/codama/devnet/instructions/resetRental.js.map +0 -1
  296. package/dist/esm/codama/devnet/programs/index.js.map +0 -1
  297. package/dist/esm/codama/devnet/programs/srsly.js.map +0 -1
  298. package/dist/esm/codama/devnet/shared/index.js.map +0 -1
  299. package/dist/esm/codama/devnet/types/clockData.js.map +0 -1
  300. package/dist/esm/codama/devnet/types/equality.js.map +0 -1
  301. package/dist/esm/codama/devnet/types/execContext.js.map +0 -1
  302. package/dist/esm/codama/devnet/types/index.js.map +0 -1
  303. package/dist/esm/codama/devnet/types/paymentFrequency.js.map +0 -1
  304. package/dist/esm/codama/devnet/types/serializableAccount.js.map +0 -1
  305. package/dist/esm/codama/devnet/types/serializableInstruction.js.map +0 -1
  306. package/dist/esm/codama/devnet/types/threadResponse.js.map +0 -1
  307. package/dist/esm/codama/devnet/types/trigger.js.map +0 -1
  308. package/dist/esm/codama/devnet/types/triggerContext.js.map +0 -1
  309. package/dist/esm/network.js +0 -67
  310. package/dist/esm/network.js.map +0 -1
  311. package/dist/types/codama/devnet/accounts/contractState.d.ts.map +0 -1
  312. package/dist/types/codama/devnet/accounts/fleet.d.ts +0 -38
  313. package/dist/types/codama/devnet/accounts/fleet.d.ts.map +0 -1
  314. package/dist/types/codama/devnet/accounts/index.d.ts.map +0 -1
  315. package/dist/types/codama/devnet/accounts/rentalState.d.ts.map +0 -1
  316. package/dist/types/codama/devnet/accounts/thread.d.ts.map +0 -1
  317. package/dist/types/codama/devnet/errors/index.d.ts.map +0 -1
  318. package/dist/types/codama/devnet/errors/srsly.d.ts.map +0 -1
  319. package/dist/types/codama/devnet/index.d.ts.map +0 -1
  320. package/dist/types/codama/devnet/instructions/acceptRental.d.ts +0 -128
  321. package/dist/types/codama/devnet/instructions/acceptRental.d.ts.map +0 -1
  322. package/dist/types/codama/devnet/instructions/cancelRental.d.ts.map +0 -1
  323. package/dist/types/codama/devnet/instructions/closeContract.d.ts +0 -96
  324. package/dist/types/codama/devnet/instructions/closeContract.d.ts.map +0 -1
  325. package/dist/types/codama/devnet/instructions/closeRental.d.ts.map +0 -1
  326. package/dist/types/codama/devnet/instructions/createContract.d.ts +0 -108
  327. package/dist/types/codama/devnet/instructions/createContract.d.ts.map +0 -1
  328. package/dist/types/codama/devnet/instructions/index.d.ts.map +0 -1
  329. package/dist/types/codama/devnet/instructions/normalizeAdmin.d.ts +0 -67
  330. package/dist/types/codama/devnet/instructions/normalizeAdmin.d.ts.map +0 -1
  331. package/dist/types/codama/devnet/instructions/payRental.d.ts.map +0 -1
  332. package/dist/types/codama/devnet/instructions/resetRental.d.ts.map +0 -1
  333. package/dist/types/codama/devnet/programs/index.d.ts.map +0 -1
  334. package/dist/types/codama/devnet/programs/srsly.d.ts.map +0 -1
  335. package/dist/types/codama/devnet/shared/index.d.ts.map +0 -1
  336. package/dist/types/codama/devnet/types/clockData.d.ts.map +0 -1
  337. package/dist/types/codama/devnet/types/equality.d.ts.map +0 -1
  338. package/dist/types/codama/devnet/types/execContext.d.ts.map +0 -1
  339. package/dist/types/codama/devnet/types/index.d.ts.map +0 -1
  340. package/dist/types/codama/devnet/types/paymentFrequency.d.ts.map +0 -1
  341. package/dist/types/codama/devnet/types/serializableAccount.d.ts.map +0 -1
  342. package/dist/types/codama/devnet/types/serializableInstruction.d.ts.map +0 -1
  343. package/dist/types/codama/devnet/types/threadResponse.d.ts.map +0 -1
  344. package/dist/types/codama/devnet/types/trigger.d.ts.map +0 -1
  345. package/dist/types/codama/devnet/types/triggerContext.d.ts.map +0 -1
  346. package/dist/types/network.d.ts +0 -58
  347. package/dist/types/network.d.ts.map +0 -1
  348. package/target/idl/srsly-mainnet.json +0 -3011
  349. package/target/types/srsly-mainnet.ts +0 -1
  350. /package/dist/cjs/codama/{devnet/accounts → accounts}/thread.js +0 -0
  351. /package/dist/cjs/codama/{devnet/errors → errors}/index.js +0 -0
  352. /package/dist/cjs/codama/{devnet/index.js → index.js} +0 -0
  353. /package/dist/cjs/codama/{devnet/programs → programs}/index.js +0 -0
  354. /package/dist/cjs/codama/{devnet/shared → shared}/index.js +0 -0
  355. /package/dist/cjs/codama/{devnet/types → types}/clockData.js +0 -0
  356. /package/dist/cjs/codama/{devnet/types → types}/equality.js +0 -0
  357. /package/dist/cjs/codama/{devnet/types → types}/execContext.js +0 -0
  358. /package/dist/cjs/codama/{devnet/types → types}/index.js +0 -0
  359. /package/dist/cjs/codama/{devnet/types → types}/paymentFrequency.js +0 -0
  360. /package/dist/cjs/codama/{devnet/types → types}/serializableAccount.js +0 -0
  361. /package/dist/cjs/codama/{devnet/types → types}/serializableInstruction.js +0 -0
  362. /package/dist/cjs/codama/{devnet/types → types}/threadResponse.js +0 -0
  363. /package/dist/cjs/codama/{devnet/types → types}/trigger.js +0 -0
  364. /package/dist/cjs/codama/{devnet/types → types}/triggerContext.js +0 -0
  365. /package/dist/esm/codama/{devnet/accounts → accounts}/thread.js +0 -0
  366. /package/dist/esm/codama/{devnet/errors → errors}/index.js +0 -0
  367. /package/dist/esm/codama/{devnet/index.js → index.js} +0 -0
  368. /package/dist/esm/codama/{devnet/programs → programs}/index.js +0 -0
  369. /package/dist/esm/codama/{devnet/shared → shared}/index.js +0 -0
  370. /package/dist/esm/codama/{devnet/types → types}/clockData.js +0 -0
  371. /package/dist/esm/codama/{devnet/types → types}/equality.js +0 -0
  372. /package/dist/esm/codama/{devnet/types → types}/execContext.js +0 -0
  373. /package/dist/esm/codama/{devnet/types → types}/index.js +0 -0
  374. /package/dist/esm/codama/{devnet/types → types}/paymentFrequency.js +0 -0
  375. /package/dist/esm/codama/{devnet/types → types}/serializableAccount.js +0 -0
  376. /package/dist/esm/codama/{devnet/types → types}/serializableInstruction.js +0 -0
  377. /package/dist/esm/codama/{devnet/types → types}/threadResponse.js +0 -0
  378. /package/dist/esm/codama/{devnet/types → types}/trigger.js +0 -0
  379. /package/dist/esm/codama/{devnet/types → types}/triggerContext.js +0 -0
  380. /package/dist/types/codama/{devnet/accounts → accounts}/thread.d.ts +0 -0
  381. /package/dist/types/codama/{devnet/errors → errors}/index.d.ts +0 -0
  382. /package/dist/types/codama/{devnet/index.d.ts → index.d.ts} +0 -0
  383. /package/dist/types/codama/{devnet/programs → programs}/index.d.ts +0 -0
  384. /package/dist/types/codama/{devnet/shared → shared}/index.d.ts +0 -0
  385. /package/dist/types/codama/{devnet/types → types}/clockData.d.ts +0 -0
  386. /package/dist/types/codama/{devnet/types → types}/equality.d.ts +0 -0
  387. /package/dist/types/codama/{devnet/types → types}/execContext.d.ts +0 -0
  388. /package/dist/types/codama/{devnet/types → types}/index.d.ts +0 -0
  389. /package/dist/types/codama/{devnet/types → types}/paymentFrequency.d.ts +0 -0
  390. /package/dist/types/codama/{devnet/types → types}/serializableAccount.d.ts +0 -0
  391. /package/dist/types/codama/{devnet/types → types}/serializableInstruction.d.ts +0 -0
  392. /package/dist/types/codama/{devnet/types → types}/threadResponse.d.ts +0 -0
  393. /package/dist/types/codama/{devnet/types → types}/trigger.d.ts +0 -0
  394. /package/dist/types/codama/{devnet/types → types}/triggerContext.d.ts +0 -0
  395. /package/target/types/{srsly-devnet.ts → srsly.ts} +0 -0
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Network configuration for the SRSLY SDK
3
+ */
4
+ // Single codama output - network agnostic
5
+ import * as instructions from '../codama/instructions';
6
+ import * as programs from '../codama/programs';
7
+ const PROGRAM_SETS = {
8
+ mainnet: {
9
+ SAGE_PROGRAM_ADDRESS: 'SAGE2HAwep459SNq61LHvjxPk4pLPEJLoMETef7f7EE',
10
+ PROFILE_FACTION_PROGRAM_ADDRESS: 'pFACSRuobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq',
11
+ SAGE_GAME_ID: 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr',
12
+ ATLAS_MINT: 'ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx',
13
+ RPC_URL: 'https://api.mainnet-beta.solana.com',
14
+ },
15
+ atlasnet: {
16
+ SAGE_PROGRAM_ADDRESS: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
17
+ PROFILE_FACTION_PROGRAM_ADDRESS: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
18
+ SAGE_GAME_ID: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
19
+ ATLAS_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
20
+ },
21
+ holosim: {
22
+ SAGE_PROGRAM_ADDRESS: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
23
+ PROFILE_FACTION_PROGRAM_ADDRESS: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
24
+ SAGE_GAME_ID: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
25
+ ATLAS_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
26
+ },
27
+ };
28
+ // Default program set when none is specified
29
+ const DEFAULT_PROGRAM_SET = 'atlasnet';
30
+ // Global configuration state
31
+ let globalConfig = {};
32
+ /**
33
+ * Resolve program addresses based on configuration
34
+ * @param config Effective configuration options
35
+ * @returns Resolved program addresses
36
+ */
37
+ export function resolveProgramAddresses(config) {
38
+ // Determine which program set to use
39
+ const programSet = config.programs || DEFAULT_PROGRAM_SET;
40
+ // Get program addresses from program sets
41
+ const programConfig = PROGRAM_SETS[programSet];
42
+ if (!programConfig) {
43
+ throw new Error(`Unknown program set: ${programSet}. Available: ${Object.keys(PROGRAM_SETS).join(', ')}`);
44
+ }
45
+ return {
46
+ srslyProgramAddress: config.srslyProgramAddress || 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
47
+ sageProgramAddress: programConfig.SAGE_PROGRAM_ADDRESS, // Fixed - cannot be overridden
48
+ profileFactionProgramAddress: config.profileFactionProgramAddress || programConfig.PROFILE_FACTION_PROGRAM_ADDRESS,
49
+ gameId: config.gameId || programConfig.SAGE_GAME_ID,
50
+ atlasMint: config.atlasMint || programConfig.ATLAS_MINT,
51
+ };
52
+ }
53
+ /**
54
+ * Set global configuration options that will be used as defaults for all SDK operations
55
+ * @param config Configuration options to set globally
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // Use default atlasnet program addresses
60
+ * setConfig({ programs: 'atlasnet' });
61
+ *
62
+ * // Use holosim program addresses
63
+ * setConfig({ programs: 'holosim' });
64
+ *
65
+ * // Use holosim program addresses with custom game ID
66
+ * setConfig({
67
+ * programs: 'holosim',
68
+ * gameId: 'custom-game-id...'
69
+ * });
70
+ *
71
+ * // Can still override per instruction
72
+ * await createContract(params).set({ srslyProgramAddress: 'custom...' });
73
+ * ```
74
+ */
75
+ export function setConfig(config) {
76
+ globalConfig = { ...config };
77
+ }
78
+ /**
79
+ * Get the current global configuration
80
+ * @returns Current global configuration options
81
+ */
82
+ export function getConfig() {
83
+ return { ...globalConfig };
84
+ }
85
+ /**
86
+ * Clear global configuration (resets to atlasnet program set defaults)
87
+ */
88
+ export function clearConfig() {
89
+ globalConfig = {};
90
+ }
91
+ /**
92
+ * Get the effective configuration by merging global config with provided overrides
93
+ * @param overrides Optional configuration overrides
94
+ * @returns Merged configuration with global defaults and any overrides
95
+ */
96
+ export function getEffectiveConfig(overrides) {
97
+ return { ...globalConfig, ...overrides };
98
+ }
99
+ /**
100
+ * Get the single codama module (network agnostic)
101
+ * @param modulePath The module type ('instructions' or 'programs')
102
+ * @returns The codama module
103
+ */
104
+ export function getModule(modulePath) {
105
+ return modulePath === 'instructions' ? instructions : programs;
106
+ }
107
+ /**
108
+ * @deprecated Use getModule instead. This function is kept for backward compatibility.
109
+ * Get codama modules (network agnostic)
110
+ */
111
+ export async function getCachedNetworkModule(modulePath) {
112
+ if (modulePath !== 'instructions' && modulePath !== 'programs') {
113
+ throw new Error(`Unsupported module path: ${modulePath}. Use 'instructions' or 'programs'.`);
114
+ }
115
+ return getModule(modulePath);
116
+ }
117
+ /**
118
+ * Create a chainable config selector with existing configuration state.
119
+ * This enables config chaining by merging new options with existing ones.
120
+ *
121
+ * Used internally when .set() is called on an existing ConfigSelector.
122
+ *
123
+ * @param executeFn - The function to execute with merged configuration
124
+ * @param existingConfig - The current configuration state to merge with
125
+ * @returns A ConfigSelector that can chain additional .set() calls
126
+ *
127
+ * @example
128
+ * // This creates a chainable selector that merges { programs: 'atlasnet' }
129
+ * // with any additional config options passed to subsequent .set() calls
130
+ * createChainableConfigSelector(executeFn, { programs: 'atlasnet' })
131
+ */
132
+ function createChainableConfigSelector(executeFn, existingConfig) {
133
+ const selector = {
134
+ set: (additionalOptions) => createChainableConfigSelector(executeFn, { ...existingConfig, ...additionalOptions }),
135
+ build: () => executeFn(existingConfig),
136
+ // Implement PromiseLike to allow direct awaiting
137
+ then(onfulfilled, onrejected) {
138
+ return executeFn(existingConfig).then(onfulfilled, onrejected);
139
+ }
140
+ };
141
+ return selector;
142
+ }
143
+ /**
144
+ * Create the initial fluent config selector for a function.
145
+ * This is the main entry point for the fluent configuration API.
146
+ *
147
+ * The returned selector can be:
148
+ * - Awaited directly (uses global config + atlasnet fallback)
149
+ * - Configured with .set() to override network/constants
150
+ * - Chained with multiple .set() calls
151
+ *
152
+ * @param executeFn - The function to execute with optional configuration
153
+ * @returns A ConfigSelector that supports fluent configuration
154
+ *
155
+ * @example
156
+ * // Usage patterns:
157
+ * setConfig({ programs: 'mainnet' });
158
+ * await createConfigSelector(executeFn) // Direct await (uses global config)
159
+ * await createConfigSelector(executeFn).set({...}) // Override global config
160
+ * await createConfigSelector(executeFn).set({...}).set({...}) // Chained configs
161
+ */
162
+ export function createConfigSelector(executeFn) {
163
+ const selector = {
164
+ set: (options) => createChainableConfigSelector(executeFn, getEffectiveConfig(options)),
165
+ build: () => executeFn(getEffectiveConfig()),
166
+ // Implement PromiseLike to allow direct awaiting
167
+ then(onfulfilled, onrejected) {
168
+ return executeFn(getEffectiveConfig()).then(onfulfilled, onrejected);
169
+ }
170
+ };
171
+ return selector;
172
+ }
173
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0CAA0C;AAC1C,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAI/C,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE;QACP,oBAAoB,EAAE,6CAA6C;QACnE,+BAA+B,EAAE,6CAA6C;QAC9E,YAAY,EAAE,8CAA8C;QAC5D,UAAU,EAAE,8CAA8C;QAC1D,OAAO,EAAE,qCAAqC;KAC/C;IACD,QAAQ,EAAE;QACR,oBAAoB,EAAE,6CAA6C;QACnE,+BAA+B,EAAE,6CAA6C;QAC9E,YAAY,EAAE,8CAA8C;QAC5D,UAAU,EAAE,8CAA8C;KAC3D;IACD,OAAO,EAAE;QACP,oBAAoB,EAAE,6CAA6C;QACnE,+BAA+B,EAAE,6CAA6C;QAC9E,YAAY,EAAE,8CAA8C;QAC5D,UAAU,EAAE,8CAA8C;KAC3D;CACO,CAAC;AAaX,6CAA6C;AAC7C,MAAM,mBAAmB,GAAe,UAAU,CAAC;AAEnD,6BAA6B;AAC7B,IAAI,YAAY,GAAkB,EAAE,CAAC;AAErC;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAqB;IAC3D,qCAAqC;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,IAAI,mBAAmB,CAAC;IAE1D,0CAA0C;IAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,gBAAgB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,OAAO;QACL,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,6CAA6C;QAChG,kBAAkB,EAAE,aAAa,CAAC,oBAAoB,EAAE,+BAA+B;QACvF,4BAA4B,EAAE,MAAM,CAAC,4BAA4B,IAAI,aAAa,CAAC,+BAA+B;QAClH,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,YAAY;QACnD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,aAAa,CAAC,UAAU;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,SAAS,CAAC,MAAqB;IAC7C,YAAY,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,YAAY,GAAG,EAAE,CAAC;AACpB,CAAC;AAGD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAyB;IAC1D,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,EAAE,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,UAAuC;IAC/D,OAAO,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAU,UAAkB;IACtE,IAAI,UAAU,KAAK,cAAc,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,qCAAqC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,SAAS,CAAC,UAAyC,CAAC,CAAC;AAC9D,CAAC;AAqBD;;;;;;;;;;;;;;GAcG;AACH,SAAS,6BAA6B,CACpC,SAAiD,EACjD,cAA6B;IAE7B,MAAM,QAAQ,GAAG;QACf,GAAG,EAAE,CAAC,iBAAgC,EAAE,EAAE,CACxC,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAC;QACvF,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC;QACtC,iDAAiD;QACjD,IAAI,CACF,WAAqE,EACrE,UAAuE;YAEvE,OAAO,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACjE,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAiD;IAEjD,MAAM,QAAQ,GAAG;QACf,GAAG,EAAE,CAAC,OAAsB,EAAE,EAAE,CAAC,6BAA6B,CAAC,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACtG,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAC5C,iDAAiD;QACjD,IAAI,CACF,WAAqE,EACrE,UAAuE;YAEvE,OAAO,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACvE,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,26 +1,57 @@
1
- import { getCachedNetworkModule } from '../network';
2
- // Export async functions to get network-specific constants
3
- export async function getPaymentFrequency() {
4
- const module = await getCachedNetworkModule('types');
5
- return module.PaymentFrequency;
6
- }
7
- export async function getSrslyProgramAddress() {
8
- const module = await getCachedNetworkModule('programs');
9
- return module.SRSLY_PROGRAM_ADDRESS;
10
- }
11
- // Export async function to get program ID
12
- export async function getProgramId() {
13
- return await getSrslyProgramAddress();
1
+ import { getConfig, resolveProgramAddresses } from './config';
2
+ /**
3
+ * Converts a string or Address to an Address type
4
+ * This utility ensures consistent address handling across the SDK
5
+ * Note: This is a simple passthrough now since pack functions handle library-specific conversions
6
+ */
7
+ export function toAddress(value) {
8
+ return value;
14
9
  }
15
- // Constants for program IDs
16
- export const SAGE_PROGRAM_ADDRESS = 'sAgezwJpDb1aHvzNr3o24cKjsETmFEKghBEyJ1askDi';
17
- export const PROFILE_FACTION_PROGRAM_ADDRESS = 'pFACSRuobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq';
18
- export const DEFAULT_GAME_ID = 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr';
19
10
  // Seed constants
20
11
  export const STARBASE_SEED = 'Starbase';
21
12
  export const STARBASE_PLAYER_SEED = 'starbase_player';
22
13
  export const SAGE_PLAYER_PROFILE_SEED = 'sage_player_profile';
23
14
  export const PROFILE_FACTION_SEED = 'profile_faction';
15
+ // Token conversion constants
16
+ export const ATLAS_TO_STARDUST = 100_000_000; // 1 ATLAS = 100,000,000 stardust
17
+ // PaymentFrequency enum is now exported from codama-generated types
18
+ // Network constants are now managed in config.ts
19
+ export async function getSrslyProgramAddress(config) {
20
+ const globalConfig = getConfig();
21
+ const effectiveConfig = { ...globalConfig, ...config };
22
+ const resolved = resolveProgramAddresses(effectiveConfig);
23
+ return toAddress(resolved.srslyProgramAddress);
24
+ }
25
+ // Export async function to get program ID
26
+ export async function getProgramId() {
27
+ return await getSrslyProgramAddress();
28
+ }
29
+ // Network-specific constants with configuration support
30
+ export async function getSageProgramAddress(config) {
31
+ const globalConfig = getConfig();
32
+ const effectiveConfig = { ...globalConfig, ...config };
33
+ const resolved = resolveProgramAddresses(effectiveConfig);
34
+ // Note: SAGE program address is fixed based on network and cannot be overridden
35
+ return toAddress(resolved.sageProgramAddress);
36
+ }
37
+ export async function getProfileFactionProgramAddress(config) {
38
+ const globalConfig = getConfig();
39
+ const effectiveConfig = { ...globalConfig, ...config };
40
+ const resolved = resolveProgramAddresses(effectiveConfig);
41
+ return toAddress(resolved.profileFactionProgramAddress);
42
+ }
43
+ export async function getSageGameId(config) {
44
+ const globalConfig = getConfig();
45
+ const effectiveConfig = { ...globalConfig, ...config };
46
+ const resolved = resolveProgramAddresses(effectiveConfig);
47
+ return toAddress(resolved.gameId);
48
+ }
49
+ export async function getAtlasMint(config) {
50
+ const globalConfig = getConfig();
51
+ const effectiveConfig = { ...globalConfig, ...config };
52
+ const resolved = resolveProgramAddresses(effectiveConfig);
53
+ return toAddress(resolved.atlasMint);
54
+ }
24
55
  // Faction-specific CSS coordinates for starbase derivation
25
56
  export const FACTION_SPECIFIC_CSS = {
26
57
  mud: { x: 0, y: -39 },
@@ -32,11 +63,5 @@ export const FACTION_MAPPING = {
32
63
  2: 'oni',
33
64
  3: 'ustur'
34
65
  };
35
- /**
36
- * Convert PaymentFrequency enum to string (async version)
37
- */
38
- export async function paymentFrequencyToString(freq) {
39
- const PaymentFrequency = await getPaymentFrequency();
40
- return PaymentFrequency[freq].toLowerCase();
41
- }
66
+ // PaymentFrequency utilities are now in utils/paymentFrequency.ts
42
67
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,gBAAgB,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,qBAAqB,CAAC;AACtC,CAAC;AAGD,0CAA0C;AAC1C,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,OAAO,MAAM,sBAAsB,EAAE,CAAC;AACxC,CAAC;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,6CAA6C,CAAC;AAClF,MAAM,CAAC,MAAM,+BAA+B,GAAG,6CAA6C,CAAC;AAC7F,MAAM,CAAC,MAAM,eAAe,GAAG,8CAA8C,CAAC;AAE9E,iBAAiB;AACjB,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AACtD,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;AAEtD,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;IACrB,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;IACtB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,KAAK;IACR,CAAC,EAAE,OAAO;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAS;IACtD,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACrD,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import { PAYMENT_FREQUENCY_CONSTANTS } from '../types/paymentFrequency';
2
+ /**
3
+ * Duration helper functions for converting time units to seconds
4
+ * Uses the same constants as the payment frequency system for consistency
5
+ */
6
+ const { SECONDS_PER_DECASECOND, SECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, SECONDS_PER_MONTH } = PAYMENT_FREQUENCY_CONSTANTS;
7
+ /**
8
+ * Convert decaseconds (10 seconds) to seconds
9
+ * @param amount Number of decaseconds
10
+ * @returns Number of seconds
11
+ */
12
+ export function decaseconds(amount) {
13
+ return amount * SECONDS_PER_DECASECOND;
14
+ }
15
+ /**
16
+ * Convert minutes to seconds
17
+ * @param amount Number of minutes
18
+ * @returns Number of seconds
19
+ */
20
+ export function minutes(amount) {
21
+ return amount * SECONDS_PER_MINUTE;
22
+ }
23
+ /**
24
+ * Convert hours to seconds
25
+ * @param amount Number of hours
26
+ * @returns Number of seconds
27
+ */
28
+ export function hours(amount) {
29
+ return amount * SECONDS_PER_HOUR;
30
+ }
31
+ /**
32
+ * Convert days to seconds
33
+ * @param amount Number of days
34
+ * @returns Number of seconds
35
+ */
36
+ export function days(amount) {
37
+ return amount * SECONDS_PER_DAY;
38
+ }
39
+ /**
40
+ * Convert weeks to seconds
41
+ * @param amount Number of weeks
42
+ * @returns Number of seconds
43
+ */
44
+ export function weeks(amount) {
45
+ return amount * SECONDS_PER_WEEK;
46
+ }
47
+ /**
48
+ * Convert months to seconds
49
+ * @param amount Number of months (31 days each)
50
+ * @returns Number of seconds
51
+ */
52
+ export function months(amount) {
53
+ return amount * SECONDS_PER_MONTH;
54
+ }
55
+ /**
56
+ * All duration helper functions
57
+ */
58
+ export const duration = {
59
+ decaseconds,
60
+ minutes,
61
+ hours,
62
+ days,
63
+ weeks,
64
+ months,
65
+ // Also expose the raw constants for advanced users
66
+ constants: PAYMENT_FREQUENCY_CONSTANTS,
67
+ };
68
+ //# sourceMappingURL=duration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.js","sourceRoot":"","sources":["../../../src/utils/duration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;GAGG;AAEH,MAAM,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,GAAG,2BAA2B,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM,GAAG,sBAAsB,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,OAAO,MAAM,GAAG,kBAAkB,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,MAAM,GAAG,gBAAgB,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,IAAI,CAAC,MAAc;IACjC,OAAO,MAAM,GAAG,eAAe,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc;IAClC,OAAO,MAAM,GAAG,gBAAgB,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAAc;IACnC,OAAO,MAAM,GAAG,iBAAiB,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW;IACX,OAAO;IACP,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IAEN,mDAAmD;IACnD,SAAS,EAAE,2BAA2B;CAC9B,CAAC"}
@@ -1,3 +1,7 @@
1
1
  export * from "./constants";
2
2
  export * from "./profiles";
3
+ export * from "./config";
4
+ export * from "./paymentFrequency";
5
+ export * from "./duration";
6
+ export * from "./instruction-converter";
3
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Fluent instruction interface for format conversion between @solana/kit and @solana/web3.js
3
+ */
4
+ /**
5
+ * Create a fluent instruction wrapper around a kit instruction
6
+ * @param kitInstruction The base instruction in kit format
7
+ * @returns Fluent instruction with conversion methods
8
+ */
9
+ export function createFluentInstruction(kitInstruction) {
10
+ function web3js(PublicKeyConstructor) {
11
+ if (PublicKeyConstructor) {
12
+ // Return instruction with PublicKey instances
13
+ return {
14
+ keys: kitInstruction.accounts.map(account => ({
15
+ pubkey: new PublicKeyConstructor(account.address),
16
+ isWritable: (account.role & 1) === 1, // Check if writable bit is set
17
+ isSigner: (account.role & 2) === 2, // Check if signer bit is set
18
+ })),
19
+ programId: new PublicKeyConstructor(kitInstruction.programAddress),
20
+ data: kitInstruction.data
21
+ };
22
+ }
23
+ else {
24
+ // Return instruction with string addresses
25
+ return {
26
+ keys: kitInstruction.accounts.map(account => ({
27
+ pubkey: account.address,
28
+ isWritable: (account.role & 1) === 1, // Check if writable bit is set
29
+ isSigner: (account.role & 2) === 2, // Check if signer bit is set
30
+ })),
31
+ programId: kitInstruction.programAddress,
32
+ data: kitInstruction.data
33
+ };
34
+ }
35
+ }
36
+ return {
37
+ ...kitInstruction,
38
+ web3js
39
+ };
40
+ }
41
+ /**
42
+ * Create a fluent config selector that adds format conversion methods
43
+ * @param baseSelector The base ConfigSelector
44
+ * @returns FluentConfigSelector with additional format conversion methods
45
+ */
46
+ export function createFluentConfigSelector(baseSelector) {
47
+ async function web3js(PublicKeyConstructor) {
48
+ const fluentInstruction = await baseSelector.build();
49
+ return fluentInstruction.web3js(PublicKeyConstructor);
50
+ }
51
+ return {
52
+ // Override set to return FluentConfigSelector
53
+ set(options) {
54
+ const newBaseSelector = baseSelector.set(options);
55
+ return createFluentConfigSelector(newBaseSelector);
56
+ },
57
+ build: baseSelector.build,
58
+ then: baseSelector.then,
59
+ web3js
60
+ };
61
+ }
62
+ //# sourceMappingURL=instruction-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruction-converter.js","sourceRoot":"","sources":["../../../src/utils/instruction-converter.ts"],"names":[],"mappings":"AAAA;;GAEG;AA6GH;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,cAA8B;IACpE,SAAS,MAAM,CAAa,oBAAuD;QACjF,IAAI,oBAAoB,EAAE,CAAC;YACzB,8CAA8C;YAC9C,OAAO;gBACL,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC5C,MAAM,EAAE,IAAI,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;oBACjD,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,+BAA+B;oBACrE,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAI,6BAA6B;iBACpE,CAAC,CAAC;gBACH,SAAS,EAAE,IAAI,oBAAoB,CAAC,cAAc,CAAC,cAAc,CAAC;gBAClE,IAAI,EAAE,cAAc,CAAC,IAAI;aAC1B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,2CAA2C;YAC3C,OAAO;gBACL,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC5C,MAAM,EAAE,OAAO,CAAC,OAAO;oBACvB,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,+BAA+B;oBACrE,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,EAAI,6BAA6B;iBACpE,CAAC,CAAC;gBACH,SAAS,EAAE,cAAc,CAAC,cAAc;gBACxC,IAAI,EAAE,cAAc,CAAC,IAAI;aAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,cAAc;QACjB,MAAM;KACc,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAA+B;IAE/B,KAAK,UAAU,MAAM,CAAa,oBAAuD;QACvF,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;QACrD,OAAO,iBAAiB,CAAC,MAAM,CAAC,oBAA2B,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,8CAA8C;QAC9C,GAAG,CAAC,OAAY;YACd,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,0BAA0B,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC;QACD,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,MAAM;KACoB,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { PaymentFrequency } from '../codama/types/paymentFrequency';
2
+ import { PAYMENT_FREQUENCY_MAP, PAYMENT_FREQUENCY_CONSTANTS } from '../types/paymentFrequency';
3
+ /**
4
+ * Payment frequency conversion utilities
5
+ * Mirrors the Rust implementation in programs/srsly/src/utils.rs
6
+ * Uses auto-generated constants and mappings from Rust source
7
+ */
8
+ // Auto-synced constants from Rust constants.rs
9
+ const { SECONDS_PER_DECASECOND, SECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK, SECONDS_PER_MONTH } = PAYMENT_FREQUENCY_CONSTANTS;
10
+ /**
11
+ * Converts a PaymentFrequency enum value to seconds
12
+ * Mirrors the to_seconds() method from the Rust implementation
13
+ */
14
+ export function paymentFrequencyToSeconds(frequency) {
15
+ switch (frequency) {
16
+ case PaymentFrequency.Decasecond:
17
+ return SECONDS_PER_DECASECOND;
18
+ case PaymentFrequency.Minute:
19
+ return SECONDS_PER_MINUTE;
20
+ case PaymentFrequency.Hourly:
21
+ return SECONDS_PER_HOUR;
22
+ case PaymentFrequency.Daily:
23
+ case PaymentFrequency.DailyOld:
24
+ return SECONDS_PER_DAY;
25
+ case PaymentFrequency.Weekly:
26
+ return SECONDS_PER_WEEK;
27
+ case PaymentFrequency.Monthly:
28
+ return SECONDS_PER_MONTH;
29
+ default:
30
+ throw new Error(`Unknown payment frequency: ${frequency}`);
31
+ }
32
+ }
33
+ /**
34
+ * Converts a payment frequency string to seconds
35
+ * Uses auto-generated mapping from Rust PaymentFrequency enum
36
+ */
37
+ export function paymentFrequencyStringToSeconds(frequencyString) {
38
+ const frequency = PAYMENT_FREQUENCY_MAP[frequencyString];
39
+ if (frequency === undefined) {
40
+ throw new Error(`Invalid payment frequency string: ${frequencyString}`);
41
+ }
42
+ return paymentFrequencyToSeconds(frequency);
43
+ }
44
+ /**
45
+ * Validates that a duration is a multiple of the payment frequency
46
+ * Uses auto-generated types from Rust PaymentFrequency enum
47
+ */
48
+ export function validateDurationAlignment(duration, frequencyString) {
49
+ const durationNumber = Number(duration);
50
+ const frequencySeconds = paymentFrequencyStringToSeconds(frequencyString);
51
+ if (durationNumber % frequencySeconds !== 0) {
52
+ throw new Error(`Duration (${duration} seconds) must be a multiple of ${frequencyString} frequency (${frequencySeconds} seconds)`);
53
+ }
54
+ }
55
+ //# sourceMappingURL=paymentFrequency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentFrequency.js","sourceRoot":"","sources":["../../../src/utils/paymentFrequency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAEL,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AAEH,+CAA+C;AAC/C,MAAM,EACJ,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAClB,GAAG,2BAA2B,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAA2B;IACnE,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,sBAAsB,CAAC;QAChC,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,kBAAkB,CAAC;QAC5B,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,KAAK,gBAAgB,CAAC,KAAK,CAAC;QAC5B,KAAK,gBAAgB,CAAC,QAAQ;YAC5B,OAAO,eAAe,CAAC;QACzB,KAAK,gBAAgB,CAAC,MAAM;YAC1B,OAAO,gBAAgB,CAAC;QAC1B,KAAK,gBAAgB,CAAC,OAAO;YAC3B,OAAO,iBAAiB,CAAC;QAC3B;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,+BAA+B,CAAC,eAAuC;IACrF,MAAM,SAAS,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACzD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,yBAAyB,CAAC,SAAS,CAAC,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAyB,EACzB,eAAuC;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,+BAA+B,CAAC,eAAe,CAAC,CAAC;IAE1E,IAAI,cAAc,GAAG,gBAAgB,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,mCAAmC,eAAe,eAAe,gBAAgB,WAAW,CAClH,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { getBytesEncoder, getAddressEncoder, getProgramDerivedAddress } from '@solana/kit';
2
- import { DEFAULT_GAME_ID, FACTION_MAPPING, FACTION_SPECIFIC_CSS, PROFILE_FACTION_PROGRAM_ADDRESS, PROFILE_FACTION_SEED, SAGE_PLAYER_PROFILE_SEED, SAGE_PROGRAM_ADDRESS, STARBASE_PLAYER_SEED, STARBASE_SEED } from './constants';
2
+ import { FACTION_MAPPING, FACTION_SPECIFIC_CSS, PROFILE_FACTION_SEED, SAGE_PLAYER_PROFILE_SEED, STARBASE_PLAYER_SEED, STARBASE_SEED } from './constants';
3
+ import { getSageGameId, getSageProgramAddress, getProfileFactionProgramAddress } from './constants';
3
4
  /**
4
5
  * Helper function to convert a string seed to a Uint8Array
5
6
  * This is necessary for @solana/kit's getBytesEncoder().encode()
@@ -14,11 +15,13 @@ function seedToBytes(seed) {
14
15
  * Helper function to derive the borrower's profile faction account
15
16
  *
16
17
  * @param profile The borrower's profile address
18
+ * @param config Optional configuration for network-specific constants
17
19
  * @returns Promise that resolves to the derived profile faction address
18
20
  */
19
- export async function deriveProfileFaction(profile) {
21
+ export async function deriveProfileFaction(profile, config) {
22
+ const programAddress = await getProfileFactionProgramAddress(config);
20
23
  const [address] = await getProgramDerivedAddress({
21
- programAddress: PROFILE_FACTION_PROGRAM_ADDRESS,
24
+ programAddress: programAddress,
22
25
  seeds: [
23
26
  seedToBytes(PROFILE_FACTION_SEED),
24
27
  getAddressEncoder().encode(profile)
@@ -30,16 +33,21 @@ export async function deriveProfileFaction(profile) {
30
33
  * Helper function to derive the sage player profile
31
34
  *
32
35
  * @param borrowerProfile The borrower's profile address
33
- * @param gameId The game ID (defaults to the standard game ID)
36
+ * @param gameId The game ID (if not provided, uses network-specific default)
37
+ * @param config Optional configuration for network-specific constants
34
38
  * @returns Promise that resolves to the derived sage player profile address
35
39
  */
36
- export async function deriveSagePlayerProfile(borrowerProfile, gameId = DEFAULT_GAME_ID) {
40
+ export async function deriveSagePlayerProfile(borrowerProfile, gameId, config) {
41
+ const [programAddress, actualGameId] = await Promise.all([
42
+ getSageProgramAddress(config),
43
+ gameId || getSageGameId(config)
44
+ ]);
37
45
  const [address] = await getProgramDerivedAddress({
38
- programAddress: SAGE_PROGRAM_ADDRESS,
46
+ programAddress: programAddress,
39
47
  seeds: [
40
48
  seedToBytes(SAGE_PLAYER_PROFILE_SEED),
41
49
  getAddressEncoder().encode(borrowerProfile),
42
- getAddressEncoder().encode(gameId)
50
+ getAddressEncoder().encode(actualGameId)
43
51
  ]
44
52
  });
45
53
  return address;
@@ -48,10 +56,11 @@ export async function deriveSagePlayerProfile(borrowerProfile, gameId = DEFAULT_
48
56
  * Helper function to derive the starbase address based on faction
49
57
  *
50
58
  * @param faction The faction (1/2/3 or 'mud'/'oni'/'ustur')
51
- * @param gameId The game ID (defaults to the standard game ID)
59
+ * @param gameId The game ID (if not provided, uses network-specific default)
60
+ * @param config Optional configuration for network-specific constants
52
61
  * @returns Promise that resolves to the derived starbase address
53
62
  */
54
- export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
63
+ export async function deriveStarbase(faction, gameId, config) {
55
64
  // Convert faction to string representation if it's a number
56
65
  const factionName = typeof faction === 'number'
57
66
  ? FACTION_MAPPING[faction]
@@ -62,6 +71,11 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
62
71
  }
63
72
  // Get coordinates for the faction
64
73
  const coords = FACTION_SPECIFIC_CSS[factionName];
74
+ // Get network-specific constants
75
+ const [programAddress, actualGameId] = await Promise.all([
76
+ getSageProgramAddress(config),
77
+ gameId || getSageGameId(config)
78
+ ]);
65
79
  // Convert coordinates to bytes (little-endian, two's complement)
66
80
  const xCoord = new DataView(new ArrayBuffer(8));
67
81
  const yCoord = new DataView(new ArrayBuffer(8));
@@ -71,10 +85,10 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
71
85
  const xBytes = new Uint8Array(xCoord.buffer);
72
86
  const yBytes = new Uint8Array(yCoord.buffer);
73
87
  const [address] = await getProgramDerivedAddress({
74
- programAddress: SAGE_PROGRAM_ADDRESS,
88
+ programAddress: programAddress,
75
89
  seeds: [
76
90
  seedToBytes(STARBASE_SEED),
77
- getAddressEncoder().encode(gameId),
91
+ getAddressEncoder().encode(actualGameId),
78
92
  getBytesEncoder().encode(xBytes),
79
93
  getBytesEncoder().encode(yBytes)
80
94
  ]
@@ -87,15 +101,18 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
87
101
  * @param sagePlayerProfile The sage player profile address
88
102
  * @param starbase The starbase address
89
103
  * @param starbaseSeqId The starbase sequence ID (defaults to 0)
104
+ * @param config Optional configuration for network-specific constants
90
105
  * @returns Promise that resolves to the derived starbase player address
91
106
  */
92
- export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId = 0) {
107
+ export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId = 0, config) {
108
+ // Get network-specific SAGE program address
109
+ const programAddress = await getSageProgramAddress(config);
93
110
  // Convert sequence ID to bytes (little-endian uint16)
94
111
  const seqIdView = new DataView(new ArrayBuffer(2));
95
112
  seqIdView.setUint16(0, starbaseSeqId, true);
96
113
  const seqIdBytes = new Uint8Array(seqIdView.buffer);
97
114
  const [address] = await getProgramDerivedAddress({
98
- programAddress: SAGE_PROGRAM_ADDRESS,
115
+ programAddress: programAddress,
99
116
  seeds: [
100
117
  seedToBytes(STARBASE_PLAYER_SEED),
101
118
  getAddressEncoder().encode(starbase),
@@ -110,19 +127,22 @@ export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbase
110
127
  *
111
128
  * @param profile The borrower's profile address
112
129
  * @param faction The faction (1/2/3 or 'mud'/'oni'/'ustur')
113
- * @param gameId The game ID (defaults to the standard game ID)
130
+ * @param gameId The game ID (if not provided, uses network-specific default)
114
131
  * @param starbaseSeqId The starbase sequence ID (defaults to 0)
132
+ * @param config Optional configuration for network-specific constants
115
133
  * @returns Promise that resolves to the three derived addresses
116
134
  */
117
- export async function deriveGameAccounts(profile, faction, gameId = DEFAULT_GAME_ID, starbaseSeqId = 0) {
135
+ export async function deriveGameAccounts(profile, faction, gameId, starbaseSeqId = 0, config) {
136
+ // Get the actual game ID to use
137
+ const actualGameId = gameId || await getSageGameId(config);
118
138
  // Derive the three accounts in parallel
119
139
  const [profileFaction, sagePlayerProfile, starbase] = await Promise.all([
120
- deriveProfileFaction(profile),
121
- deriveSagePlayerProfile(profile, gameId),
122
- deriveStarbase(faction, gameId)
140
+ deriveProfileFaction(profile, config),
141
+ deriveSagePlayerProfile(profile, actualGameId, config),
142
+ deriveStarbase(faction, actualGameId, config)
123
143
  ]);
124
144
  // Derive starbasePlayer using the results from above
125
- const starbasePlayer = await deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId);
145
+ const starbasePlayer = await deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId, config);
126
146
  return {
127
147
  profileFaction,
128
148
  starbase,
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/utils/profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/utils/profiles.ts"],"names":[],"mappings":"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"}