@wuwei-labs/srsly 2.0.0-beta.2 → 2.0.0-beta.20

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 (188) hide show
  1. package/README.md +283 -111
  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/accounts/contractState.js +17 -39
  5. package/dist/cjs/codama/accounts/contractState.js.map +1 -1
  6. package/dist/cjs/codama/accounts/index.js +1 -1
  7. package/dist/cjs/codama/accounts/index.js.map +1 -1
  8. package/dist/cjs/codama/accounts/rentalState.js +18 -33
  9. package/dist/cjs/codama/accounts/rentalState.js.map +1 -1
  10. package/dist/cjs/codama/accounts/thread.js +15 -32
  11. package/dist/cjs/codama/accounts/thread.js.map +1 -1
  12. package/dist/cjs/codama/errors/srsly.js +24 -3
  13. package/dist/cjs/codama/errors/srsly.js.map +1 -1
  14. package/dist/cjs/codama/instructions/acceptRental.js +202 -224
  15. package/dist/cjs/codama/instructions/acceptRental.js.map +1 -1
  16. package/dist/cjs/codama/instructions/cancelRental.js +100 -136
  17. package/dist/cjs/codama/instructions/cancelRental.js.map +1 -1
  18. package/dist/cjs/codama/instructions/closeContract.js +95 -116
  19. package/dist/cjs/codama/instructions/closeContract.js.map +1 -1
  20. package/dist/cjs/codama/instructions/closeRental.js +119 -132
  21. package/dist/cjs/codama/instructions/closeRental.js.map +1 -1
  22. package/dist/cjs/codama/instructions/createContract.js +127 -143
  23. package/dist/cjs/codama/instructions/createContract.js.map +1 -1
  24. package/dist/cjs/codama/instructions/index.js +2 -1
  25. package/dist/cjs/codama/instructions/index.js.map +1 -1
  26. package/dist/cjs/codama/instructions/initializeConfig.js +131 -0
  27. package/dist/cjs/codama/instructions/initializeConfig.js.map +1 -0
  28. package/dist/cjs/codama/instructions/payRental.js +125 -129
  29. package/dist/cjs/codama/instructions/payRental.js.map +1 -1
  30. package/dist/cjs/codama/instructions/resetRental.js +55 -77
  31. package/dist/cjs/codama/instructions/resetRental.js.map +1 -1
  32. package/dist/cjs/codama/instructions/updateConfig.js +145 -0
  33. package/dist/cjs/codama/instructions/updateConfig.js.map +1 -0
  34. package/dist/cjs/codama/programs/srsly.js +12 -8
  35. package/dist/cjs/codama/programs/srsly.js.map +1 -1
  36. package/dist/cjs/codama/shared/index.js +6 -2
  37. package/dist/cjs/codama/shared/index.js.map +1 -1
  38. package/dist/cjs/codama/types/trigger.js +1 -1
  39. package/dist/cjs/codama/types/trigger.js.map +1 -1
  40. package/dist/cjs/codama/types/triggerContext.js +1 -1
  41. package/dist/cjs/codama/types/triggerContext.js.map +1 -1
  42. package/dist/cjs/contract/close.js +75 -34
  43. package/dist/cjs/contract/close.js.map +1 -1
  44. package/dist/cjs/contract/create.js +59 -43
  45. package/dist/cjs/contract/create.js.map +1 -1
  46. package/dist/cjs/index.js +7 -1
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/package.json +54 -0
  49. package/dist/cjs/rental/accept.js +68 -40
  50. package/dist/cjs/rental/accept.js.map +1 -1
  51. package/dist/cjs/rental/cancel.js +36 -28
  52. package/dist/cjs/rental/cancel.js.map +1 -1
  53. package/dist/cjs/rental/close.js +37 -29
  54. package/dist/cjs/rental/close.js.map +1 -1
  55. package/dist/cjs/rental/reset.js +46 -42
  56. package/dist/cjs/rental/reset.js.map +1 -1
  57. package/dist/cjs/utils/config.js +303 -0
  58. package/dist/cjs/utils/config.js.map +1 -0
  59. package/dist/cjs/utils/constants.js +69 -9
  60. package/dist/cjs/utils/constants.js.map +1 -1
  61. package/dist/cjs/utils/index.js +1 -0
  62. package/dist/cjs/utils/index.js.map +1 -1
  63. package/dist/cjs/utils/profiles.js +96 -95
  64. package/dist/cjs/utils/profiles.js.map +1 -1
  65. package/dist/esm/codama/accounts/config.js +76 -0
  66. package/dist/esm/codama/accounts/config.js.map +1 -0
  67. package/dist/esm/codama/accounts/contractState.js +3 -7
  68. package/dist/esm/codama/accounts/contractState.js.map +1 -1
  69. package/dist/esm/codama/accounts/index.js +1 -1
  70. package/dist/esm/codama/accounts/index.js.map +1 -1
  71. package/dist/esm/codama/accounts/rentalState.js +3 -1
  72. package/dist/esm/codama/accounts/rentalState.js.map +1 -1
  73. package/dist/esm/codama/errors/srsly.js +23 -2
  74. package/dist/esm/codama/errors/srsly.js.map +1 -1
  75. package/dist/esm/codama/instructions/acceptRental.js +30 -39
  76. package/dist/esm/codama/instructions/acceptRental.js.map +1 -1
  77. package/dist/esm/codama/instructions/cancelRental.js +10 -33
  78. package/dist/esm/codama/instructions/cancelRental.js.map +1 -1
  79. package/dist/esm/codama/instructions/closeContract.js +17 -25
  80. package/dist/esm/codama/instructions/closeContract.js.map +1 -1
  81. package/dist/esm/codama/instructions/closeRental.js +19 -19
  82. package/dist/esm/codama/instructions/closeRental.js.map +1 -1
  83. package/dist/esm/codama/instructions/createContract.js +13 -16
  84. package/dist/esm/codama/instructions/createContract.js.map +1 -1
  85. package/dist/esm/codama/instructions/index.js +2 -1
  86. package/dist/esm/codama/instructions/index.js.map +1 -1
  87. package/dist/esm/codama/instructions/initializeConfig.js +121 -0
  88. package/dist/esm/codama/instructions/initializeConfig.js.map +1 -0
  89. package/dist/esm/codama/instructions/payRental.js +34 -25
  90. package/dist/esm/codama/instructions/payRental.js.map +1 -1
  91. package/dist/esm/codama/instructions/resetRental.js +0 -9
  92. package/dist/esm/codama/instructions/resetRental.js.map +1 -1
  93. package/dist/esm/codama/instructions/updateConfig.js +135 -0
  94. package/dist/esm/codama/instructions/updateConfig.js.map +1 -0
  95. package/dist/esm/codama/programs/srsly.js +12 -8
  96. package/dist/esm/codama/programs/srsly.js.map +1 -1
  97. package/dist/esm/contract/close.js +68 -16
  98. package/dist/esm/contract/close.js.map +1 -1
  99. package/dist/esm/contract/create.js +60 -33
  100. package/dist/esm/contract/create.js.map +1 -1
  101. package/dist/esm/index.js +5 -1
  102. package/dist/esm/index.js.map +1 -1
  103. package/dist/esm/package.json +54 -0
  104. package/dist/esm/rental/accept.js +70 -31
  105. package/dist/esm/rental/accept.js.map +1 -1
  106. package/dist/esm/rental/cancel.js +37 -18
  107. package/dist/esm/rental/cancel.js.map +1 -1
  108. package/dist/esm/rental/close.js +38 -19
  109. package/dist/esm/rental/close.js.map +1 -1
  110. package/dist/esm/rental/reset.js +48 -33
  111. package/dist/esm/rental/reset.js.map +1 -1
  112. package/dist/esm/utils/config.js +261 -0
  113. package/dist/esm/utils/config.js.map +1 -0
  114. package/dist/esm/utils/constants.js +60 -7
  115. package/dist/esm/utils/constants.js.map +1 -1
  116. package/dist/esm/utils/index.js +1 -0
  117. package/dist/esm/utils/index.js.map +1 -1
  118. package/dist/esm/utils/profiles.js +39 -19
  119. package/dist/esm/utils/profiles.js.map +1 -1
  120. package/dist/types/codama/accounts/config.d.ts +52 -0
  121. package/dist/types/codama/accounts/config.d.ts.map +1 -0
  122. package/dist/types/codama/accounts/contractState.d.ts +2 -4
  123. package/dist/types/codama/accounts/contractState.d.ts.map +1 -1
  124. package/dist/types/codama/accounts/index.d.ts +1 -1
  125. package/dist/types/codama/accounts/index.d.ts.map +1 -1
  126. package/dist/types/codama/accounts/rentalState.d.ts +2 -0
  127. package/dist/types/codama/accounts/rentalState.d.ts.map +1 -1
  128. package/dist/types/codama/errors/srsly.d.ts +16 -2
  129. package/dist/types/codama/errors/srsly.d.ts.map +1 -1
  130. package/dist/types/codama/instructions/acceptRental.d.ts +41 -34
  131. package/dist/types/codama/instructions/acceptRental.d.ts.map +1 -1
  132. package/dist/types/codama/instructions/cancelRental.d.ts +14 -10
  133. package/dist/types/codama/instructions/cancelRental.d.ts.map +1 -1
  134. package/dist/types/codama/instructions/closeContract.d.ts +29 -21
  135. package/dist/types/codama/instructions/closeContract.d.ts.map +1 -1
  136. package/dist/types/codama/instructions/closeRental.d.ts +20 -12
  137. package/dist/types/codama/instructions/closeRental.d.ts.map +1 -1
  138. package/dist/types/codama/instructions/createContract.d.ts +27 -23
  139. package/dist/types/codama/instructions/createContract.d.ts.map +1 -1
  140. package/dist/types/codama/instructions/index.d.ts +2 -1
  141. package/dist/types/codama/instructions/index.d.ts.map +1 -1
  142. package/dist/types/codama/instructions/initializeConfig.d.ts +60 -0
  143. package/dist/types/codama/instructions/initializeConfig.d.ts.map +1 -0
  144. package/dist/types/codama/instructions/payRental.d.ts +28 -13
  145. package/dist/types/codama/instructions/payRental.d.ts.map +1 -1
  146. package/dist/types/codama/instructions/resetRental.d.ts +3 -3
  147. package/dist/types/codama/instructions/resetRental.d.ts.map +1 -1
  148. package/dist/types/codama/instructions/updateConfig.d.ts +93 -0
  149. package/dist/types/codama/instructions/updateConfig.d.ts.map +1 -0
  150. package/dist/types/codama/programs/srsly.d.ts +11 -8
  151. package/dist/types/codama/programs/srsly.d.ts.map +1 -1
  152. package/dist/types/contract/close.d.ts +20 -24
  153. package/dist/types/contract/close.d.ts.map +1 -1
  154. package/dist/types/contract/create.d.ts +34 -22
  155. package/dist/types/contract/create.d.ts.map +1 -1
  156. package/dist/types/index.d.ts +4 -1
  157. package/dist/types/index.d.ts.map +1 -1
  158. package/dist/types/rental/accept.d.ts +42 -20
  159. package/dist/types/rental/accept.d.ts.map +1 -1
  160. package/dist/types/rental/cancel.d.ts +16 -11
  161. package/dist/types/rental/cancel.d.ts.map +1 -1
  162. package/dist/types/rental/close.d.ts +16 -11
  163. package/dist/types/rental/close.d.ts.map +1 -1
  164. package/dist/types/rental/reset.d.ts +17 -20
  165. package/dist/types/rental/reset.d.ts.map +1 -1
  166. package/dist/types/utils/config.d.ts +167 -0
  167. package/dist/types/utils/config.d.ts.map +1 -0
  168. package/dist/types/utils/constants.d.ts +23 -7
  169. package/dist/types/utils/constants.d.ts.map +1 -1
  170. package/dist/types/utils/index.d.ts +1 -0
  171. package/dist/types/utils/index.d.ts.map +1 -1
  172. package/dist/types/utils/profiles.d.ts +14 -8
  173. package/dist/types/utils/profiles.d.ts.map +1 -1
  174. package/package.json +36 -14
  175. package/target/idl/srsly.json +3279 -0
  176. package/target/types/srsly.ts +1 -0
  177. package/dist/cjs/codama/accounts/fleet.js +0 -94
  178. package/dist/cjs/codama/accounts/fleet.js.map +0 -1
  179. package/dist/cjs/codama/instructions/normalizeAdmin.js +0 -165
  180. package/dist/cjs/codama/instructions/normalizeAdmin.js.map +0 -1
  181. package/dist/esm/codama/accounts/fleet.js +0 -64
  182. package/dist/esm/codama/accounts/fleet.js.map +0 -1
  183. package/dist/esm/codama/instructions/normalizeAdmin.js +0 -142
  184. package/dist/esm/codama/instructions/normalizeAdmin.js.map +0 -1
  185. package/dist/types/codama/accounts/fleet.d.ts +0 -38
  186. package/dist/types/codama/accounts/fleet.d.ts.map +0 -1
  187. package/dist/types/codama/instructions/normalizeAdmin.d.ts +0 -67
  188. package/dist/types/codama/instructions/normalizeAdmin.d.ts.map +0 -1
