@wuwei-labs/srsly 2.0.0-beta.11 → 2.0.0-beta.13

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 (196) hide show
  1. package/README.md +219 -81
  2. package/dist/cjs/codama/atlasnet/accounts/contractState.js +87 -0
  3. package/dist/cjs/codama/atlasnet/accounts/contractState.js.map +1 -0
  4. package/dist/cjs/codama/atlasnet/accounts/fleet.js +77 -0
  5. package/dist/cjs/codama/atlasnet/accounts/fleet.js.map +1 -0
  6. package/dist/cjs/codama/atlasnet/accounts/index.js +28 -0
  7. package/dist/cjs/codama/atlasnet/accounts/index.js.map +1 -0
  8. package/dist/cjs/codama/atlasnet/accounts/rentalState.js +87 -0
  9. package/dist/cjs/codama/atlasnet/accounts/rentalState.js.map +1 -0
  10. package/dist/cjs/codama/atlasnet/accounts/thread.js +89 -0
  11. package/dist/cjs/codama/atlasnet/accounts/thread.js.map +1 -0
  12. package/dist/cjs/codama/atlasnet/errors/index.js +25 -0
  13. package/dist/cjs/codama/atlasnet/errors/index.js.map +1 -0
  14. package/dist/cjs/codama/atlasnet/errors/srsly.js +74 -0
  15. package/dist/cjs/codama/atlasnet/errors/srsly.js.map +1 -0
  16. package/dist/cjs/codama/atlasnet/index.js +29 -0
  17. package/dist/cjs/codama/atlasnet/index.js.map +1 -0
  18. package/dist/cjs/codama/atlasnet/instructions/acceptRental.js +357 -0
  19. package/dist/cjs/codama/atlasnet/instructions/acceptRental.js.map +1 -0
  20. package/dist/cjs/codama/atlasnet/instructions/cancelRental.js +225 -0
  21. package/dist/cjs/codama/atlasnet/instructions/cancelRental.js.map +1 -0
  22. package/dist/cjs/codama/atlasnet/instructions/closeContract.js +246 -0
  23. package/dist/cjs/codama/atlasnet/instructions/closeContract.js.map +1 -0
  24. package/dist/cjs/codama/atlasnet/instructions/closeRental.js +260 -0
  25. package/dist/cjs/codama/atlasnet/instructions/closeRental.js.map +1 -0
  26. package/dist/cjs/codama/atlasnet/instructions/createContract.js +261 -0
  27. package/dist/cjs/codama/atlasnet/instructions/createContract.js.map +1 -0
  28. package/dist/cjs/codama/atlasnet/instructions/index.js +31 -0
  29. package/dist/cjs/codama/atlasnet/instructions/index.js.map +1 -0
  30. package/dist/cjs/codama/atlasnet/instructions/payRental.js +280 -0
  31. package/dist/cjs/codama/atlasnet/instructions/payRental.js.map +1 -0
  32. package/dist/cjs/codama/atlasnet/instructions/resetRental.js +155 -0
  33. package/dist/cjs/codama/atlasnet/instructions/resetRental.js.map +1 -0
  34. package/dist/cjs/codama/atlasnet/programs/index.js +25 -0
  35. package/dist/cjs/codama/atlasnet/programs/index.js.map +1 -0
  36. package/dist/cjs/codama/atlasnet/programs/srsly.js +73 -0
  37. package/dist/cjs/codama/atlasnet/programs/srsly.js.map +1 -0
  38. package/dist/cjs/codama/atlasnet/shared/index.js +95 -0
  39. package/dist/cjs/codama/atlasnet/shared/index.js.map +1 -0
  40. package/dist/cjs/codama/atlasnet/types/clockData.js +31 -0
  41. package/dist/cjs/codama/atlasnet/types/clockData.js.map +1 -0
  42. package/dist/cjs/codama/atlasnet/types/equality.js +30 -0
  43. package/dist/cjs/codama/atlasnet/types/equality.js.map +1 -0
  44. package/dist/cjs/codama/atlasnet/types/execContext.js +38 -0
  45. package/dist/cjs/codama/atlasnet/types/execContext.js.map +1 -0
  46. package/dist/cjs/codama/atlasnet/types/index.js +32 -0
  47. package/dist/cjs/codama/atlasnet/types/index.js.map +1 -0
  48. package/dist/cjs/codama/atlasnet/types/serializableAccount.js +31 -0
  49. package/dist/cjs/codama/atlasnet/types/serializableAccount.js.map +1 -0
  50. package/dist/cjs/codama/atlasnet/types/serializableInstruction.js +32 -0
  51. package/dist/cjs/codama/atlasnet/types/serializableInstruction.js.map +1 -0
  52. package/dist/cjs/codama/atlasnet/types/threadResponse.js +38 -0
  53. package/dist/cjs/codama/atlasnet/types/threadResponse.js.map +1 -0
  54. package/dist/cjs/codama/atlasnet/types/trigger.js +90 -0
  55. package/dist/cjs/codama/atlasnet/types/trigger.js.map +1 -0
  56. package/dist/cjs/codama/atlasnet/types/triggerContext.js +49 -0
  57. package/dist/cjs/codama/atlasnet/types/triggerContext.js.map +1 -0
  58. package/dist/cjs/codama/devnet/constants.js +1 -1
  59. package/dist/cjs/package.json +13 -15
  60. package/dist/cjs/utils/config.js +66 -48
  61. package/dist/cjs/utils/config.js.map +1 -1
  62. package/dist/cjs/utils/constants.js +9 -22
  63. package/dist/cjs/utils/constants.js.map +1 -1
  64. package/dist/esm/codama/atlasnet/accounts/contractState.js +75 -0
  65. package/dist/esm/codama/atlasnet/accounts/contractState.js.map +1 -0
  66. package/dist/esm/codama/atlasnet/accounts/fleet.js +64 -0
  67. package/dist/esm/codama/atlasnet/accounts/fleet.js.map +1 -0
  68. package/dist/esm/codama/atlasnet/accounts/index.js +12 -0
  69. package/dist/esm/codama/atlasnet/accounts/index.js.map +1 -0
  70. package/dist/esm/codama/atlasnet/accounts/rentalState.js +74 -0
  71. package/dist/esm/codama/atlasnet/accounts/rentalState.js.map +1 -0
  72. package/dist/esm/codama/atlasnet/accounts/thread.js +77 -0
  73. package/dist/esm/codama/atlasnet/accounts/thread.js.map +1 -0
  74. package/dist/esm/codama/atlasnet/errors/index.js +9 -0
  75. package/dist/esm/codama/atlasnet/errors/index.js.map +1 -0
  76. package/dist/esm/codama/atlasnet/errors/srsly.js +69 -0
  77. package/dist/esm/codama/atlasnet/errors/srsly.js.map +1 -0
  78. package/dist/esm/codama/atlasnet/index.js +13 -0
  79. package/dist/esm/codama/atlasnet/index.js.map +1 -0
  80. package/dist/esm/codama/atlasnet/instructions/acceptRental.js +347 -0
  81. package/dist/esm/codama/atlasnet/instructions/acceptRental.js.map +1 -0
  82. package/dist/esm/codama/atlasnet/instructions/cancelRental.js +215 -0
  83. package/dist/esm/codama/atlasnet/instructions/cancelRental.js.map +1 -0
  84. package/dist/esm/codama/atlasnet/instructions/closeContract.js +236 -0
  85. package/dist/esm/codama/atlasnet/instructions/closeContract.js.map +1 -0
  86. package/dist/esm/codama/atlasnet/instructions/closeRental.js +250 -0
  87. package/dist/esm/codama/atlasnet/instructions/closeRental.js.map +1 -0
  88. package/dist/esm/codama/atlasnet/instructions/createContract.js +251 -0
  89. package/dist/esm/codama/atlasnet/instructions/createContract.js.map +1 -0
  90. package/dist/esm/codama/atlasnet/instructions/index.js +15 -0
  91. package/dist/esm/codama/atlasnet/instructions/index.js.map +1 -0
  92. package/dist/esm/codama/atlasnet/instructions/payRental.js +270 -0
  93. package/dist/esm/codama/atlasnet/instructions/payRental.js.map +1 -0
  94. package/dist/esm/codama/atlasnet/instructions/resetRental.js +145 -0
  95. package/dist/esm/codama/atlasnet/instructions/resetRental.js.map +1 -0
  96. package/dist/esm/codama/atlasnet/programs/index.js +9 -0
  97. package/dist/esm/codama/atlasnet/programs/index.js.map +1 -0
  98. package/dist/esm/codama/atlasnet/programs/srsly.js +68 -0
  99. package/dist/esm/codama/atlasnet/programs/srsly.js.map +1 -0
  100. package/dist/esm/codama/atlasnet/shared/index.js +87 -0
  101. package/dist/esm/codama/atlasnet/shared/index.js.map +1 -0
  102. package/dist/esm/codama/atlasnet/types/clockData.js +26 -0
  103. package/dist/esm/codama/atlasnet/types/clockData.js.map +1 -0
  104. package/dist/esm/codama/atlasnet/types/equality.js +24 -0
  105. package/dist/esm/codama/atlasnet/types/equality.js.map +1 -0
  106. package/dist/esm/codama/atlasnet/types/execContext.js +33 -0
  107. package/dist/esm/codama/atlasnet/types/execContext.js.map +1 -0
  108. package/dist/esm/codama/atlasnet/types/index.js +16 -0
  109. package/dist/esm/codama/atlasnet/types/index.js.map +1 -0
  110. package/dist/esm/codama/atlasnet/types/serializableAccount.js +26 -0
  111. package/dist/esm/codama/atlasnet/types/serializableAccount.js.map +1 -0
  112. package/dist/esm/codama/atlasnet/types/serializableInstruction.js +27 -0
  113. package/dist/esm/codama/atlasnet/types/serializableInstruction.js.map +1 -0
  114. package/dist/esm/codama/atlasnet/types/threadResponse.js +33 -0
  115. package/dist/esm/codama/atlasnet/types/threadResponse.js.map +1 -0
  116. package/dist/esm/codama/atlasnet/types/trigger.js +83 -0
  117. package/dist/esm/codama/atlasnet/types/trigger.js.map +1 -0
  118. package/dist/esm/codama/atlasnet/types/triggerContext.js +42 -0
  119. package/dist/esm/codama/atlasnet/types/triggerContext.js.map +1 -0
  120. package/dist/esm/codama/devnet/constants.js +1 -1
  121. package/dist/esm/package.json +13 -15
  122. package/dist/esm/utils/config.js +65 -46
  123. package/dist/esm/utils/config.js.map +1 -1
  124. package/dist/esm/utils/constants.js +10 -23
  125. package/dist/esm/utils/constants.js.map +1 -1
  126. package/dist/types/codama/atlasnet/accounts/contractState.d.ts +51 -0
  127. package/dist/types/codama/atlasnet/accounts/contractState.d.ts.map +1 -0
  128. package/dist/types/codama/atlasnet/accounts/fleet.d.ts +38 -0
  129. package/dist/types/codama/atlasnet/accounts/fleet.d.ts.map +1 -0
  130. package/dist/types/codama/atlasnet/accounts/index.d.ts +12 -0
  131. package/dist/types/codama/atlasnet/accounts/index.d.ts.map +1 -0
  132. package/dist/types/codama/atlasnet/accounts/rentalState.d.ts +48 -0
  133. package/dist/types/codama/atlasnet/accounts/rentalState.d.ts.map +1 -0
  134. package/dist/types/codama/atlasnet/accounts/thread.d.ts +74 -0
  135. package/dist/types/codama/atlasnet/accounts/thread.d.ts.map +1 -0
  136. package/dist/types/codama/atlasnet/errors/index.d.ts +9 -0
  137. package/dist/types/codama/atlasnet/errors/index.d.ts.map +1 -0
  138. package/dist/types/codama/atlasnet/errors/srsly.d.ts +50 -0
  139. package/dist/types/codama/atlasnet/errors/srsly.d.ts.map +1 -0
  140. package/dist/types/codama/atlasnet/index.d.ts +13 -0
  141. package/dist/types/codama/atlasnet/index.d.ts.map +1 -0
  142. package/dist/types/codama/atlasnet/instructions/acceptRental.d.ts +131 -0
  143. package/dist/types/codama/atlasnet/instructions/acceptRental.d.ts.map +1 -0
  144. package/dist/types/codama/atlasnet/instructions/cancelRental.d.ts +71 -0
  145. package/dist/types/codama/atlasnet/instructions/cancelRental.d.ts.map +1 -0
  146. package/dist/types/codama/atlasnet/instructions/closeContract.d.ts +100 -0
  147. package/dist/types/codama/atlasnet/instructions/closeContract.d.ts.map +1 -0
  148. package/dist/types/codama/atlasnet/instructions/closeRental.d.ts +83 -0
  149. package/dist/types/codama/atlasnet/instructions/closeRental.d.ts.map +1 -0
  150. package/dist/types/codama/atlasnet/instructions/createContract.d.ts +108 -0
  151. package/dist/types/codama/atlasnet/instructions/createContract.d.ts.map +1 -0
  152. package/dist/types/codama/atlasnet/instructions/index.d.ts +15 -0
  153. package/dist/types/codama/atlasnet/instructions/index.d.ts.map +1 -0
  154. package/dist/types/codama/atlasnet/instructions/payRental.d.ts +110 -0
  155. package/dist/types/codama/atlasnet/instructions/payRental.d.ts.map +1 -0
  156. package/dist/types/codama/atlasnet/instructions/resetRental.d.ts +71 -0
  157. package/dist/types/codama/atlasnet/instructions/resetRental.d.ts.map +1 -0
  158. package/dist/types/codama/atlasnet/programs/index.d.ts +9 -0
  159. package/dist/types/codama/atlasnet/programs/index.d.ts.map +1 -0
  160. package/dist/types/codama/atlasnet/programs/srsly.d.ts +47 -0
  161. package/dist/types/codama/atlasnet/programs/srsly.d.ts.map +1 -0
  162. package/dist/types/codama/atlasnet/shared/index.d.ts +50 -0
  163. package/dist/types/codama/atlasnet/shared/index.d.ts.map +1 -0
  164. package/dist/types/codama/atlasnet/types/clockData.d.ts +29 -0
  165. package/dist/types/codama/atlasnet/types/clockData.d.ts.map +1 -0
  166. package/dist/types/codama/atlasnet/types/equality.d.ts +18 -0
  167. package/dist/types/codama/atlasnet/types/equality.d.ts.map +1 -0
  168. package/dist/types/codama/atlasnet/types/execContext.d.ts +48 -0
  169. package/dist/types/codama/atlasnet/types/execContext.d.ts.map +1 -0
  170. package/dist/types/codama/atlasnet/types/index.d.ts +16 -0
  171. package/dist/types/codama/atlasnet/types/index.d.ts.map +1 -0
  172. package/dist/types/codama/atlasnet/types/serializableAccount.d.ts +22 -0
  173. package/dist/types/codama/atlasnet/types/serializableAccount.d.ts.map +1 -0
  174. package/dist/types/codama/atlasnet/types/serializableInstruction.d.ts +30 -0
  175. package/dist/types/codama/atlasnet/types/serializableInstruction.d.ts.map +1 -0
  176. package/dist/types/codama/atlasnet/types/threadResponse.d.ts +42 -0
  177. package/dist/types/codama/atlasnet/types/threadResponse.d.ts.map +1 -0
  178. package/dist/types/codama/atlasnet/types/trigger.d.ts +98 -0
  179. package/dist/types/codama/atlasnet/types/trigger.d.ts.map +1 -0
  180. package/dist/types/codama/atlasnet/types/triggerContext.d.ts +75 -0
  181. package/dist/types/codama/atlasnet/types/triggerContext.d.ts.map +1 -0
  182. package/dist/types/codama/devnet/constants.d.ts +1 -1
  183. package/dist/types/index.d.ts +1 -1
  184. package/dist/types/index.d.ts.map +1 -1
  185. package/dist/types/utils/config.d.ts +34 -31
  186. package/dist/types/utils/config.d.ts.map +1 -1
  187. package/dist/types/utils/constants.d.ts.map +1 -1
  188. package/package.json +15 -17
  189. package/dist/cjs/codama/mainnet/constants.js +0 -32
  190. package/dist/cjs/codama/mainnet/constants.js.map +0 -1
  191. package/dist/esm/codama/mainnet/constants.js +0 -29
  192. package/dist/esm/codama/mainnet/constants.js.map +0 -1
  193. package/dist/types/codama/mainnet/constants.d.ts +0 -34
  194. package/dist/types/codama/mainnet/constants.d.ts.map +0 -1
  195. /package/target/idl/{srsly-devnet.json → srsly-atlasnet.json} +0 -0
  196. /package/target/types/{srsly-devnet.ts → srsly-atlasnet.ts} +0 -0
