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

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 (266) hide show
  1. package/README.md +217 -83
  2. package/dist/cjs/codama/devnet/constants.js +32 -0
  3. package/dist/cjs/codama/devnet/constants.js.map +1 -0
  4. package/dist/cjs/codama/mainnet/accounts/contractState.js +92 -0
  5. package/dist/cjs/codama/mainnet/accounts/contractState.js.map +1 -0
  6. package/dist/cjs/codama/mainnet/accounts/fleet.js +77 -0
  7. package/dist/cjs/codama/mainnet/accounts/fleet.js.map +1 -0
  8. package/dist/cjs/codama/mainnet/accounts/index.js +28 -0
  9. package/dist/cjs/codama/mainnet/accounts/index.js.map +1 -0
  10. package/dist/cjs/codama/mainnet/accounts/rentalState.js +85 -0
  11. package/dist/cjs/codama/mainnet/accounts/rentalState.js.map +1 -0
  12. package/dist/cjs/codama/mainnet/accounts/thread.js +89 -0
  13. package/dist/cjs/codama/mainnet/accounts/thread.js.map +1 -0
  14. package/dist/cjs/codama/mainnet/constants.js +32 -0
  15. package/dist/cjs/codama/mainnet/constants.js.map +1 -0
  16. package/dist/cjs/codama/mainnet/errors/index.js +25 -0
  17. package/dist/cjs/codama/mainnet/errors/index.js.map +1 -0
  18. package/dist/cjs/codama/mainnet/errors/srsly.js +71 -0
  19. package/dist/cjs/codama/mainnet/errors/srsly.js.map +1 -0
  20. package/dist/cjs/codama/mainnet/index.js +29 -0
  21. package/dist/cjs/codama/mainnet/index.js.map +1 -0
  22. package/dist/cjs/codama/mainnet/instructions/acceptRental.js +363 -0
  23. package/dist/cjs/codama/mainnet/instructions/acceptRental.js.map +1 -0
  24. package/dist/cjs/codama/mainnet/instructions/cancelRental.js +225 -0
  25. package/dist/cjs/codama/mainnet/instructions/cancelRental.js.map +1 -0
  26. package/dist/cjs/codama/mainnet/instructions/closeContract.js +219 -0
  27. package/dist/cjs/codama/mainnet/instructions/closeContract.js.map +1 -0
  28. package/dist/cjs/codama/mainnet/instructions/closeRental.js +233 -0
  29. package/dist/cjs/codama/mainnet/instructions/closeRental.js.map +1 -0
  30. package/dist/cjs/codama/mainnet/instructions/createContract.js +261 -0
  31. package/dist/cjs/codama/mainnet/instructions/createContract.js.map +1 -0
  32. package/dist/cjs/codama/mainnet/instructions/index.js +32 -0
  33. package/dist/cjs/codama/mainnet/instructions/index.js.map +1 -0
  34. package/dist/cjs/codama/mainnet/instructions/normalizeAdmin.js +152 -0
  35. package/dist/cjs/codama/mainnet/instructions/normalizeAdmin.js.map +1 -0
  36. package/dist/cjs/codama/mainnet/instructions/payRental.js +236 -0
  37. package/dist/cjs/codama/mainnet/instructions/payRental.js.map +1 -0
  38. package/dist/cjs/codama/mainnet/instructions/resetRental.js +155 -0
  39. package/dist/cjs/codama/mainnet/instructions/resetRental.js.map +1 -0
  40. package/dist/cjs/codama/mainnet/programs/index.js +25 -0
  41. package/dist/cjs/codama/mainnet/programs/index.js.map +1 -0
  42. package/dist/cjs/codama/mainnet/programs/srsly.js +77 -0
  43. package/dist/cjs/codama/mainnet/programs/srsly.js.map +1 -0
  44. package/dist/cjs/codama/mainnet/shared/index.js +95 -0
  45. package/dist/cjs/codama/mainnet/shared/index.js.map +1 -0
  46. package/dist/cjs/codama/mainnet/types/clockData.js +31 -0
  47. package/dist/cjs/codama/mainnet/types/clockData.js.map +1 -0
  48. package/dist/cjs/codama/mainnet/types/equality.js +30 -0
  49. package/dist/cjs/codama/mainnet/types/equality.js.map +1 -0
  50. package/dist/cjs/codama/mainnet/types/execContext.js +38 -0
  51. package/dist/cjs/codama/mainnet/types/execContext.js.map +1 -0
  52. package/dist/cjs/codama/mainnet/types/index.js +33 -0
  53. package/dist/cjs/codama/mainnet/types/index.js.map +1 -0
  54. package/dist/cjs/codama/mainnet/types/paymentFrequency.js +32 -0
  55. package/dist/cjs/codama/mainnet/types/paymentFrequency.js.map +1 -0
  56. package/dist/cjs/codama/mainnet/types/serializableAccount.js +31 -0
  57. package/dist/cjs/codama/mainnet/types/serializableAccount.js.map +1 -0
  58. package/dist/cjs/codama/mainnet/types/serializableInstruction.js +32 -0
  59. package/dist/cjs/codama/mainnet/types/serializableInstruction.js.map +1 -0
  60. package/dist/cjs/codama/mainnet/types/threadResponse.js +38 -0
  61. package/dist/cjs/codama/mainnet/types/threadResponse.js.map +1 -0
  62. package/dist/cjs/codama/mainnet/types/trigger.js +90 -0
  63. package/dist/cjs/codama/mainnet/types/trigger.js.map +1 -0
  64. package/dist/cjs/codama/mainnet/types/triggerContext.js +49 -0
  65. package/dist/cjs/codama/mainnet/types/triggerContext.js.map +1 -0
  66. package/dist/cjs/contract/close.js +51 -19
  67. package/dist/cjs/contract/close.js.map +1 -1
  68. package/dist/cjs/contract/create.js +31 -19
  69. package/dist/cjs/contract/create.js.map +1 -1
  70. package/dist/cjs/index.js +0 -2
  71. package/dist/cjs/index.js.map +1 -1
  72. package/dist/cjs/rental/accept.js +46 -33
  73. package/dist/cjs/rental/accept.js.map +1 -1
  74. package/dist/cjs/rental/cancel.js +30 -24
  75. package/dist/cjs/rental/cancel.js.map +1 -1
  76. package/dist/cjs/rental/close.js +31 -25
  77. package/dist/cjs/rental/close.js.map +1 -1
  78. package/dist/cjs/rental/reset.js +40 -38
  79. package/dist/cjs/rental/reset.js.map +1 -1
  80. package/dist/cjs/utils/config.js +204 -0
  81. package/dist/cjs/utils/config.js.map +1 -0
  82. package/dist/cjs/utils/constants.js +66 -13
  83. package/dist/cjs/utils/constants.js.map +1 -1
  84. package/dist/cjs/utils/index.js +1 -0
  85. package/dist/cjs/utils/index.js.map +1 -1
  86. package/dist/cjs/utils/profiles.js +38 -18
  87. package/dist/cjs/utils/profiles.js.map +1 -1
  88. package/dist/esm/codama/devnet/constants.js +29 -0
  89. package/dist/esm/codama/devnet/constants.js.map +1 -0
  90. package/dist/esm/codama/mainnet/accounts/contractState.js +79 -0
  91. package/dist/esm/codama/mainnet/accounts/contractState.js.map +1 -0
  92. package/dist/esm/codama/mainnet/accounts/fleet.js +64 -0
  93. package/dist/esm/codama/mainnet/accounts/fleet.js.map +1 -0
  94. package/dist/esm/codama/mainnet/accounts/index.js +12 -0
  95. package/dist/esm/codama/mainnet/accounts/index.js.map +1 -0
  96. package/dist/esm/codama/mainnet/accounts/rentalState.js +72 -0
  97. package/dist/esm/codama/mainnet/accounts/rentalState.js.map +1 -0
  98. package/dist/esm/codama/mainnet/accounts/thread.js +77 -0
  99. package/dist/esm/codama/mainnet/accounts/thread.js.map +1 -0
  100. package/dist/esm/codama/mainnet/constants.js +29 -0
  101. package/dist/esm/codama/mainnet/constants.js.map +1 -0
  102. package/dist/esm/codama/mainnet/errors/index.js +9 -0
  103. package/dist/esm/codama/mainnet/errors/index.js.map +1 -0
  104. package/dist/esm/codama/mainnet/errors/srsly.js +66 -0
  105. package/dist/esm/codama/mainnet/errors/srsly.js.map +1 -0
  106. package/dist/esm/codama/mainnet/index.js +13 -0
  107. package/dist/esm/codama/mainnet/index.js.map +1 -0
  108. package/dist/esm/codama/mainnet/instructions/acceptRental.js +353 -0
  109. package/dist/esm/codama/mainnet/instructions/acceptRental.js.map +1 -0
  110. package/dist/esm/codama/mainnet/instructions/cancelRental.js +215 -0
  111. package/dist/esm/codama/mainnet/instructions/cancelRental.js.map +1 -0
  112. package/dist/esm/codama/mainnet/instructions/closeContract.js +209 -0
  113. package/dist/esm/codama/mainnet/instructions/closeContract.js.map +1 -0
  114. package/dist/esm/codama/mainnet/instructions/closeRental.js +223 -0
  115. package/dist/esm/codama/mainnet/instructions/closeRental.js.map +1 -0
  116. package/dist/esm/codama/mainnet/instructions/createContract.js +251 -0
  117. package/dist/esm/codama/mainnet/instructions/createContract.js.map +1 -0
  118. package/dist/esm/codama/mainnet/instructions/index.js +16 -0
  119. package/dist/esm/codama/mainnet/instructions/index.js.map +1 -0
  120. package/dist/esm/codama/mainnet/instructions/normalizeAdmin.js +142 -0
  121. package/dist/esm/codama/mainnet/instructions/normalizeAdmin.js.map +1 -0
  122. package/dist/esm/codama/mainnet/instructions/payRental.js +226 -0
  123. package/dist/esm/codama/mainnet/instructions/payRental.js.map +1 -0
  124. package/dist/esm/codama/mainnet/instructions/resetRental.js +145 -0
  125. package/dist/esm/codama/mainnet/instructions/resetRental.js.map +1 -0
  126. package/dist/esm/codama/mainnet/programs/index.js +9 -0
  127. package/dist/esm/codama/mainnet/programs/index.js.map +1 -0
  128. package/dist/esm/codama/mainnet/programs/srsly.js +72 -0
  129. package/dist/esm/codama/mainnet/programs/srsly.js.map +1 -0
  130. package/dist/esm/codama/mainnet/shared/index.js +87 -0
  131. package/dist/esm/codama/mainnet/shared/index.js.map +1 -0
  132. package/dist/esm/codama/mainnet/types/clockData.js +26 -0
  133. package/dist/esm/codama/mainnet/types/clockData.js.map +1 -0
  134. package/dist/esm/codama/mainnet/types/equality.js +24 -0
  135. package/dist/esm/codama/mainnet/types/equality.js.map +1 -0
  136. package/dist/esm/codama/mainnet/types/execContext.js +33 -0
  137. package/dist/esm/codama/mainnet/types/execContext.js.map +1 -0
  138. package/dist/esm/codama/mainnet/types/index.js +17 -0
  139. package/dist/esm/codama/mainnet/types/index.js.map +1 -0
  140. package/dist/esm/codama/mainnet/types/paymentFrequency.js +26 -0
  141. package/dist/esm/codama/mainnet/types/paymentFrequency.js.map +1 -0
  142. package/dist/esm/codama/mainnet/types/serializableAccount.js +26 -0
  143. package/dist/esm/codama/mainnet/types/serializableAccount.js.map +1 -0
  144. package/dist/esm/codama/mainnet/types/serializableInstruction.js +27 -0
  145. package/dist/esm/codama/mainnet/types/serializableInstruction.js.map +1 -0
  146. package/dist/esm/codama/mainnet/types/threadResponse.js +33 -0
  147. package/dist/esm/codama/mainnet/types/threadResponse.js.map +1 -0
  148. package/dist/esm/codama/mainnet/types/trigger.js +83 -0
  149. package/dist/esm/codama/mainnet/types/trigger.js.map +1 -0
  150. package/dist/esm/codama/mainnet/types/triggerContext.js +42 -0
  151. package/dist/esm/codama/mainnet/types/triggerContext.js.map +1 -0
  152. package/dist/esm/contract/close.js +52 -20
  153. package/dist/esm/contract/close.js.map +1 -1
  154. package/dist/esm/contract/create.js +31 -19
  155. package/dist/esm/contract/create.js.map +1 -1
  156. package/dist/esm/index.js +0 -2
  157. package/dist/esm/index.js.map +1 -1
  158. package/dist/esm/rental/accept.js +47 -34
  159. package/dist/esm/rental/accept.js.map +1 -1
  160. package/dist/esm/rental/cancel.js +30 -24
  161. package/dist/esm/rental/cancel.js.map +1 -1
  162. package/dist/esm/rental/close.js +31 -25
  163. package/dist/esm/rental/close.js.map +1 -1
  164. package/dist/esm/rental/reset.js +41 -39
  165. package/dist/esm/rental/reset.js.map +1 -1
  166. package/dist/esm/utils/config.js +161 -0
  167. package/dist/esm/utils/config.js.map +1 -0
  168. package/dist/esm/utils/constants.js +60 -10
  169. package/dist/esm/utils/constants.js.map +1 -1
  170. package/dist/esm/utils/index.js +1 -0
  171. package/dist/esm/utils/index.js.map +1 -1
  172. package/dist/esm/utils/profiles.js +39 -19
  173. package/dist/esm/utils/profiles.js.map +1 -1
  174. package/dist/types/codama/devnet/constants.d.ts +33 -0
  175. package/dist/types/codama/devnet/constants.d.ts.map +1 -0
  176. package/dist/types/codama/mainnet/accounts/contractState.d.ts +53 -0
  177. package/dist/types/codama/mainnet/accounts/contractState.d.ts.map +1 -0
  178. package/dist/types/codama/mainnet/accounts/fleet.d.ts +38 -0
  179. package/dist/types/codama/mainnet/accounts/fleet.d.ts.map +1 -0
  180. package/dist/types/codama/mainnet/accounts/index.d.ts +12 -0
  181. package/dist/types/codama/mainnet/accounts/index.d.ts.map +1 -0
  182. package/dist/types/codama/mainnet/accounts/rentalState.d.ts +46 -0
  183. package/dist/types/codama/mainnet/accounts/rentalState.d.ts.map +1 -0
  184. package/dist/types/codama/mainnet/accounts/thread.d.ts +74 -0
  185. package/dist/types/codama/mainnet/accounts/thread.d.ts.map +1 -0
  186. package/dist/types/codama/mainnet/constants.d.ts +33 -0
  187. package/dist/types/codama/mainnet/constants.d.ts.map +1 -0
  188. package/dist/types/codama/mainnet/errors/index.d.ts +9 -0
  189. package/dist/types/codama/mainnet/errors/index.d.ts.map +1 -0
  190. package/dist/types/codama/mainnet/errors/srsly.d.ts +48 -0
  191. package/dist/types/codama/mainnet/errors/srsly.d.ts.map +1 -0
  192. package/dist/types/codama/mainnet/index.d.ts +13 -0
  193. package/dist/types/codama/mainnet/index.d.ts.map +1 -0
  194. package/dist/types/codama/mainnet/instructions/acceptRental.d.ts +128 -0
  195. package/dist/types/codama/mainnet/instructions/acceptRental.d.ts.map +1 -0
  196. package/dist/types/codama/mainnet/instructions/cancelRental.d.ts +71 -0
  197. package/dist/types/codama/mainnet/instructions/cancelRental.d.ts.map +1 -0
  198. package/dist/types/codama/mainnet/instructions/closeContract.d.ts +96 -0
  199. package/dist/types/codama/mainnet/instructions/closeContract.d.ts.map +1 -0
  200. package/dist/types/codama/mainnet/instructions/closeRental.d.ts +79 -0
  201. package/dist/types/codama/mainnet/instructions/closeRental.d.ts.map +1 -0
  202. package/dist/types/codama/mainnet/instructions/createContract.d.ts +108 -0
  203. package/dist/types/codama/mainnet/instructions/createContract.d.ts.map +1 -0
  204. package/dist/types/codama/mainnet/instructions/index.d.ts +16 -0
  205. package/dist/types/codama/mainnet/instructions/index.d.ts.map +1 -0
  206. package/dist/types/codama/mainnet/instructions/normalizeAdmin.d.ts +67 -0
  207. package/dist/types/codama/mainnet/instructions/normalizeAdmin.d.ts.map +1 -0
  208. package/dist/types/codama/mainnet/instructions/payRental.d.ts +99 -0
  209. package/dist/types/codama/mainnet/instructions/payRental.d.ts.map +1 -0
  210. package/dist/types/codama/mainnet/instructions/resetRental.d.ts +71 -0
  211. package/dist/types/codama/mainnet/instructions/resetRental.d.ts.map +1 -0
  212. package/dist/types/codama/mainnet/programs/index.d.ts +9 -0
  213. package/dist/types/codama/mainnet/programs/index.d.ts.map +1 -0
  214. package/dist/types/codama/mainnet/programs/srsly.d.ts +50 -0
  215. package/dist/types/codama/mainnet/programs/srsly.d.ts.map +1 -0
  216. package/dist/types/codama/mainnet/shared/index.d.ts +50 -0
  217. package/dist/types/codama/mainnet/shared/index.d.ts.map +1 -0
  218. package/dist/types/codama/mainnet/types/clockData.d.ts +29 -0
  219. package/dist/types/codama/mainnet/types/clockData.d.ts.map +1 -0
  220. package/dist/types/codama/mainnet/types/equality.d.ts +18 -0
  221. package/dist/types/codama/mainnet/types/equality.d.ts.map +1 -0
  222. package/dist/types/codama/mainnet/types/execContext.d.ts +48 -0
  223. package/dist/types/codama/mainnet/types/execContext.d.ts.map +1 -0
  224. package/dist/types/codama/mainnet/types/index.d.ts +17 -0
  225. package/dist/types/codama/mainnet/types/index.d.ts.map +1 -0
  226. package/dist/types/codama/mainnet/types/paymentFrequency.d.ts +20 -0
  227. package/dist/types/codama/mainnet/types/paymentFrequency.d.ts.map +1 -0
  228. package/dist/types/codama/mainnet/types/serializableAccount.d.ts +22 -0
  229. package/dist/types/codama/mainnet/types/serializableAccount.d.ts.map +1 -0
  230. package/dist/types/codama/mainnet/types/serializableInstruction.d.ts +30 -0
  231. package/dist/types/codama/mainnet/types/serializableInstruction.d.ts.map +1 -0
  232. package/dist/types/codama/mainnet/types/threadResponse.d.ts +42 -0
  233. package/dist/types/codama/mainnet/types/threadResponse.d.ts.map +1 -0
  234. package/dist/types/codama/mainnet/types/trigger.d.ts +98 -0
  235. package/dist/types/codama/mainnet/types/trigger.d.ts.map +1 -0
  236. package/dist/types/codama/mainnet/types/triggerContext.d.ts +75 -0
  237. package/dist/types/codama/mainnet/types/triggerContext.d.ts.map +1 -0
  238. package/dist/types/contract/close.d.ts +20 -5
  239. package/dist/types/contract/close.d.ts.map +1 -1
  240. package/dist/types/contract/create.d.ts +23 -13
  241. package/dist/types/contract/create.d.ts.map +1 -1
  242. package/dist/types/index.d.ts +0 -1
  243. package/dist/types/index.d.ts.map +1 -1
  244. package/dist/types/rental/accept.d.ts +35 -6
  245. package/dist/types/rental/accept.d.ts.map +1 -1
  246. package/dist/types/rental/cancel.d.ts +27 -3
  247. package/dist/types/rental/cancel.d.ts.map +1 -1
  248. package/dist/types/rental/close.d.ts +28 -3
  249. package/dist/types/rental/close.d.ts.map +1 -1
  250. package/dist/types/rental/reset.d.ts +32 -4
  251. package/dist/types/rental/reset.d.ts.map +1 -1
  252. package/dist/types/utils/config.d.ts +112 -0
  253. package/dist/types/utils/config.d.ts.map +1 -0
  254. package/dist/types/utils/constants.d.ts +9 -7
  255. package/dist/types/utils/constants.d.ts.map +1 -1
  256. package/dist/types/utils/index.d.ts +1 -0
  257. package/dist/types/utils/index.d.ts.map +1 -1
  258. package/dist/types/utils/profiles.d.ts +14 -8
  259. package/dist/types/utils/profiles.d.ts.map +1 -1
  260. package/package.json +6 -3
  261. package/dist/cjs/network.js +0 -107
  262. package/dist/cjs/network.js.map +0 -1
  263. package/dist/esm/network.js +0 -67
  264. package/dist/esm/network.js.map +0 -1
  265. package/dist/types/network.d.ts +0 -58
  266. package/dist/types/network.d.ts.map +0 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