package/README.md CHANGED
@@ -4,194 +4,366 @@
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 building and sending Solana transactions to interact with the SRSLY (Space Rental from SLY) program - a decentralized rental system for Star Atlas fleets.
8
8
 
9
- ## Installation
9
+ ## What This SDK Does
10
10
 
11
- ### NPM
11
+ The SRSLY SDK is a complete toolkit that helps you create Solana transactions for fleet rentals. It provides:
12
12
 
13
- ```bash
14
- npm install @wuwei-labs/srsly
15
- ```
13
+ - ✅ Account derivation and validation
14
+ - Instruction data encoding
15
+ - ✅ Type-safe parameter handling
16
+ - ✅ Direct transaction sending via `.send()` (server/CLI)
17
+ - ✅ Unsigned transaction building via `.pack()` (browser/wallets)
18
+ - ✅ Wallet-agnostic design (works with any signing method)
19
+
20
+ **Current Status**: Full instruction building, transaction packing, and direct sending support.
16
21
 
17
- ### PNPM
22
+ ## Installation
18
23
 
19
24
  ```bash
25
+ npm install @wuwei-labs/srsly
26
+ # or
20
27
  pnpm add @wuwei-labs/srsly
28
+ # or
29
+ yarn add @wuwei-labs/srsly
21
30
  ```