package/README.md CHANGED
@@ -4,7 +4,25 @@
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 fleets with network-specific configuration support.
7
+ A TypeScript SDK for building Solana instructions to interact with the SRSLY (Space Rental from SLY) program - a decentralized rental system for Star Atlas fleets.
8
+
9
+ ## What This SDK Does
10
+
11
+ The SRSLY SDK is an **instruction builder** that helps you create properly formatted Solana instructions for the SRSLY rental program. It handles:
12
+
13
+ - ✅ Network-specific program addresses and configurations
14
+ - ✅ Account derivation and validation
15
+ - ✅ Instruction data encoding
16
+ - ✅ Type-safe parameter handling
17
+
18
+ ## What You Need to Provide
19
+
20
+ The SDK **does not** handle transaction creation, signing, or submission. You'll need to:
21
+
22
+ - 🔧 Choose a transaction library (`@solana/web3.js` or `@solana/kit`)
23
+ - 🔧 Connect to a Solana RPC endpoint
24
+ - 🔧 Handle wallet integration (Phantom, Solflare, etc.)
25
+ - 🔧 Build, sign, and send transactions
8
26
 
9
27
  ## Installation
10
28
 
@@ -31,44 +49,73 @@ yarn add @wuwei-labs/srsly
31
49
  ```typescript
32
50
  import {
33
51
  createContract,
34
- acceptRental,
35
- setConfig,
36
- setNetwork,
37
- ATLAS_TO_STARDUST
52
+ setConfig
38
53
  } from '@wuwei-labs/srsly';
39
54
 
40
- // Option 1: Set global configuration (recommended for most apps)
41
- setConfig({ network: 'mainnet' });
42
- // or use the convenience function: setNetwork('mainnet');
55
+ import {
56
+ createDefaultSolanaRpc,
57
+ createTransaction,
58
+ appendInstructions,
59
+ signAndSendTransaction,
60
+ pipe
61
+ } from '@solana/kit';
62
+
63
+ // Step 1: Set up RPC connection
64
+ const rpc = createDefaultSolanaRpc('https://api.atlasnet.solana.com');
65
+
66
+ // Step 2: Get wallet from browser extension (Phantom, Solflare, etc.)
67
+ // Assumes you've already connected to the user's wallet
68
+ const wallet = window.solana; // or your wallet adapter
69
+
70
+ // Step 3: Configure SDK to use atlasnet program addresses
71
+ setConfig({ network: 'atlasnet' });
43
72
 
44
- // Now all operations use mainnet by default
73
+ // Step 4: Build the instruction using SRSLY SDK
45
74
  const contractInstruction = await createContract({
46
- owner: wallet,
75
+ owner: wallet.publicKey, // Wallet's public key
47
76
  fleet: fleetAddress,
48
77
  ownerProfile: profileAddress,
49
78
  rate: 1000000, // Rate in ATLAS tokens
50
79
  durationMin: 86400, // 1 day in seconds
51
80
  durationMax: 604800, // 1 week in seconds
52
- paymentsFreq: 'daily'
53
- }); // Uses mainnet from global config
81
+ paymentsFreq: 'daily',
82
+ ownerKeyIndex: 0
83
+ });
54
84
 
55
- // Accept a rental with automatic ATLAS to stardust conversion
56
- const acceptInstruction = await acceptRental({
57
- borrower: borrowerWallet,
58
- borrowerProfile: borrowerProfileAddress,
59
- borrowerFaction: 'mud', // or 1, 2, 3
60
- fleet: fleetAddress,
61
- contract: contractAddress,
62
- rate: 100, // ATLAS tokens per duration
63
- duration: 86400 // 1 day in seconds
64
- // amount is automatically calculated: rate * duration * ATLAS_TO_STARDUST
65
- }); // Uses mainnet from global config
85
+ // Step 5: Build transaction and send (using your preferred method)
86
+ const transaction = pipe(
87
+ createTransaction({ version: 0 }),
88
+ tx => appendInstructions([contractInstruction], tx)
89
+ );
66
90
 
67
- // Option 2: Override global config for specific instructions
68
- const devnetInstruction = await createContract(params).set({ network: 'devnet' });
91
+ // Sign and send using wallet extension
92
+ const signature = await signAndSendTransaction(rpc, transaction, wallet);
93
+ console.log('Transaction signature:', signature);
69
94
  ```