5
5
  [![Solana](https://img.shields.io/badge/Solana-000?style=flat&logo=solana&logoColor=9945FF)](https://solana.com/)
6
6
 
7
- A TypeScript SDK for interacting with the SRSLY (Space Rental from SLY) Solana program - a decentralized rental system for Star Atlas.
7
+ A TypeScript SDK for interacting with the SRSLY (Space Rental from SLY) Solana program - a decentralized rental system for Star Atlas fleets with network-specific configuration support.
8
8
 
9
9
  ## Installation
10
10
 
@@ -29,132 +29,170 @@ yarn add @wuwei-labs/srsly
29
29
  ## Quick Start
30
30
 
31
31
  ```typescript
32
- import { Connection, PublicKey } from '@solana/web3.js';
33
32
  import {
34
33
  createContract,
35
- acceptRental,
36
- setNetwork,
37
- ContractState,
38
- RentalState
34
+ acceptRental,
35
+ setConfig,
36
+ setNetwork,
37
+ ATLAS_TO_STARDUST
39
38
  } from '@wuwei-labs/srsly';
40
39
 
41
- // Set global network (optional - defaults to devnet)
42
- setNetwork('mainnet');
40
+ // Option 1: Set global configuration (recommended for most apps)
41
+ setConfig({ network: 'mainnet' });
42
+ // or use the convenience function: setNetwork('mainnet');
43
43
 
44
- // Create a rental contract using global network setting (direct await)
44
+ // Now all operations use mainnet by default
45
45
  const contractInstruction = await createContract({
46
46
  owner: wallet,
47
47
  fleet: fleetAddress,
48
48
  ownerProfile: profileAddress,
49
- rate: 1000000, // Rate in lamports
49
+ rate: 1000000, // Rate in ATLAS tokens
50
50
  durationMin: 86400, // 1 day in seconds
51
51
  durationMax: 604800, // 1 week in seconds
52
52
  paymentsFreq: 'daily',
53
53
  ownerKeyIndex: 0
54
- });
54
+ }); // Uses mainnet from global config
55
55
 
56
- // Or override network for specific instruction
57
- const mainnetInstruction = await createContract(params).mainnet();
58
- const devnetInstruction = await createContract(params).devnet();
56
+ // Accept a rental with automatic ATLAS to stardust conversion
57
+ const acceptInstruction = await acceptRental({
58
+ borrower: borrowerWallet,
59
+ borrowerProfile: borrowerProfileAddress,
60
+ borrowerFaction: 'mud', // or 1, 2, 3
61
+ fleet: fleetAddress,
62
+ contract: contractAddress,
63
+ rate: 100, // ATLAS tokens per duration
64
+ duration: 86400 // 1 day in seconds
65
+ // amount is automatically calculated: rate * duration * ATLAS_TO_STARDUST
66
+ }); // Uses mainnet from global config
67
+
68
+ // Option 2: Override global config for specific instructions
69
+ const devnetInstruction = await createContract(params).set({ network: 'devnet' });
59
70
  ```
60
71
 
61
72
  ## Core Features
62
73
 
63
74
  ### Contract Management
64
75
 
65
- Create and manage rental contracts for Star Atlas:
76
+ Create and manage rental contracts for Star Atlas fleets:
66
77
 
67
78
  ```typescript
68
79
  import { createContract, closeContract } from '@wuwei-labs/srsly';
69
80
 
70
- // Create a new rental contract with network selection
81
+ // Create a new rental contract with network configuration
71
82
  const createIx = await createContract({
72
83
  owner: wallet,
73
84
  fleet: fleetAddress,
74
85
  ownerProfile: profileAddress,
75
- rate: 5000000, // 0.005 SOL per day
86
+ rate: 5000000, // Rate in ATLAS tokens
76
87
  durationMin: 86400, // Minimum 1 day
77
88
  durationMax: 2592000, // Maximum 30 days
78
89
  paymentsFreq: 'daily',
79
90
  ownerKeyIndex: 0
80
- }).mainnet(); // Use mainnet for this instruction
91
+ }).set({ network: 'mainnet' }); // Use mainnet configuration
81
92
 
82
- // Close an existing contract using global network setting (direct await)
93
+ // Close an existing contract using devnet defaults (direct await)
83
94
  const closeIx = await closeContract({
84
95
  owner: wallet,
85
96
  fleet: fleetAddress,
86
97
  contract: contractAddress,
87
- faction: 'mud',
88
- ownerProfile: profileAddress
98
+ faction: 'mud' // or faction number: 1, 2, 3
89
99
  });
90
100
  ```
91
101
 
92
102
  ### Rental Operations
93
103
 
94
- Handle rental lifecycle operations:
104
+ Handle rental lifecycle operations with automatic token conversion:
95
105
 
96
106
  ```typescript
97
107
  import {
98
108
  acceptRental,
99
109
  cancelRental,
100
110
  closeRental,
101
- resetRental
111
+ resetRental,
112
+ ATLAS_TO_STARDUST
102
113
  } from '@wuwei-labs/srsly';
103
114
 
104
- // Accept a rental offer on devnet
115
+ // Accept a rental offer on devnet (rate-based with automatic conversion)
105
116
  const acceptIx = await acceptRental({
106
117
  borrower: borrowerWallet,
107
118
  borrowerProfile: borrowerProfileAddress,
119
+ borrowerFaction: 'oni', // or faction number: 1=mud, 2=oni, 3=ustur
120
+ fleet: fleetAddress,
108
121
  contract: contractAddress,
109
- borrowerFaction: 'oni',
110
- duration: 86400,
111
- amount: 1000000
112
- }).devnet();
122
+ rate: 100, // ATLAS tokens (not per second, just ATLAS)
123
+ duration: 86400 // 1 day in seconds
124
+ // amount = rate * duration * ATLAS_TO_STARDUST automatically calculated
125
+ }).set({ network: 'devnet' });
113
126
 
114
- // Cancel an active rental using current network setting (direct await)
127
+ // Cancel an active rental using devnet defaults (direct await)
115
128
  const cancelIx = await cancelRental({
116
129
  borrower: borrowerWallet,
117
- rental: rentalAddress
130
+ contract: contractAddress,
131
+ rentalState: rentalStateAddress
118
132
  });
119
133
 
120
134
  // Close a completed rental on mainnet
121
135
  const closeIx = await closeRental({
122
136
  borrower: borrowerWallet,
123
- rental: rentalAddress
124
- }).mainnet();
137
+ contract: contractAddress,
138
+ rentalState: rentalStateAddress,
139
+ ownerTokenAccount: ownerTokenAccountAddress
140
+ }).set({ network: 'mainnet' });
125
141
 
126
- // Reset rental state (admin only) with specific network
142
+ // Reset rental state with custom configuration
127
143
  const resetIx = await resetRental({
128
144
  fleet: fleetAddress,
129
145
  contract: contractAddress,
130
146
  rentalState: rentalStateAddress,
131
147
  faction: 'mud',
132
148
  ownerProfile: ownerProfileAddress
133
- }).network('mainnet');
149
+ }).set({
150
+ network: 'mainnet',
151
+ sageProgramAddress: 'custom...',
152
+ gameId: 'custom...'
153
+ });
134
154
  ```
135
155
 
136
156
  ### Account State Management
137
157
 
138
- Fetch and decode account states:
158
+ Fetch and decode account states using network-specific functions:
139
159
 
140
160
  ```typescript
141
- import { ContractState, RentalState } from '@wuwei-labs/srsly';
161
+ import { getCachedNetworkModule } from '@wuwei-labs/srsly';
142
162
 
143
- // Fetch contract state
144
- const contractAccount = await connection.getAccountInfo(contractPublicKey);
145
- const contractState = ContractState.fromAccountInfo(contractAccount)[0];
163
+ // Get network-specific account functions (defaults to devnet)
164
+ const accountsModule = await getCachedNetworkModule('accounts');
165
+ const { fetchContractState, fetchRentalState } = accountsModule;
166
+
167
+ // Or specify network explicitly
168
+ const mainnetAccountsModule = await getCachedNetworkModule('accounts', 'mainnet');
146
169
 
170
+ // Fetch contract state
171
+ const contractState = await fetchContractState(rpc, contractPublicKey);
147
172
  console.log('Contract rate:', contractState.rate.toString());
148
173
  console.log('Duration range:', contractState.durationMin.toString(), '-', contractState.durationMax.toString());
149
174
 
150
175
  // Fetch rental state
151
- const rentalAccount = await connection.getAccountInfo(rentalPublicKey);
152
- const rentalState = RentalState.fromAccountInfo(rentalAccount)[0];
153
-
176
+ const rentalState = await fetchRentalState(rpc, rentalPublicKey);
154
177
  console.log('Rental status:', rentalState.status);
155
178
  console.log('Start time:', new Date(rentalState.startTime.toNumber() * 1000));
156
179
  ```
157
180
 
181
+ ### Token Conversion
182
+
183
+ The SDK includes automatic ATLAS to stardust conversion for rental operations:
184
+
185
+ ```typescript
186
+ import { ATLAS_TO_STARDUST } from '@wuwei-labs/srsly';
187
+
188
+ // ATLAS_TO_STARDUST = 100_000_000 (1 ATLAS = 100 million stardust)
189
+ console.log('Conversion rate:', ATLAS_TO_STARDUST);
190
+
191
+ // When using acceptRental with rate and duration:
192
+ // Final amount = rate * duration * ATLAS_TO_STARDUST
193
+ // Example: 100 ATLAS * 86400 seconds * 100_000_000 = 864,000,000,000,000 stardust
194
+ ```
195
+
158
196
  ## Program Information
159
197
 
160
198
  - **Program ID**: `SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT`
@@ -188,67 +226,125 @@ try {
188
226
 
189
227
  ## Network Configuration
190
228
 
191
- The SDK supports both Solana mainnet and devnet with network-specific program configurations. You can configure networks globally or per instruction.
229
+ The SDK supports both Solana mainnet and devnet with network-specific program configurations. You can set global configuration for convenience or override per instruction for flexibility.
192
230
 
193
- ### Global Network Configuration
231
+ ### Global Configuration (Recommended)
194
232
 
195
- Set the default network for all SDK operations:
233
+ Set default configuration once for all SDK operations:
196
234
 
197
235
  ```typescript
198
- import { setNetwork, getNetwork } from '@wuwei-labs/srsly';
236
+ import { setConfig, setNetwork, getConfig, createContract } from '@wuwei-labs/srsly';
199
237
 
200
- // Set global network (defaults to 'devnet')
238
+ // Option 1: Full configuration
239
+ setConfig({
240
+ network: 'mainnet',
241
+ gameId: 'custom-game-id...'
242
+ });
243
+
244
+ // Option 2: Network-only (convenience function)
201
245
  setNetwork('mainnet');
202
246
 
203
- // Check current network
204
- console.log(getNetwork()); // 'mainnet'
247
+ // Check current configuration
248
+ console.log(getConfig()); // { network: 'mainnet' }
205
249
 
206
- // All instructions will now use mainnet by default (direct await)
207
- const ix = await createContract(params);
250
+ // All operations now use mainnet by default
251
+ const ix1 = await createContract(params);
252
+ const ix2 = await acceptRental(params);
208
253
  ```
209
254
 
210
- ### Per-Instruction Network Selection
255
+ ### Per-Instruction Configuration
211
256
 
212
- Override the network for specific instructions using the fluent interface:
257
+ Override global configuration for specific instructions using the fluent `.set()` interface:
213
258
 
214
259
  ```typescript
215
- import { createContract } from '@wuwei-labs/srsly';
260
+ import { createContract, acceptRental } from '@wuwei-labs/srsly';
216
261
 
217
- // Use mainnet for this specific instruction
218
- const mainnetIx = await createContract(params).mainnet();
262
+ // Assume global config is set to mainnet
263
+ setConfig({ network: 'mainnet' });
219
264
 
220
- // Use devnet for this specific instruction
221
- const devnetIx = await createContract(params).devnet();
265
+ // Use global mainnet config
266
+ const mainnetIx = await createContract(params);
222
267
 
223
- // Use a specific network
224
- const specificIx = await createContract(params).network('mainnet');
268
+ // Override to use devnet for this specific instruction
269
+ const devnetIx = await createContract(params).set({ network: 'devnet' });
225
270
 
226
- // Use global network setting (direct await - no .build() needed!)
227
- const globalIx = await createContract(params);
271
+ // Override specific constants while keeping global network
272
+ const customIx = await createContract(params).set({
273
+ sageProgramAddress: 'custom...',
274
+ gameId: 'custom...'
275
+ // network: 'mainnet' inherited from global config
276
+ });
228
277
  ```
229
278
 
230
- ### Network Selection Methods
279
+ ### Configuration Options
231
280
 
232
281
  All SDK functions support these usage patterns:
233
282
 
234
- **Direct await (uses global network):**
283
+ **Direct await (uses global config or devnet fallback):**
284
+
235
285
  ```typescript
286
+ // Uses global configuration if set, otherwise devnet
236
287
  await createContract(params);
237
288
  await acceptRental(params);
238
289
  ```
239
290
 
240
- **Network-specific methods:**
241
- - `.mainnet()` - Build with mainnet configuration
242
- - `.devnet()` - Build with devnet configuration
243
- - `.network(network)` - Build with specified network
244
- - `.build()` - Build with current global network setting (explicit)
291
+ **Global configuration functions:**
292
+
293
+ - `setConfig({ network: 'mainnet', gameId: '...' })` - Set full global config
294
+ - `setNetwork('mainnet')` - Set global network only (convenience)
295
+ - `getConfig()` - Get current global configuration
296
+ - `clearConfig()` - Reset to devnet defaults
297
+
298
+ **Per-instruction overrides with `.set()` method:**
299
+
300
+ - `.set({ network: 'mainnet' })` - Override global network
301
+ - `.set({ sageProgramAddress: '...' })` - Override specific constants only
302
+ - `.set({ network: 'mainnet', sageProgramAddress: '...' })` - Multiple overrides
303
+
304
+ **Chainable configurations:**
305
+
306
+ ```typescript
307
+ // Chain multiple configurations (later ones override earlier ones)
308
+ await createContract(params)
309
+ .set({ network: 'devnet' })
310
+ .set({ sageProgramAddress: 'override...' });
311
+
312
+ // Examples with global config
313
+ setConfig({ network: 'mainnet' });
314
+ await createContract(params); // Uses mainnet
315
+ await acceptRental(params).set({ network: 'devnet' }); // Override to devnet
316
+ await closeContract(params).set({ gameId: 'custom...' }); // Custom gameId, mainnet network
317
+ ```
318
+
319
+ ### Available Configuration Options
245
320
 
246
321
  ```typescript
247
- // Examples across different functions
248
- await createContract(params).mainnet();
249
- await acceptRental(params).devnet();
250
- await closeContract(params).network('mainnet');
251
- await resetRental(params); // Direct await uses global network
322
+ interface ConfigOptions {
323
+ network?: 'mainnet' | 'devnet'; // Set/override network
324
+ sageProgramAddress?: string; // Set/override SAGE program address
325
+ profileFactionProgramAddress?: string; // Set/override Profile Faction program address
326
+ gameId?: string; // Set/override SAGE game ID
327
+ }
328
+ ```
329
+
330
+ ### Network-Specific Constants
331
+
332
+ The SDK automatically resolves network-specific constants:
333
+
334
+ ```typescript
335
+ import {
336
+ getSageProgramAddress,
337
+ getProfileFactionProgramAddress,
338
+ getSageGameId
339
+ } from '@wuwei-labs/srsly';
340
+
341
+ // Get constants for devnet (default)
342
+ const sageProgram = await getSageProgramAddress();
343
+ const gameId = await getSageGameId();
344
+
345
+ // Get constants for specific network
346
+ const mainnetSageProgram = await getSageProgramAddress({ network: 'mainnet' });
347
+ const mainnetGameId = await getSageGameId({ network: 'mainnet' });
252
348
  ```
253
349
 
254
350
  ## IDL and Types
@@ -279,7 +375,8 @@ import type {
279
375
  RentalState,
280
376
  PaymentFrequency,
281
377
  ClockData,
282
- ThreadResponse
378
+ ThreadResponse,
379
+ ConfigOptions
283
380
  } from '@wuwei-labs/srsly';
284
381
 
285
382
  // Import network-specific Anchor types
@@ -287,16 +384,53 @@ import type { Srsly as SrslyMainnet } from '@wuwei-labs/srsly/types/mainnet';
287
384
  import type { Srsly as SrslyDevnet } from '@wuwei-labs/srsly/types/devnet';
288
385
  ```
289
386
 
290
- ### Building Network-Specific Assets
387
+ ## Constants and Utilities
291
388
 
292
- To generate IDLs and types for different networks:
389
+ ### Available Constants
293
390
 
294
- ```bash
295
- # Generate mainnet IDL and types
296
- pnpm run generate:mainnet
391
+ ```typescript
392
+ import {
393
+ ATLAS_TO_STARDUST,
394
+ STARBASE_SEED,
395
+ STARBASE_PLAYER_SEED,
396
+ SAGE_PLAYER_PROFILE_SEED,
397
+ PROFILE_FACTION_SEED,
398
+ FACTION_MAPPING,
399
+ FACTION_SPECIFIC_CSS
400
+ } from '@wuwei-labs/srsly';
401
+
402
+ // Token conversion
403
+ console.log(ATLAS_TO_STARDUST); // 100_000_000
404
+
405
+ // Faction mappings
406
+ console.log(FACTION_MAPPING[1]); // 'mud'
407
+ console.log(FACTION_MAPPING[2]); // 'oni'
408
+ console.log(FACTION_MAPPING[3]); // 'ustur'
409
+ ```
410
+
411
+ ### Profile Derivation
412
+
413
+ ```typescript
414
+ import {
415
+ deriveProfileFaction,
416
+ deriveSagePlayerProfile,
417
+ deriveStarbase,
418
+ deriveStarbasePlayer,
419
+ deriveGameAccounts
420
+ } from '@wuwei-labs/srsly';
297
421
 
298
- # Generate devnet IDL and types
299
- pnpm run generate:devnet
422
+ // Derive individual accounts with network configuration
423
+ const profileFaction = await deriveProfileFaction(profile, { network: 'mainnet' });
424
+ const starbase = await deriveStarbase('mud', gameId, { network: 'mainnet' });
425
+
426
+ // Derive all game accounts at once
427
+ const gameAccounts = await deriveGameAccounts(
428
+ profile,
429
+ 'mud',
430
+ gameId,
431
+ 0, // starbaseSeqId
432
+ { network: 'mainnet' }
433
+ );
300
434
  ```
301
435
 
302
436
  ## Documentation
@@ -307,4 +441,4 @@ pnpm run generate:devnet
307
441
 
308
442
  - **Star Atlas**: The metaverse gaming ecosystem
309
443
  - **Solana**: The blockchain platform powering SRSLY
310
- - **Anchor**: The framework used to build the SRSLY program
444
+ - **Anchor**: The framework used to build the SRSLY program
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ /**
3
+ * Network-specific constants for devnet
4
+ *
5
+ * This file is auto-generated from network-configs.mjs
6
+ * DO NOT EDIT MANUALLY - your changes will be overwritten
7
+ *
8
+ * To update these constants:
9
+ * 1. Edit network-configs.mjs
10
+ * 2. Run `pnpm build` to regenerate
11
+ *
12
+ * Generated on: 2025-06-21T19:10:08.579Z
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.NETWORK_CONFIG = exports.ATLAS_TOKEN_MINT = exports.SRSLY_PROGRAM_ADDRESS = exports.SAGE_GAME_ID = exports.PROFILE_FACTION_PROGRAM_ADDRESS = exports.SAGE_PROGRAM_ADDRESS = void 0;
16
+ exports.SAGE_PROGRAM_ADDRESS = 'sAgeDEVzwJpDb1aHvzNr3o24cKjsETmFEKghBEyJ1askDi';
17
+ exports.PROFILE_FACTION_PROGRAM_ADDRESS = 'pFACDEVobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq';
18
+ exports.SAGE_GAME_ID = 'GAMEDEVJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr';
19
+ exports.SRSLY_PROGRAM_ADDRESS = 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT';
20
+ exports.ATLAS_TOKEN_MINT = 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx';
21
+ /**
22
+ * Complete network configuration object
23
+ * Useful for runtime access to all constants
24
+ */
25
+ exports.NETWORK_CONFIG = {
26
+ SAGE_PROGRAM_ADDRESS: 'sAgeDEVzwJpDb1aHvzNr3o24cKjsETmFEKghBEyJ1askDi',
27
+ PROFILE_FACTION_PROGRAM_ADDRESS: 'pFACDEVobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq',
28
+ SAGE_GAME_ID: 'GAMEDEVJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr',
29
+ SRSLY_PROGRAM_ADDRESS: 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
30
+ ATLAS_TOKEN_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
31
+ };
32
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/codama/devnet/constants.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEU,QAAA,oBAAoB,GAAG,gDAAgD,CAAC;AACxE,QAAA,+BAA+B,GAAG,6CAA6C,CAAC;AAChF,QAAA,YAAY,GAAG,+CAA+C,CAAC;AAC/D,QAAA,qBAAqB,GAAG,6CAA6C,CAAC;AACtE,QAAA,gBAAgB,GAAG,8CAA8C,CAAC;AAE/E;;;GAGG;AACU,QAAA,cAAc,GAAG;IAC5B,oBAAoB,EAAE,gDAAgD;IACtE,+BAA+B,EAAE,6CAA6C;IAC9E,YAAY,EAAE,+CAA+C;IAC7D,qBAAqB,EAAE,6CAA6C;IACpE,gBAAgB,EAAE,8CAA8C;CACxD,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /**
3
+ * This code was AUTOGENERATED using the codama library.
4
+ * Please DO NOT EDIT THIS FILE, instead use visitors
5
+ * to add features, then rerun codama to update it.
6
+ *
7
+ * @see https://github.com/codama-idl/codama
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.CONTRACT_STATE_DISCRIMINATOR = void 0;
11
+ exports.getContractStateDiscriminatorBytes = getContractStateDiscriminatorBytes;
12
+ exports.getContractStateEncoder = getContractStateEncoder;
13
+ exports.getContractStateDecoder = getContractStateDecoder;
14
+ exports.getContractStateCodec = getContractStateCodec;
15
+ exports.decodeContractState = decodeContractState;
16
+ exports.fetchContractState = fetchContractState;
17
+ exports.fetchMaybeContractState = fetchMaybeContractState;
18
+ exports.fetchAllContractState = fetchAllContractState;
19
+ exports.fetchAllMaybeContractState = fetchAllMaybeContractState;
20
+ exports.getContractStateSize = getContractStateSize;
21
+ const kit_1 = require("@solana/kit");
22
+ const types_1 = require("../types");
23
+ exports.CONTRACT_STATE_DISCRIMINATOR = new Uint8Array([
24
+ 190, 138, 10, 223, 189, 116, 222, 115,
25
+ ]);
26
+ function getContractStateDiscriminatorBytes() {
27
+ return (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8).encode(exports.CONTRACT_STATE_DISCRIMINATOR);
28
+ }
29
+ function getContractStateEncoder() {
30
+ return (0, kit_1.transformEncoder)((0, kit_1.getStructEncoder)([
31
+ ['discriminator', (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8)],
32
+ ['version', (0, kit_1.getU8Encoder)()],
33
+ ['toClose', (0, kit_1.getBooleanEncoder)()],
34
+ ['rate', (0, kit_1.getU64Encoder)()],
35
+ ['durationMin', (0, kit_1.getU64Encoder)()],
36
+ ['durationMax', (0, kit_1.getU64Encoder)()],
37
+ ['paymentsFeq', (0, types_1.getPaymentFrequencyEncoder)()],
38
+ ['fleet', (0, kit_1.getAddressEncoder)()],
39
+ ['gameId', (0, kit_1.getAddressEncoder)()],
40
+ ['currentRentalState', (0, kit_1.getAddressEncoder)()],
41
+ ['owner', (0, kit_1.getAddressEncoder)()],
42
+ ['ownerTokenAccount', (0, kit_1.getAddressEncoder)()],
43
+ ['ownerProfile', (0, kit_1.getAddressEncoder)()],
44
+ ['bump', (0, kit_1.getU8Encoder)()],
45
+ ]), (value) => ({ ...value, discriminator: exports.CONTRACT_STATE_DISCRIMINATOR }));
46
+ }
47
+ function getContractStateDecoder() {
48
+ return (0, kit_1.getStructDecoder)([
49
+ ['discriminator', (0, kit_1.fixDecoderSize)((0, kit_1.getBytesDecoder)(), 8)],
50
+ ['version', (0, kit_1.getU8Decoder)()],
51
+ ['toClose', (0, kit_1.getBooleanDecoder)()],
52
+ ['rate', (0, kit_1.getU64Decoder)()],
53
+ ['durationMin', (0, kit_1.getU64Decoder)()],
54
+ ['durationMax', (0, kit_1.getU64Decoder)()],
55
+ ['paymentsFeq', (0, types_1.getPaymentFrequencyDecoder)()],
56
+ ['fleet', (0, kit_1.getAddressDecoder)()],
57
+ ['gameId', (0, kit_1.getAddressDecoder)()],
58
+ ['currentRentalState', (0, kit_1.getAddressDecoder)()],
59
+ ['owner', (0, kit_1.getAddressDecoder)()],
60
+ ['ownerTokenAccount', (0, kit_1.getAddressDecoder)()],
61
+ ['ownerProfile', (0, kit_1.getAddressDecoder)()],
62
+ ['bump', (0, kit_1.getU8Decoder)()],
63
+ ]);
64
+ }
65
+ function getContractStateCodec() {
66
+ return (0, kit_1.combineCodec)(getContractStateEncoder(), getContractStateDecoder());
67
+ }
68
+ function decodeContractState(encodedAccount) {
69
+ return (0, kit_1.decodeAccount)(encodedAccount, getContractStateDecoder());
70
+ }
71
+ async function fetchContractState(rpc, address, config) {
72
+ const maybeAccount = await fetchMaybeContractState(rpc, address, config);
73
+ (0, kit_1.assertAccountExists)(maybeAccount);
74
+ return maybeAccount;
75
+ }
76
+ async function fetchMaybeContractState(rpc, address, config) {
77
+ const maybeAccount = await (0, kit_1.fetchEncodedAccount)(rpc, address, config);
78
+ return decodeContractState(maybeAccount);
79
+ }
80
+ async function fetchAllContractState(rpc, addresses, config) {
81
+ const maybeAccounts = await fetchAllMaybeContractState(rpc, addresses, config);
82
+ (0, kit_1.assertAccountsExist)(maybeAccounts);
83
+ return maybeAccounts;
84
+ }
85
+ async function fetchAllMaybeContractState(rpc, addresses, config) {
86
+ const maybeAccounts = await (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config);
87
+ return maybeAccounts.map((maybeAccount) => decodeContractState(maybeAccount));
88
+ }
89
+ function getContractStateSize() {
90
+ return 228;
91
+ }
92
+ //# sourceMappingURL=contractState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractState.js","sourceRoot":"","sources":["../../../../../src/codama/mainnet/accounts/contractState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * This code was AUTOGENERATED using the codama library.
4
+ * Please DO NOT EDIT THIS FILE, instead use visitors
5
+ * to add features, then rerun codama to update it.
6
+ *
7
+ * @see https://github.com/codama-idl/codama
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FLEET_DISCRIMINATOR = void 0;
11
+ exports.getFleetDiscriminatorBytes = getFleetDiscriminatorBytes;
12
+ exports.getFleetEncoder = getFleetEncoder;
13
+ exports.getFleetDecoder = getFleetDecoder;
14
+ exports.getFleetCodec = getFleetCodec;
15
+ exports.decodeFleet = decodeFleet;
16
+ exports.fetchFleet = fetchFleet;
17
+ exports.fetchMaybeFleet = fetchMaybeFleet;
18
+ exports.fetchAllFleet = fetchAllFleet;
19
+ exports.fetchAllMaybeFleet = fetchAllMaybeFleet;
20
+ exports.getFleetSize = getFleetSize;
21
+ const kit_1 = require("@solana/kit");
22
+ exports.FLEET_DISCRIMINATOR = new Uint8Array([
23
+ 109, 207, 251, 48, 106, 2, 136, 163,
24
+ ]);
25
+ function getFleetDiscriminatorBytes() {
26
+ return (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8).encode(exports.FLEET_DISCRIMINATOR);
27
+ }
28
+ function getFleetEncoder() {
29
+ return (0, kit_1.transformEncoder)((0, kit_1.getStructEncoder)([
30
+ ['discriminator', (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8)],
31
+ ['version', (0, kit_1.getU8Encoder)()],
32
+ ['gameId', (0, kit_1.getAddressEncoder)()],
33
+ ['ownerProfile', (0, kit_1.getAddressEncoder)()],
34
+ ['fleetShips', (0, kit_1.getAddressEncoder)()],
35
+ ['subProfile', (0, kit_1.getAddressEncoder)()],
36
+ ['subProfileInvalidator', (0, kit_1.getAddressEncoder)()],
37
+ ]), (value) => ({ ...value, discriminator: exports.FLEET_DISCRIMINATOR }));
38
+ }
39
+ function getFleetDecoder() {
40
+ return (0, kit_1.getStructDecoder)([
41
+ ['discriminator', (0, kit_1.fixDecoderSize)((0, kit_1.getBytesDecoder)(), 8)],
42
+ ['version', (0, kit_1.getU8Decoder)()],
43
+ ['gameId', (0, kit_1.getAddressDecoder)()],
44
+ ['ownerProfile', (0, kit_1.getAddressDecoder)()],
45
+ ['fleetShips', (0, kit_1.getAddressDecoder)()],
46
+ ['subProfile', (0, kit_1.getAddressDecoder)()],
47
+ ['subProfileInvalidator', (0, kit_1.getAddressDecoder)()],
48
+ ]);
49
+ }
50
+ function getFleetCodec() {
51
+ return (0, kit_1.combineCodec)(getFleetEncoder(), getFleetDecoder());
52
+ }
53
+ function decodeFleet(encodedAccount) {
54
+ return (0, kit_1.decodeAccount)(encodedAccount, getFleetDecoder());
55
+ }
56
+ async function fetchFleet(rpc, address, config) {
57
+ const maybeAccount = await fetchMaybeFleet(rpc, address, config);
58
+ (0, kit_1.assertAccountExists)(maybeAccount);
59
+ return maybeAccount;
60
+ }
61
+ async function fetchMaybeFleet(rpc, address, config) {
62
+ const maybeAccount = await (0, kit_1.fetchEncodedAccount)(rpc, address, config);
63
+ return decodeFleet(maybeAccount);
64
+ }
65
+ async function fetchAllFleet(rpc, addresses, config) {
66
+ const maybeAccounts = await fetchAllMaybeFleet(rpc, addresses, config);
67
+ (0, kit_1.assertAccountsExist)(maybeAccounts);
68
+ return maybeAccounts;
69
+ }
70
+ async function fetchAllMaybeFleet(rpc, addresses, config) {
71
+ const maybeAccounts = await (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config);
72
+ return maybeAccounts.map((maybeAccount) => decodeFleet(maybeAccount));
73
+ }
74
+ function getFleetSize() {
75
+ return 169;
76
+ }
77
+ //# sourceMappingURL=fleet.js.map