22
31
 
23
- ### Yarn
32
+ ## Quick Start
24
33
 
25
- ```bash
26
- yarn add @wuwei-labs/srsly
34
+ ### Option 1: Pack and Send (Server/CLI)
35
+
36
+ ```typescript
37
+ import { createContract, setConfig } from '@wuwei-labs/srsly';
38
+ import { createKeyPairSignerFromBytes } from '@solana/kit';
39
+
40
+ // 1. Configure SDK with RPC endpoint
41
+ setConfig({
42
+ programs: 'atlasnet',
43
+ rpcUrl: 'https://api.atlasnet.solana.com'
44
+ });
45
+
46
+ // 2. Create signer from keypair
47
+ const signer = await createKeyPairSignerFromBytes(keypairBytes);
48
+
49
+ // 3. Pack transaction then send in one step
50
+ const signature = await createContract({
51
+ owner: signer,
52
+ fleet: fleetAddress,
53
+ ownerProfile: profileAddress,
54
+ rate: 1000000, // ATLAS tokens
55
+ durationMin: 86400, // 1 day
56
+ durationMax: 604800, // 1 week
57
+ paymentsFreq: 'daily'
58
+ })
59
+ .pack(signer.address) // Pack with fee payer
60
+ .send(signer); // Send with signer
61
+
62
+ console.log('Transaction signature:', signature);
63
+
64
+ // With custom transaction options
65
+ const signature = await createContract(params)
66
+ .set({
67
+ transactionOptions: {
68
+ commitment: 'finalized',
69
+ skipPreflight: true
70
+ }
71
+ })
72
+ .pack(signer.address)
73
+ .send(signer);
27
74
  ```
28
75
 
29
- ## Quick Start
76
+ ### Option 2: Pack for Wallet Adapters (Browser)
30
77
 
31
78
  ```typescript