70
95
 
71
- ## Core Features
96
+ **Alternative with @solana/web3.js:**
97
+
98
+ ```typescript
99
+ import { Connection, Transaction } from '@solana/web3.js';
100
+
101
+ const connection = new Connection('https://api.atlasnet.solana.com');
102
+ const transaction = new Transaction().add(contractInstruction);
103
+
104
+ // Sign and send with wallet extension
105
+ const signature = await window.solana.signAndSendTransaction(transaction);
106
+ ```
107
+
108
+ > **Note**: The SRSLY SDK only creates instructions. You're responsible for:
109
+ > - Setting up RPC connections
110
+ > - Managing wallet connections (Phantom, Solflare, etc.)
111
+ > - Building, signing, and sending transactions
112
+ > - Handling transaction confirmation and errors
113
+
114
+ ---
115
+
116
+ ## SDK Features
117
+
118
+ The following examples show how to use the SRSLY SDK to build instructions. Add these instructions to transactions using your preferred Solana library (`@solana/web3.js` or `@solana/kit`).
72
119
 
73
120
  ### Contract Management
74
121
 
@@ -89,7 +136,7 @@ const createIx = await createContract({
89
136
  ownerKeyIndex: 0
90
137
  }).set({ network: 'mainnet' }); // Use mainnet configuration