32
- import { Connection, PublicKey } from '@solana/web3.js';
33
- import {
34
- createContract,
35
- acceptRental,
36
- getSrslyProgram,
37
- ContractState,
38
- RentalState
39
- } from '@wuwei-labs/srsly';
79
+ import { createContract, setConfig } from '@wuwei-labs/srsly';
40
80
 
41
- // Initialize connection
42
- const connection = new Connection('https://api.mainnet-beta.solana.com');
43
- const program = getSrslyProgram(connection);
44
-
45
- // Create a rental contract
46
- const contractInstruction = await createContract({
47
- rate: 1000000, // Rate in lamports
48
- durationMin: 86400, // 1 day in seconds
49
- durationMax: 604800, // 1 week in seconds
50
- paymentFreq: 'daily',
51
- ownerKeyIndex: 0
81
+ // 1. Configure SDK with RPC endpoint for blockhash
82
+ setConfig({
83
+ programs: 'atlasnet',
84
+ rpcUrl: 'https://api.atlasnet.solana.com'
52
85
  });
53
86
 
54
- // Accept a rental
55
- const rentalInstruction = await acceptRental({
56
- contractAddress: contractPublicKey,
57
- duration: 86400, // 1 day
58
- amount: 1000000 // Amount in lamports
87
+ // 2. Pack transaction for wallet adapter
88
+ const packedTx = await createContract({
89
+ owner: walletPublicKey,
90
+ fleet: fleetAddress,
91
+ ownerProfile: profileAddress,
92
+ rate: 1000000, // ATLAS tokens
93
+ durationMin: 86400, // 1 day
94
+ durationMax: 604800, // 1 week
95
+ paymentsFreq: 'daily'
96
+ }).pack(walletPublicKey); // Pack with fee payer address
97
+
98
+ // 3. Sign and send with wallet adapter
99
+ import { useWallet } from '@solana/wallet-adapter-react';
100
+ import { VersionedTransaction } from '@solana/web3.js';
101
+ const wallet = useWallet();
102
+ const versionedTx = VersionedTransaction.deserialize(packedTx.messageBytes);
103
+ const signedTx = await wallet.signTransaction(versionedTx);
104
+ // ... send with connection.sendRawTransaction(signedTx.serialize())
105
+
106
+ // Note: packedTx also has a .send() method, but it requires a TransactionSigner
107
+ // which wallet adapters don't provide directly
108
+ ```
109
+
110
+ ### Option 3: Manual Instruction Building
111
+
112
+ ```typescript
113
+ import { createContract } from '@wuwei-labs/srsly';
114
+
115
+ // Build instruction only (no RPC calls)
116
+ const instruction = await createContract({
117
+ owner: walletPublicKey,
118
+ fleet: fleetAddress,
119
+ ownerProfile: profileAddress,
120
+ rate: 1000000,
121
+ durationMin: 86400,
122
+ durationMax: 604800,
123
+ paymentsFreq: 'daily'
59
124
  });
125
+
126
+ // Handle transaction building and submission yourself
127
+ // ... use instruction with your preferred transaction building method
60
128
  ```
61
129
 
62
130
  ## Core Features
63
131
 
64
- ### Contract Management
132
+ ### Flexible Address Input
65
133
 
66
- Create and manage rental contracts for Star Atlas:
134
+ The SDK accepts both string and Address types for all address parameters, automatically converting them to the proper format:
135
+
136
+ ```typescript
137
+ import { createContract, address } from '@wuwei-labs/srsly';
138
+
139
+ // Mixed usage allowed
140
+ const createIx = await createContract({
141
+ owner: wallet,
142
+ fleet: "123abc...", // string
143
+ ownerProfile: address("456def..."), // Address<string>
144
+ rate: 5000000,
145
+ durationMin: 86400,
146
+ durationMax: 2592000,
147
+ paymentsFreq: 'daily'
148
+ });
149
+ ```
150
+
151
+ ### Contract Management
67
152
 
68
153
  ```typescript
69
154
  import { createContract, closeContract } from '@wuwei-labs/srsly';
70
155
 
71
- // Create a new rental contract
156
+ // Create rental contract instruction
72
157
  const createIx = await createContract({
73
- rate: 5000000, // 0.005 SOL per day
74
- durationMin: 86400, // Minimum 1 day
75
- durationMax: 2592000, // Maximum 30 days
76
- paymentFreq: 'daily',
77
- ownerKeyIndex: 0
158
+ owner: wallet,
159
+ fleet: fleetAddress,
160
+ ownerProfile: profileAddress,
161
+ rate: 5000000,
162
+ durationMin: 86400,
163
+ durationMax: 2592000,
164
+ paymentsFreq: 'daily'
78
165
  });
79
166
 
80
- // Close an existing contract
167
+ // Close contract instruction
81
168
  const closeIx = await closeContract({
82
- contractAddress: contractPublicKey
169
+ owner: wallet,
170
+ fleet: fleetAddress,
171
+ contract: contractAddress
83
172
  });
84
173
  ```
85
174
 
86
175
  ### Rental Operations
87
176
 
88
- Handle rental lifecycle operations:
89
-
90
177
  ```typescript
91
- import {
92
- acceptRental,
93
- cancelRental,
94
- closeRental,
95
- payRental,
96
- resetRental
97
- } from '@wuwei-labs/srsly';
178
+ import { acceptRental, cancelRental, closeRental } from '@wuwei-labs/srsly';
98
179
 
99
- // Accept a rental offer
180
+ // Accept rental offer instruction
100
181
  const acceptIx = await acceptRental({
101
- contractAddress: contractPublicKey,
102
- duration: 86400,
103
- amount: 1000000
182
+ borrower: borrowerWallet,
183
+ borrowerProfile: borrowerProfileAddress,
184
+ borrowerFaction: 'mud', // or 1, 2, 3
185
+ fleet: fleetAddress,
186
+ contract: contractAddress,
187
+ rate: 100, // ATLAS per day
188
+ duration: 86400 // 1 day in seconds
104
189
  });
105
190
 
106
- // Cancel an active rental
191
+ // Cancel active rental instruction
107
192
  const cancelIx = await cancelRental({
108
- rentalAddress: rentalPublicKey
193
+ borrower: borrowerWallet,
194
+ contract: contractAddress,
195
+ rentalState: rentalStateAddress
109
196
  });
110
197
 
111
- // Close a completed rental
198
+ // Close completed rental instruction
112
199
  const closeIx = await closeRental({
113
- rentalAddress: rentalPublicKey
200
+ borrower: borrowerWallet,
201
+ contract: contractAddress,
202
+ rentalState: rentalStateAddress,
203
+ ownerTokenAccount: ownerTokenAccountAddress
114
204
  });
205
+ ```
206
+
207
+ ## Network Configuration
208
+
209
+ The SDK supports multiple network configurations:
115
210
 
116
- // Reset rental state (admin only)
117
- const resetIx = await resetRental({
118
- rentalAddress: rentalPublicKey
211
+ ### Global Configuration
212
+
213
+ ```typescript
214
+ import { setConfig, getConfig, clearConfig } from '@wuwei-labs/srsly';
215
+
216
+ // Use mainnet programs (includes default RPC URL)
217
+ setConfig({ programs: 'mainnet' });
218
+
219
+ // Use atlasnet programs (default) - requires explicit RPC URL
220
+ setConfig({
221
+ programs: 'atlasnet',
222
+ rpcUrl: 'https://api.atlasnet.solana.com' // Required for atlasnet
119
223
  });
120
- ```
121
224
 
122
- ### Account State Management
225
+ // Use holosim test programs - requires explicit RPC URL
226
+ setConfig({
227
+ programs: 'holosim',
228
+ rpcUrl: 'https://api.atlasnet.solana.com' // Required for holosim
229
+ });
230
+
231
+ // Custom configuration
232
+ setConfig({
233
+ programs: 'mainnet',
234
+ srslyProgramAddress: 'custom-srsly-program...',
235
+ gameId: 'custom-game-id...',
236
+ atlasMint: 'custom-atlas-mint...'
237
+ // mainnet includes default RPC URL
238
+ });
123
239
 
124
- Fetch and decode account states:
240
+ // Check current config
241
+ console.log(getConfig());
242
+
243
+ // Reset to defaults
244
+ clearConfig();
245
+ ```
246
+
247
+ ### Per-Instruction Configuration
125
248
 
126
249
  ```typescript
127
- import { ContractState, RentalState } from '@wuwei-labs/srsly';
250
+ // Override global config for specific instructions
251
+ const ix = await createContract(params).set({ programs: 'mainnet' });
252
+
253
+ // Chain multiple configurations
254
+ const ix2 = await acceptRental(params)
255
+ .set({ programs: 'holosim' })
256
+ .set({ gameId: 'custom-game-id...' });
257
+ ```
128
258
 
129
- // Fetch contract state
130
- const contractAccount = await connection.getAccountInfo(contractPublicKey);
131
- const contractState = ContractState.fromAccountInfo(contractAccount)[0];
259
+ ## Payment System
132
260
 
133
- console.log('Contract rate:', contractState.rate.toString());
134
- console.log('Duration range:', contractState.durationMin.toString(), '-', contractState.durationMax.toString());
261
+ SRSLY implements an escrow-based payment system:
135
262
 
136
- // Fetch rental state
137
- const rentalAccount = await connection.getAccountInfo(rentalPublicKey);
138
- const rentalState = RentalState.fromAccountInfo(rentalAccount)[0];
263
+ 1. **Escrow**: Borrower deposits full rental amount upfront
264
+ 2. **Periodic Payments**: Automated payments based on frequency (daily/weekly/monthly)
265
+ 3. **Fees**: 10% platform fee, optional 10% referral sharing
266
+ 4. **Refunds**: Pro-rata refunds for early cancellation (24-hour minimum)
139
267
 
140
- console.log('Rental status:', rentalState.status);
141
- console.log('Start time:', new Date(rentalState.startTime.toNumber() * 1000));
268
+ ```typescript
269
+ // Payment calculation
270
+ const rate = 1000; // ATLAS per day
271
+ const duration = 86400; // 1 day in seconds
272
+ const totalAmount = rate * duration * ATLAS_TO_STARDUST; // in stardust
273
+ ```
274
+
275
+ ## Available Networks
276
+
277
+ ```typescript
278
+ // Program address sets
279
+ const networks = {
280
+ mainnet: {
281
+ sageProgram: 'SAGE2HAwep459SNq61LHvjxPk4pLPEJLoMETef7f7EE',
282
+ gameId: 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr',
283
+ atlasMint: 'ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx',
284
+ rpcUrl: 'https://api.mainnet-beta.solana.com' // Default RPC for mainnet
285
+ },
286
+ atlasnet: {
287
+ sageProgram: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
288
+ gameId: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
289
+ atlasMint: 'ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx'
290
+ // No default RPC - must provide rpcUrl required permissions
291
+ },
292
+ holosim: {
293
+ sageProgram: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
294
+ gameId: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
295
+ atlasMint: 'ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx'
296
+ // No default RPC - must provide rpcUrl required permissions
297
+ }
298
+ };
142
299
  ```
143
300
 
144
- ## Program Information
301
+ **Note**: Atlasnet and holosim networks require you to explicitly provide an `rpcUrl` in your configuration since they don't have default RPC endpoints.
145
302
 
146
- - **Program ID**: `SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT`
147
- - **Network**: Solana Mainnet or Atlasnet
148
- - **Built with**: Anchor Framework
303
+ ## Types and Constants
149
304
 
150
- ## Payment Frequencies
305
+ ```typescript
306
+ import type {
307
+ ContractState,
308
+ RentalState,
309
+ ConfigOptions,
310
+ PaymentFrequency
311
+ } from '@wuwei-labs/srsly';
312
+
313
+ import {
314
+ ATLAS_TO_STARDUST,
315
+ FACTION_MAPPING,
316
+ toAddress
317
+ } from '@wuwei-labs/srsly';
151
318
 
152
- The SDK supports multiple payment frequencies:
319
+ // Conversion rate: 1 ATLAS = 100,000,000 stardust
320
+ console.log(ATLAS_TO_STARDUST); // 100_000_000
153
321
 
154
- - `daily` - Daily payments
155
- - `weekly` - Weekly payments
156
- - `monthly` - Monthly payments
322
+ // Faction mappings
323
+ console.log(FACTION_MAPPING[1]); // 'mud'
324
+ console.log(FACTION_MAPPING[2]); // 'oni'
325
+ console.log(FACTION_MAPPING[3]); // 'ustur'
157
326
 
158
- ## Error Handling
327
+ // Address conversion utility
328
+ const addressObj = toAddress("123abc..."); // converts string to Address<string>
329
+ console.log(addressObj); // Address<string>
330
+ ```
159
331
 
160
- The SDK includes comprehensive error types:
332
+ ## IDL and Program Information
333
+
334
+ ```typescript
335
+ // Access program IDLs
336
+ import mainnetIdl from '@wuwei-labs/srsly/idl/mainnet';
337
+ import atlasnetIdl from '@wuwei-labs/srsly/idl/atlasnet';
338
+ ```
339
+
340
+ ## Error Handling
161
341
 
162
342
  ```typescript
163
343
  import { SrslyError } from '@wuwei-labs/srsly';
164
344
 
165
345
  try {
166
- const instruction = await createContract({...});
346
+ const instruction = await createContract(params);
347
+ // Add to transaction and send...
167
348
  } catch (error) {
168
349
  if (error instanceof SrslyError) {
169
- console.error('SRSLY Error:', error.message);
170
- console.error('Error code:', error.code);
350
+ console.error('SRSLY SDK Error:', error.message, error.code);
351
+ } else {
352
+ console.error('Other Error:', error);
171
353
  }
172
354
  }
173
355
  ```
174
356
 
175
- ## Types
357
+ ## Package Structure
176
358
 
177
- The SDK exports all necessary types for TypeScript development:
359
+ The SDK provides optimized builds for different environments:
178
360
 
179
- ```typescript
180
- import type {
181
- ContractState,
182
- RentalState,
183
- PaymentFrequency,
184
- ClockData,
185
- ThreadResponse
186
- } from '@wuwei-labs/srsly';
187
- ```
361
+ - **CommonJS**: `./dist/cjs/` (Node.js, webpack)
362
+ - **ESM**: `./dist/esm/` (Modern ES modules)
363
+ - **Types**: `./dist/types/` (TypeScript definitions)
364
+ - **Shared**: `./dist/shared/codama/` (Optimized codama exports)
188
365
 
189
- ## Documentation
366
+ ## Links
190
367
 
368
+ - **NPM Package**: [@wuwei-labs/srsly](https://www.npmjs.com/package/@wuwei-labs/srsly)
191
369
  - **TypeDoc Documentation**: [API Reference](https://wuwei-labs.github.io/srsly/)
192
-
193
- ## Related Projects
194
-
195
- - **Star Atlas**: The metaverse gaming ecosystem
196
- - **Solana**: The blockchain platform powering SRSLY
197
- - **Anchor**: The framework used to build the SRSLY program
@@ -0,0 +1,88 @@
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.CONFIG_DISCRIMINATOR = void 0;
11
+ exports.getConfigDiscriminatorBytes = getConfigDiscriminatorBytes;
12
+ exports.getConfigEncoder = getConfigEncoder;
13
+ exports.getConfigDecoder = getConfigDecoder;
14
+ exports.getConfigCodec = getConfigCodec;
15
+ exports.decodeConfig = decodeConfig;
16
+ exports.fetchConfig = fetchConfig;
17
+ exports.fetchMaybeConfig = fetchMaybeConfig;
18
+ exports.fetchAllConfig = fetchAllConfig;
19
+ exports.fetchAllMaybeConfig = fetchAllMaybeConfig;
20
+ const kit_1 = require("@solana/kit");
21
+ const types_1 = require("../types");
22
+ exports.CONFIG_DISCRIMINATOR = new Uint8Array([
23
+ 155, 12, 170, 224, 30, 250, 204, 130,
24
+ ]);
25
+ function getConfigDiscriminatorBytes() {
26
+ return (0, kit_1.fixEncoderSize)((0, kit_1.getBytesEncoder)(), 8).encode(exports.CONFIG_DISCRIMINATOR);
27
+ }
28
+ function getConfigEncoder() {
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
+ ['bump', (0, kit_1.getU8Encoder)()],
33
+ ['authority', (0, kit_1.getAddressEncoder)()],
34
+ ['stardustToAtlas', (0, kit_1.getU64Encoder)()],
35
+ ['serviceFeeBps', (0, kit_1.getU64Encoder)()],
36
+ ['referralFeeBps', (0, kit_1.getU64Encoder)()],
37
+ ['baseBps', (0, kit_1.getU64Encoder)()],
38
+ ['rentalDurationMinSeconds', (0, kit_1.getU64Encoder)()],
39
+ ['rentalDurationMaxSeconds', (0, kit_1.getU64Encoder)()],
40
+ ['feesAccount', (0, kit_1.getAddressEncoder)()],
41
+ ['atlasMint', (0, kit_1.getAddressEncoder)()],
42
+ ['defaultPaymentFrequency', (0, types_1.getPaymentFrequencyEncoder)()],
43
+ ['allowedFrequencies', (0, kit_1.getArrayEncoder)((0, types_1.getPaymentFrequencyEncoder)())],
44
+ ]), (value) => ({ ...value, discriminator: exports.CONFIG_DISCRIMINATOR }));
45
+ }
46
+ function getConfigDecoder() {
47
+ return (0, kit_1.getStructDecoder)([
48
+ ['discriminator', (0, kit_1.fixDecoderSize)((0, kit_1.getBytesDecoder)(), 8)],
49
+ ['version', (0, kit_1.getU8Decoder)()],
50
+ ['bump', (0, kit_1.getU8Decoder)()],
51
+ ['authority', (0, kit_1.getAddressDecoder)()],
52
+ ['stardustToAtlas', (0, kit_1.getU64Decoder)()],
53
+ ['serviceFeeBps', (0, kit_1.getU64Decoder)()],
54
+ ['referralFeeBps', (0, kit_1.getU64Decoder)()],
55
+ ['baseBps', (0, kit_1.getU64Decoder)()],
56
+ ['rentalDurationMinSeconds', (0, kit_1.getU64Decoder)()],
57
+ ['rentalDurationMaxSeconds', (0, kit_1.getU64Decoder)()],
58
+ ['feesAccount', (0, kit_1.getAddressDecoder)()],
59
+ ['atlasMint', (0, kit_1.getAddressDecoder)()],
60
+ ['defaultPaymentFrequency', (0, types_1.getPaymentFrequencyDecoder)()],
61
+ ['allowedFrequencies', (0, kit_1.getArrayDecoder)((0, types_1.getPaymentFrequencyDecoder)())],
62
+ ]);
63
+ }
64
+ function getConfigCodec() {
65
+ return (0, kit_1.combineCodec)(getConfigEncoder(), getConfigDecoder());
66
+ }
67
+ function decodeConfig(encodedAccount) {
68
+ return (0, kit_1.decodeAccount)(encodedAccount, getConfigDecoder());
69
+ }
70
+ async function fetchConfig(rpc, address, config) {
71
+ const maybeAccount = await fetchMaybeConfig(rpc, address, config);
72
+ (0, kit_1.assertAccountExists)(maybeAccount);
73
+ return maybeAccount;
74
+ }
75
+ async function fetchMaybeConfig(rpc, address, config) {
76
+ const maybeAccount = await (0, kit_1.fetchEncodedAccount)(rpc, address, config);
77
+ return decodeConfig(maybeAccount);
78
+ }
79
+ async function fetchAllConfig(rpc, addresses, config) {
80
+ const maybeAccounts = await fetchAllMaybeConfig(rpc, addresses, config);
81
+ (0, kit_1.assertAccountsExist)(maybeAccounts);
82
+ return maybeAccounts;
83
+ }
84
+ async function fetchAllMaybeConfig(rpc, addresses, config) {
85
+ const maybeAccounts = await (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config);
86
+ return maybeAccounts.map((maybeAccount) => decodeConfig(maybeAccount));
87
+ }
88
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/codama/accounts/config.ts"],"names":[],"mappings":"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"}
@@ -6,15 +6,6 @@
6
6
  *
7
7
  * @see https://github.com/codama-idl/codama
8
8
  */
9
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
10
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
11
- return new (P || (P = Promise))(function (resolve, reject) {
12
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
13
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
14
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
15
- step((generator = generator.apply(thisArg, _arguments || [])).next());
16
- });
17
- };
18
9
  Object.defineProperty(exports, "__esModule", { value: true });
19
10
  exports.CONTRACT_STATE_DISCRIMINATOR = void 0;
20
11
  exports.getContractStateDiscriminatorBytes = getContractStateDiscriminatorBytes;
@@ -26,9 +17,7 @@ exports.fetchContractState = fetchContractState;
26
17
  exports.fetchMaybeContractState = fetchMaybeContractState;
27
18
  exports.fetchAllContractState = fetchAllContractState;
28
19
  exports.fetchAllMaybeContractState = fetchAllMaybeContractState;
29
- exports.getContractStateSize = getContractStateSize;
30
20
  const kit_1 = require("@solana/kit");
31
- const types_1 = require("../types");
32
21
  exports.CONTRACT_STATE_DISCRIMINATOR = new Uint8Array([
33
22
  190, 138, 10, 223, 189, 116, 222, 115,
34
23
  ]);
@@ -43,7 +32,7 @@ function getContractStateEncoder() {
43
32
  ['rate', (0, kit_1.getU64Encoder)()],
44
33
  ['durationMin', (0, kit_1.getU64Encoder)()],
45
34
  ['durationMax', (0, kit_1.getU64Encoder)()],
46
- ['paymentsFeq', (0, types_1.getPaymentFrequencyEncoder)()],
35
+ ['paymentsFeq', (0, kit_1.addEncoderSizePrefix)((0, kit_1.getUtf8Encoder)(), (0, kit_1.getU32Encoder)())],
47
36
  ['fleet', (0, kit_1.getAddressEncoder)()],
48
37
  ['gameId', (0, kit_1.getAddressEncoder)()],
49
38
  ['currentRentalState', (0, kit_1.getAddressEncoder)()],
@@ -51,7 +40,7 @@ function getContractStateEncoder() {
51
40
  ['ownerTokenAccount', (0, kit_1.getAddressEncoder)()],
52
41
  ['ownerProfile', (0, kit_1.getAddressEncoder)()],
53
42
  ['bump', (0, kit_1.getU8Encoder)()],
54
- ]), (value) => (Object.assign(Object.assign({}, value), { discriminator: exports.CONTRACT_STATE_DISCRIMINATOR })));
43
+ ]), (value) => ({ ...value, discriminator: exports.CONTRACT_STATE_DISCRIMINATOR }));
55
44
  }
56
45
  function getContractStateDecoder() {
57
46
  return (0, kit_1.getStructDecoder)([
@@ -61,7 +50,7 @@ function getContractStateDecoder() {
61
50
  ['rate', (0, kit_1.getU64Decoder)()],
62
51
  ['durationMin', (0, kit_1.getU64Decoder)()],
63
52
  ['durationMax', (0, kit_1.getU64Decoder)()],
64
- ['paymentsFeq', (0, types_1.getPaymentFrequencyDecoder)()],
53
+ ['paymentsFeq', (0, kit_1.addDecoderSizePrefix)((0, kit_1.getUtf8Decoder)(), (0, kit_1.getU32Decoder)())],
65
54
  ['fleet', (0, kit_1.getAddressDecoder)()],
66
55
  ['gameId', (0, kit_1.getAddressDecoder)()],
67
56
  ['currentRentalState', (0, kit_1.getAddressDecoder)()],
@@ -77,33 +66,22 @@ function getContractStateCodec() {
77
66
  function decodeContractState(encodedAccount) {
78
67
  return (0, kit_1.decodeAccount)(encodedAccount, getContractStateDecoder());
79
68
  }
80
- function fetchContractState(rpc, address, config) {
81
- return __awaiter(this, void 0, void 0, function* () {
82
- const maybeAccount = yield fetchMaybeContractState(rpc, address, config);
83
- (0, kit_1.assertAccountExists)(maybeAccount);
84
- return maybeAccount;
85
- });
69
+ async function fetchContractState(rpc, address, config) {
70
+ const maybeAccount = await fetchMaybeContractState(rpc, address, config);
71
+ (0, kit_1.assertAccountExists)(maybeAccount);
72
+ return maybeAccount;
86
73
  }
87
- function fetchMaybeContractState(rpc, address, config) {
88
- return __awaiter(this, void 0, void 0, function* () {
89
- const maybeAccount = yield (0, kit_1.fetchEncodedAccount)(rpc, address, config);
90
- return decodeContractState(maybeAccount);
91
- });
74
+ async function fetchMaybeContractState(rpc, address, config) {
75
+ const maybeAccount = await (0, kit_1.fetchEncodedAccount)(rpc, address, config);
76
+ return decodeContractState(maybeAccount);
92
77
  }
93
- function fetchAllContractState(rpc, addresses, config) {
94
- return __awaiter(this, void 0, void 0, function* () {
95
- const maybeAccounts = yield fetchAllMaybeContractState(rpc, addresses, config);
96
- (0, kit_1.assertAccountsExist)(maybeAccounts);
97
- return maybeAccounts;
98
- });
78
+ async function fetchAllContractState(rpc, addresses, config) {
79
+ const maybeAccounts = await fetchAllMaybeContractState(rpc, addresses, config);
80
+ (0, kit_1.assertAccountsExist)(maybeAccounts);
81
+ return maybeAccounts;
99
82
  }
100
- function fetchAllMaybeContractState(rpc, addresses, config) {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- const maybeAccounts = yield (0, kit_1.fetchEncodedAccounts)(rpc, addresses, config);
103
- return maybeAccounts.map((maybeAccount) => decodeContractState(maybeAccount));
104
- });
105
- }
106
- function getContractStateSize() {
107
- return 228;
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));
108
86
  }
109
87
  //# sourceMappingURL=contractState.js.map