91
138
 
92
- // Close an existing contract using devnet defaults (direct await)
139
+ // Close an existing contract using atlasnet programs (direct await)
93
140
  const closeIx = await closeContract({
94
141
  owner: wallet,
95
142
  fleet: fleetAddress,
@@ -111,7 +158,7 @@ import {
111
158
  ATLAS_TO_STARDUST
112
159
  } from '@wuwei-labs/srsly';
113
160
 
114
- // Accept a rental offer on devnet (rate-based with automatic conversion)
161
+ // Accept a rental offer on atlasnet (rate-based with automatic conversion)
115
162
  const acceptIx = await acceptRental({
116
163
  borrower: borrowerWallet,
117
164
  borrowerProfile: borrowerProfileAddress,
@@ -121,9 +168,9 @@ const acceptIx = await acceptRental({
121
168
  rate: 100, // ATLAS tokens (not per second, just ATLAS)
122
169
  duration: 86400 // 1 day in seconds
123
170
  // amount = rate * duration * ATLAS_TO_STARDUST automatically calculated
124
- }).set({ network: 'devnet' });
171
+ }).set({ network: 'atlasnet' });
125
172
 
126
- // Cancel an active rental using devnet defaults (direct await)
173
+ // Cancel an active rental using atlasnet programs (direct await)
127
174
  const cancelIx = await cancelRental({
128
175
  borrower: borrowerWallet,
129
176
  contract: contractAddress,
@@ -159,7 +206,7 @@ Fetch and decode account states using network-specific functions:
159
206
  ```typescript
160
207
  import { getCachedNetworkModule } from '@wuwei-labs/srsly';
161
208
 
162
- // Get network-specific account functions (defaults to devnet)
209
+ // Get network-specific account functions (programs to atlasnet)
163
210
  const accountsModule = await getCachedNetworkModule('accounts');
164
211
  const { fetchContractState, fetchRentalState } = accountsModule;
165
212
 
@@ -177,6 +224,25 @@ console.log('Rental status:', rentalState.status);
177
224
  console.log('Start time:', new Date(rentalState.startTime.toNumber() * 1000));
178
225
  ```
179
226
 
227
+ ### Error Handling
228
+
229
+ The SDK provides custom error types for better debugging:
230
+
231
+ ```typescript
232
+ import { SrslyError } from '@wuwei-labs/srsly';
233
+
234
+ try {
235
+ const instruction = await createContract(params);
236
+ // Add to transaction and send...
237
+ } catch (error) {
238
+ if (error instanceof SrslyError) {
239
+ console.error('SRSLY SDK Error:', error.message, error.code);
240
+ } else {
241
+ console.error('Other Error:', error);
242
+ }
243
+ }
244
+ ```
245
+
180
246
  ### Token Conversion
181
247
 
182
248
  The SDK includes automatic ATLAS to stardust conversion for rental operations:
@@ -431,71 +497,101 @@ The SDK supports multiple payment frequencies:
431
497
  - `weekly` - Weekly payments at specific day/time
432
498
  - `monthly` - Monthly payments at specific day/time
433
499
 
434
- ## Error Handling
435
500
 
436
- The SDK includes comprehensive error types:
501
+ ## Network Configuration
437
502
 
438
- ```typescript
439
- import { SrslyError } from '@wuwei-labs/srsly';
503
+ The SDK supports both Solana mainnet and atlasnet with different IDL artifacts and default program addresses for each network. The configuration system has two main purposes:
440
504
 
441
- try {
442
- const instruction = await createContract({...});
443
- } catch (error) {
444
- if (error instanceof SrslyError) {
445
- console.error('SRSLY Error:', error.message);
446
- console.error('Error code:', error.code);
447
- }
448
- }
449
- ```
505
+ ### What `setConfig` Does:
450
506
 
451
- ## Network Configuration
507
+ **1. Network Selection (IDL/Module Loading):**
508
+ - ✅ Selects which IDL artifacts to use (`mainnet` vs `atlasnet`)
509
+ - ✅ Loads appropriate codama-generated instruction builders
510
+ - ✅ Determines default program addresses for the network
511
+
512
+ **2. Program Address Selection:**
513
+ - ✅ Select predefined program address sets (mainnet, atlasnet, holosim)
514
+ - ✅ Override specific program addresses (SRSLY, SAGE, Profile Faction)
515
+ - ✅ Override game IDs and other network constants
516
+ - ✅ Mix and match programs across networks if needed
452
517
 
453
- 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.
518
+ **What it does NOT do:**
519
+ - ❌ Configure RPC endpoints
520
+ - ❌ Handle wallet connections
521
+ - ❌ Manage transactions
454
522
 
455
523
  ### Global Configuration (Recommended)
456
524
 
457
525
  Set default configuration once for all SDK operations:
458
526
 
459
527
  ```typescript
460
- import { setConfig, setNetwork, getConfig, createContract } from '@wuwei-labs/srsly';
528
+ import { setConfig, getConfig, createContract } from '@wuwei-labs/srsly';
529
+
530
+ // Example 1: Use mainnet IDL with default mainnet program addresses
531
+ setConfig({
532
+ network: 'mainnet'
533
+ });
534
+
535
+ // Example 2: Use atlasnet IDL with default atlasnet program addresses
536
+ setConfig({
537
+ network: 'atlasnet'
538
+ });
539
+
540
+ // Example 3: Use atlasnet IDL with holosim program addresses
541
+ setConfig({
542
+ network: 'atlasnet',
543
+ programs: 'holosim'
544
+ });
461
545
 
462
- // Option 1: Full configuration
546
+ // Example 4: Use atlasnet IDL with holosim programs but custom SAGE
547
+ setConfig({
548
+ network: 'atlasnet',
549
+ programs: 'holosim',
550
+ sageProgramAddress: 'custom-sage-program-id...'
551
+ });
552
+
553
+ // Example 5: Use mainnet IDL with atlasnet program addresses
463
554
  setConfig({
464
555
  network: 'mainnet',
465
- gameId: 'custom-game-id...'
556
+ programs: 'atlasnet'
466
557
  });
467
558
 
468
- // Option 2: Network-only (convenience function)
469
- setNetwork('mainnet');
559
+ // Example 6: Custom overrides only
560
+ setConfig({
561
+ network: 'atlasnet',
562
+ srslyProgramAddress: 'custom-srsly-program-id...',
563
+ sageProgramAddress: 'custom-sage-program-id...',
564
+ gameId: 'custom-game-id...'
565
+ });
470
566
 
471
567
  // Check current configuration
472
- console.log(getConfig()); // { network: 'mainnet' }
568
+ console.log(getConfig());
473
569
 
474
- // All operations now use mainnet by default
475
- const ix1 = await createContract(params);
476
- const ix2 = await acceptRental(params);
570
+ // All operations now use configured settings
571
+ const ix1 = await createContract(params); // Uses configured SRSLY program
572
+ const ix2 = await acceptRental(params); // Uses configured SAGE program
477
573
  ```
478
574
 
479
575
  ### Per-Instruction Configuration
480
576
 
481
- Override global configuration for specific instructions using the fluent `.set()` interface:
577
+ Override global program address configuration for specific instructions using the fluent `.set()` interface:
482
578
 
483
579
  ```typescript
484
580
  import { createContract, acceptRental } from '@wuwei-labs/srsly';
485
581
 
486
- // Assume global config is set to mainnet
582
+ // Assume global config is set to mainnet program addresses
487
583
  setConfig({ network: 'mainnet' });
488
584
 
489
- // Use global mainnet config
585
+ // Use global mainnet program addresses
490
586
  const mainnetIx = await createContract(params);
491
587
 
492
- // Override to use devnet for this specific instruction
493
- const devnetIx = await createContract(params).set({ network: 'devnet' });
588
+ // Override to use atlasnet program addresses for this specific instruction
589
+ const atlasnetIx = await createContract(params).set({ network: 'atlasnet' });
494
590
 
495
- // Override specific constants while keeping global network
591
+ // Override specific program addresses while keeping global network
496
592
  const customIx = await createContract(params).set({
497
- sageProgramAddress: 'custom...',
498
- gameId: 'custom...'
593
+ sageProgramAddress: 'custom-sage-program-id...',
594
+ gameId: 'custom-game-id...'
499
595
  // network: 'mainnet' inherited from global config
500
596
  });
501
597
  ```
@@ -504,25 +600,24 @@ const customIx = await createContract(params).set({
504
600
 
505
601
  All SDK functions support these usage patterns:
506
602
 
507
- **Direct await (uses global config or devnet fallback):**
603
+ **Direct await (uses global config or atlasnet fallback):**
508
604
 
509
605
  ```typescript
510
- // Uses global configuration if set, otherwise devnet
606
+ // Uses global program addresses if set, otherwise atlasnet programs
511
607
  await createContract(params);
512
608
  await acceptRental(params);
513
609
  ```
514
610
 
515
611
  **Global configuration functions:**
516
612
 
517
- - `setConfig({ network: 'mainnet', gameId: '...' })` - Set full global config
518
- - `setNetwork('mainnet')` - Set global network only (convenience)
613
+ - `setConfig({ network: 'mainnet', gameId: '...' })` - Set global program addresses
519
614
  - `getConfig()` - Get current global configuration
520
- - `clearConfig()` - Reset to devnet defaults
615
+ - `clearConfig()` - Reset to atlasnet programs
521
616
 
522
617
  **Per-instruction overrides with `.set()` method:**
523
618
 
524
- - `.set({ network: 'mainnet' })` - Override global network
525
- - `.set({ sageProgramAddress: '...' })` - Override specific constants only
619
+ - `.set({ network: 'mainnet' })` - Override to mainnet program addresses
620
+ - `.set({ sageProgramAddress: '...' })` - Override specific program address only
526
621
  - `.set({ network: 'mainnet', sageProgramAddress: '...' })` - Multiple overrides
527
622
 
528
623
  **Chainable configurations:**
@@ -530,27 +625,70 @@ await acceptRental(params);
530
625
  ```typescript
531
626
  // Chain multiple configurations (later ones override earlier ones)
532
627
  await createContract(params)
533
- .set({ network: 'devnet' })
628
+ .set({ network: 'atlasnet' })
534
629
  .set({ sageProgramAddress: 'override...' });
535
630
 
536
631
  // Examples with global config
537
632
  setConfig({ network: 'mainnet' });
538
- await createContract(params); // Uses mainnet
539
- await acceptRental(params).set({ network: 'devnet' }); // Override to devnet
540
- await closeContract(params).set({ gameId: 'custom...' }); // Custom gameId, mainnet network
633
+ await createContract(params); // Uses mainnet program addresses
634
+ await acceptRental(params).set({ network: 'atlasnet' }); // Override to atlasnet programs
635
+ await closeContract(params).set({ gameId: 'custom...' }); // Custom gameId, mainnet programs
541
636
  ```
542
637
 
543
638
  ### Available Configuration Options
544
639
 
545
640
  ```typescript
546
641
  interface ConfigOptions {
547
- network?: 'mainnet' | 'devnet'; // Set/override network
548
- sageProgramAddress?: string; // Set/override SAGE program address
549
- profileFactionProgramAddress?: string; // Set/override Profile Faction program address
550
- gameId?: string; // Set/override SAGE game ID
642
+ network?: 'mainnet' | 'atlasnet'; // Which IDL artifacts to use
643
+ programs?: 'mainnet' | 'atlasnet' | 'holosim'; // Which program address set to use
644
+ srslyProgramAddress?: string; // Override SRSLY program address
645
+ sageProgramAddress?: string; // Override SAGE program address
646
+ profileFactionProgramAddress?: string; // Override Profile Faction program address
647
+ gameId?: string; // Override SAGE game ID
648
+ }
649
+ ```
650
+
651
+ **Available Program Address Sets:**
652
+
653
+ ```typescript
654
+ // mainnet
655
+ {
656
+ srslyProgram: 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
657
+ sageProgram: 'SAGE2HAwep459SNq61LHvjxPk4pLPEJLoMETef7f7EE',
658
+ profileFactionProgram: 'pFACSRuobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq',
659
+ gameId: 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr'
660
+ }
661
+
662
+ // atlasnet (default) - values currently empty, to be filled
663
+ {
664
+ srslyProgram: 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
665
+ sageProgram: '',
666
+ profileFactionProgram: '',
667
+ gameId: ''
668
+ }
669
+
670
+ // holosim
671
+ {
672
+ srslyProgram: 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
673
+ sageProgram: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
674
+ profileFactionProgram: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
675
+ gameId: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k'
551
676
  }
552
677
  ```
553
678
 
679
+ **Priority Order:**
680
+ 1. Individual overrides (highest priority)
681
+ 2. programs configuration
682
+ 3. Network default (if programs not specified)
683
+
684
+ **Key Concepts:**
685
+
686
+ - **Network** = Which IDL/codama artifacts to load (affects instruction structure)
687
+ - **programs** = Which predefined program address set to use (mainnet, atlasnet, holosim)
688
+ - **Program Overrides** = Override individual program addresses (highest priority)
689
+ - **Default Behavior** = If programs not specified, uses network's program addresses
690
+ - **Flexibility** = Mix any IDL with any program set, plus individual overrides
691
+
554
692
  ### Network-Specific Constants
555
693
 
556
694
  The SDK automatically resolves network-specific constants:
@@ -562,7 +700,7 @@ import {
562
700
  getSageGameId
563
701
  } from '@wuwei-labs/srsly';
564
702
 
565
- // Get constants for devnet (default)
703
+ // Get constants for atlasnet (default)
566
704
  const sageProgram = await getSageProgramAddress();
567
705
  const gameId = await getSageGameId();
568
706
 
@@ -582,7 +720,7 @@ The SDK provides network-specific IDLs since program configurations differ betwe
582
720
  import mainnetIdl from '@wuwei-labs/srsly/idl/mainnet';
583
721
 
584
722
  // Devnet IDL
585
- import devnetIdl from '@wuwei-labs/srsly/idl/devnet';
723
+ import atlasnetIdl from '@wuwei-labs/srsly/idl/atlasnet';
586
724
 
587
725
  // Use with Anchor
588
726
  import { Program } from '@coral-xyz/anchor';
@@ -605,7 +743,7 @@ import type {
605
743
 
606
744
  // Import network-specific Anchor types
607
745
  import type { Srsly as SrslyMainnet } from '@wuwei-labs/srsly/types/mainnet';
608
- import type { Srsly as SrslyDevnet } from '@wuwei-labs/srsly/types/devnet';
746
+ import type { Srsly as SrslyDevnet } from '@wuwei-labs/srsly/types/atlasnet';
609
747
  ```
610
748
 
611
749
  ## Constants and Utilities
@@ -0,0 +1,87 @@
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
+ const kit_1 = require("@solana/kit");
21
+ exports.CONTRACT_STATE_DISCRIMINATOR = new Uint8Array([
22
+ 190, 138, 10, 223, 189, 116, 222, 115,
23
+ ]);
24
+ function getContractStateDiscriminatorBytes() {
25
+ return (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8).encode(exports.CONTRACT_STATE_DISCRIMINATOR);
26
+ }
27
+ function getContractStateEncoder() {
28
+ return (0, kit_1.transformEncoder)((0, kit_1.getStructEncoder)([
29
+ ['discriminator', (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8)],
30
+ ['version', (0, kit_1.getU8Encoder)()],
31
+ ['toClose', (0, kit_1.getBooleanEncoder)()],
32
+ ['rate', (0, kit_1.getU64Encoder)()],
33
+ ['durationMin', (0, kit_1.getU64Encoder)()],
34
+ ['durationMax', (0, kit_1.getU64Encoder)()],
35
+ ['paymentsFeq', (0, kit_1.addEncoderSizePrefix)((0, kit_1.getUtf8Encoder)(), (0, kit_1.getU32Encoder)())],
36
+ ['fleet', (0, kit_1.getAddressEncoder)()],
37
+ ['gameId', (0, kit_1.getAddressEncoder)()],
38
+ ['currentRentalState', (0, kit_1.getAddressEncoder)()],
39
+ ['owner', (0, kit_1.getAddressEncoder)()],
40
+ ['ownerTokenAccount', (0, kit_1.getAddressEncoder)()],
41
+ ['ownerProfile', (0, kit_1.getAddressEncoder)()],
42
+ ['bump', (0, kit_1.getU8Encoder)()],
43
+ ]), (value) => ({ ...value, discriminator: exports.CONTRACT_STATE_DISCRIMINATOR }));
44
+ }
45
+ function getContractStateDecoder() {
46
+ return (0, kit_1.getStructDecoder)([
47
+ ['discriminator', (0, kit_1.fixDecoderSize)((0, kit_1.getBytesDecoder)(), 8)],
48
+ ['version', (0, kit_1.getU8Decoder)()],
49
+ ['toClose', (0, kit_1.getBooleanDecoder)()],
50
+ ['rate', (0, kit_1.getU64Decoder)()],
51
+ ['durationMin', (0, kit_1.getU64Decoder)()],
52
+ ['durationMax', (0, kit_1.getU64Decoder)()],
53
+ ['paymentsFeq', (0, kit_1.addDecoderSizePrefix)((0, kit_1.getUtf8Decoder)(), (0, kit_1.getU32Decoder)())],
54
+ ['fleet', (0, kit_1.getAddressDecoder)()],
55
+ ['gameId', (0, kit_1.getAddressDecoder)()],
56
+ ['currentRentalState', (0, kit_1.getAddressDecoder)()],
57
+ ['owner', (0, kit_1.getAddressDecoder)()],
58
+ ['ownerTokenAccount', (0, kit_1.getAddressDecoder)()],
59
+ ['ownerProfile', (0, kit_1.getAddressDecoder)()],
60
+ ['bump', (0, kit_1.getU8Decoder)()],
61
+ ]);
62
+ }
63
+ function getContractStateCodec() {
64
+ return (0, kit_1.combineCodec)(getContractStateEncoder(), getContractStateDecoder());
65
+ }
66
+ function decodeContractState(encodedAccount) {
67
+ return (0, kit_1.decodeAccount)(encodedAccount, getContractStateDecoder());
68
+ }
69
+ async function fetchContractState(rpc, address, config) {
70
+ const maybeAccount = await fetchMaybeContractState(rpc, address, config);
71
+ (0, kit_1.assertAccountExists)(maybeAccount);
72
+ return maybeAccount;
73
+ }
74
+ async function fetchMaybeContractState(rpc, address, config) {
75
+ const maybeAccount = await (0, kit_1.fetchEncodedAccount)(rpc, address, config);
76
+ return decodeContractState(maybeAccount);
77
+ }
78
+ async function fetchAllContractState(rpc, addresses, config) {
79
+ const maybeAccounts = await fetchAllMaybeContractState(rpc, addresses, config);
80
+ (0, kit_1.assertAccountsExist)(maybeAccounts);
81
+ return maybeAccounts;
82
+ }
83
+ async function fetchAllMaybeContractState(rpc, addresses, config) {
84
+ const maybeAccounts = await (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config);
85
+ return maybeAccounts.map((maybeAccount) => decodeContractState(maybeAccount));
86
+ }
87
+ //# sourceMappingURL=contractState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractState.js","sourceRoot":"","sources":["../../../../../src/codama/atlasnet/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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../../../../src/codama/atlasnet/accounts/fleet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
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
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ __exportStar(require("./contractState"), exports);
25
+ __exportStar(require("./fleet"), exports);
26
+ __exportStar(require("./rentalState"), exports);
27
+ __exportStar(require("./thread"), exports);
28
+ //# sourceMappingURL=index.js.map