@wuwei-labs/srsly 2.0.0-beta.45 → 2.0.0-beta.48

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 (91) hide show
  1. package/dist/cjs/codama/instructions/cancelRental.js +13 -23
  2. package/dist/cjs/codama/instructions/cancelRental.js.map +1 -1
  3. package/dist/cjs/contract/close.js +106 -21
  4. package/dist/cjs/contract/close.js.map +1 -1
  5. package/dist/cjs/contract/create.js +59 -5
  6. package/dist/cjs/contract/create.js.map +1 -1
  7. package/dist/cjs/demos.js +65 -0
  8. package/dist/cjs/demos.js.map +1 -0
  9. package/dist/cjs/index.js +2 -1
  10. package/dist/cjs/index.js.map +1 -1
  11. package/dist/cjs/package.json +1 -1
  12. package/dist/cjs/rental/accept.js +31 -0
  13. package/dist/cjs/rental/accept.js.map +1 -1
  14. package/dist/cjs/rental/cancel.js +60 -9
  15. package/dist/cjs/rental/cancel.js.map +1 -1
  16. package/dist/cjs/rental/close.js +35 -23
  17. package/dist/cjs/rental/close.js.map +1 -1
  18. package/dist/cjs/rental/reset-contract-temp.js +4 -1
  19. package/dist/cjs/rental/reset-contract-temp.js.map +1 -1
  20. package/dist/cjs/rental/reset.js +131 -26
  21. package/dist/cjs/rental/reset.js.map +1 -1
  22. package/dist/cjs/utils/fetch-accounts.js +26 -0
  23. package/dist/cjs/utils/fetch-accounts.js.map +1 -1
  24. package/dist/cjs/utils/index.js +8 -0
  25. package/dist/cjs/utils/index.js.map +1 -1
  26. package/dist/cjs/utils/pda.js.map +1 -1
  27. package/dist/cjs/utils/sdk-helpers.js +122 -0
  28. package/dist/cjs/utils/sdk-helpers.js.map +1 -0
  29. package/dist/cjs/utils/signer.js +105 -10
  30. package/dist/cjs/utils/signer.js.map +1 -1
  31. package/dist/esm/codama/instructions/cancelRental.js +13 -23
  32. package/dist/esm/codama/instructions/cancelRental.js.map +1 -1
  33. package/dist/esm/contract/close.js +106 -22
  34. package/dist/esm/contract/close.js.map +1 -1
  35. package/dist/esm/contract/create.js +59 -6
  36. package/dist/esm/contract/create.js.map +1 -1
  37. package/dist/esm/demos.js +23 -0
  38. package/dist/esm/demos.js.map +1 -0
  39. package/dist/esm/index.js +1 -1
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/package.json +1 -1
  42. package/dist/esm/rental/accept.js +30 -0
  43. package/dist/esm/rental/accept.js.map +1 -1
  44. package/dist/esm/rental/cancel.js +60 -10
  45. package/dist/esm/rental/cancel.js.map +1 -1
  46. package/dist/esm/rental/close.js +37 -26
  47. package/dist/esm/rental/close.js.map +1 -1
  48. package/dist/esm/rental/reset-contract-temp.js +4 -1
  49. package/dist/esm/rental/reset-contract-temp.js.map +1 -1
  50. package/dist/esm/rental/reset.js +131 -27
  51. package/dist/esm/rental/reset.js.map +1 -1
  52. package/dist/esm/utils/fetch-accounts.js +26 -1
  53. package/dist/esm/utils/fetch-accounts.js.map +1 -1
  54. package/dist/esm/utils/index.js +1 -0
  55. package/dist/esm/utils/index.js.map +1 -1
  56. package/dist/esm/utils/pda.js.map +1 -1
  57. package/dist/esm/utils/sdk-helpers.js +113 -0
  58. package/dist/esm/utils/sdk-helpers.js.map +1 -0
  59. package/dist/esm/utils/signer.js +103 -11
  60. package/dist/esm/utils/signer.js.map +1 -1
  61. package/dist/types/codama/instructions/cancelRental.d.ts +2 -2
  62. package/dist/types/codama/instructions/cancelRental.d.ts.map +1 -1
  63. package/dist/types/contract/close.d.ts +17 -12
  64. package/dist/types/contract/close.d.ts.map +1 -1
  65. package/dist/types/contract/create.d.ts +8 -2
  66. package/dist/types/contract/create.d.ts.map +1 -1
  67. package/dist/types/demos.d.ts +58 -0
  68. package/dist/types/demos.d.ts.map +1 -0
  69. package/dist/types/index.d.ts +1 -1
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/rental/accept.d.ts +6 -0
  72. package/dist/types/rental/accept.d.ts.map +1 -1
  73. package/dist/types/rental/cancel.d.ts +9 -3
  74. package/dist/types/rental/cancel.d.ts.map +1 -1
  75. package/dist/types/rental/close.d.ts +11 -5
  76. package/dist/types/rental/close.d.ts.map +1 -1
  77. package/dist/types/rental/reset-contract-temp.d.ts +1 -1
  78. package/dist/types/rental/reset-contract-temp.d.ts.map +1 -1
  79. package/dist/types/rental/reset.d.ts +35 -24
  80. package/dist/types/rental/reset.d.ts.map +1 -1
  81. package/dist/types/utils/fetch-accounts.d.ts +48 -1
  82. package/dist/types/utils/fetch-accounts.d.ts.map +1 -1
  83. package/dist/types/utils/index.d.ts +1 -0
  84. package/dist/types/utils/index.d.ts.map +1 -1
  85. package/dist/types/utils/pda.d.ts.map +1 -1
  86. package/dist/types/utils/sdk-helpers.d.ts +49 -0
  87. package/dist/types/utils/sdk-helpers.d.ts.map +1 -0
  88. package/dist/types/utils/signer.d.ts +39 -16
  89. package/dist/types/utils/signer.d.ts.map +1 -1
  90. package/package.json +7 -1
  91. package/target/idl/srsly.json +1 -23
@@ -1,9 +1,11 @@
1
- import { getModule, createConfigSelector, resolveProgramAddresses } from '../utils/config';
1
+ import { getModule, createConfigSelector, resolveProgramAddresses, getConfig } from '../utils/config';
2
2
  import { toAddress } from '../utils/constants';
3
3
  import { createFluentInstruction, createSmartFluentConfigSelector } from '../utils/instruction-converter';
4
- import { fetchMaybeRentalState, fetchMaybeContractState, fetchMaybeConfig } from '../codama/accounts';
5
- import { createSolanaRpc, getProgramDerivedAddress, getBytesEncoder } from '@solana/kit';
4
+ import { fetchMaybeRentalState, fetchMaybeContractState } from '../codama/accounts';
5
+ import { fetchConfigState } from '../utils/fetch-accounts';
6
+ import { createSolanaRpc } from '@solana/kit';
6
7
  import { deriveRentalThread, deriveRentalAuthority } from '../utils/pda';
8
+ import { createTransactionSigner } from '../utils/signer';
7
9
  /**
8
10
  * Internal function to close a rental instruction with configuration options.
9
11
  *
@@ -18,22 +20,25 @@ import { deriveRentalThread, deriveRentalAuthority } from '../utils/pda';
18
20
  * @throws Error when instruction generation fails or required parameters are missing
19
21
  */
20
22
  async function _closeRental(params, config) {
21
- const { payer, rentalStateAddress, } = params;
23
+ const { payer, rentalState, } = params;
22
24
  // Get the resolved addresses from config (including network-specific addresses)
23
- const resolvedAddresses = await resolveProgramAddresses(config || {});
25
+ // Use global config as fallback, same pattern as acceptRental
26
+ const globalConfig = getConfig();
27
+ const effectiveConfig = { ...globalConfig, ...config };
28
+ const resolvedAddresses = await resolveProgramAddresses(effectiveConfig);
24
29
  // Create RPC from resolved addresses
25
30
  if (!resolvedAddresses.rpcUrl) {
26
31
  throw new Error('rpcUrl is required for close rental operation. Use setConfig({ library: "kit", rpcUrl: "https://..." })');
27
32
  }
28
33
  const rpc = createSolanaRpc(resolvedAddresses.rpcUrl);
29
34
  // Fetch rental state to get contract and borrower
30
- let rentalState;
35
+ let rentalStateAddress;
31
36
  try {
32
- if (!rentalStateAddress) {
33
- throw new Error(`rentalStateAddress is ${rentalStateAddress}, cannot proceed`);
37
+ if (!rentalState) {
38
+ throw new Error(`rentalState is ${rentalState}, cannot proceed`);
34
39
  }
35
- rentalState = await fetchMaybeRentalState(rpc, toAddress(rentalStateAddress));
36
- if (!rentalState.exists) {
40
+ rentalStateAddress = await fetchMaybeRentalState(rpc, toAddress(rentalState));
41
+ if (!rentalStateAddress.exists) {
37
42
  throw new Error(`Rental state not found: ${rentalStateAddress}`);
38
43
  }
39
44
  }
@@ -41,12 +46,12 @@ async function _closeRental(params, config) {
41
46
  throw new Error(`Failed to fetch rental state: ${error}`);
42
47
  }
43
48
  // Extract required addresses from rental state
44
- const contractAddress = rentalState.data.contract;
45
- const borrower = rentalState.data.borrower;
49
+ const contractAddress = rentalStateAddress.data.contract;
50
+ const borrower = rentalStateAddress.data.borrower;
46
51
  // Derive PDAs similar to accept.ts
47
52
  const rentalAuthorityPda = await deriveRentalAuthority(resolvedAddresses.srslyProgramAddress.toString());
48
53
  // 🔧 FIX: Derive rental thread PDA using Antegen program ID and the passed-in rental state address
49
- const rentalThreadPda = await deriveRentalThread(rentalAuthorityPda, toAddress(rentalStateAddress), // Use the passed-in rental state address
54
+ const rentalThreadPda = await deriveRentalThread(rentalAuthorityPda, toAddress(rentalState), // Use the passed-in rental state address
50
55
  resolvedAddresses.antegenProgramAddress);
51
56
  // Fetch contract state to get owner
52
57
  let contractState;
@@ -59,26 +64,22 @@ async function _closeRental(params, config) {
59
64
  catch (error) {
60
65
  throw new Error(`Failed to fetch contract state: ${error}`);
61
66
  }
62
- // Fetch config state to get the authority (we already have mint from resolved addresses)
63
- const [configPda] = await getProgramDerivedAddress({
64
- programAddress: resolvedAddresses.srslyProgramAddress,
65
- seeds: [
66
- getBytesEncoder().encode(new Uint8Array([99, 111, 110, 102, 105, 103])), // "config"
67
- ],
68
- });
67
+ // Fetch config state to get the authority using zero-argument overload
69
68
  let configState;
70
69
  try {
71
- configState = await fetchMaybeConfig(rpc, configPda);
70
+ configState = await fetchConfigState();
72
71
  if (!configState.exists) {
73
- throw new Error(`Config not found: ${configPda}`);
72
+ throw new Error('Config not found');
74
73
  }
75
74
  }
76
75
  catch (error) {
77
76
  throw new Error(`Failed to fetch config state: ${error}`);
78
77
  }
78
+ // Handle payer using smart signer handler for universal compatibility
79
+ const payerSigner = createTransactionSigner(payer);
79
80
  // Only provide required fields - let Codama auto-generate the rest except rental_thread
80
81
  const input = {
81
- payer: payer, // Pass the signer directly to Codama
82
+ payer: payerSigner, // Pass TransactionSigner for proper handling
82
83
  mint: resolvedAddresses.atlasMint, // Use resolved ATLAS mint from config
83
84
  authority: toAddress(configState.data.authority), // Config authority for fee collection
84
85
  borrower: toAddress(borrower),
@@ -138,19 +139,19 @@ async function _closeRental(params, config) {
138
139
  * // Close a completed rental
139
140
  * const instruction = await closeRental({
140
141
  * payer: wallet, // Transaction payer
141
- * rentalStateAddress: "RentalState..." // Rental state address
142
+ * rentalState: "RentalState..." // Rental state address
142
143
  * });
143
144
  *
144
145
  * // Configure for mainnet
145
146
  * const mainnetInstruction = await closeRental({
146
147
  * payer: wallet,
147
- * rentalStateAddress: "RentalState..."
148
+ * rentalState: "RentalState..."
148
149
  * }).set({ programs: 'mainnet' });
149
150
  *
150
151
  * // Convert to @solana/web3.js format
151
152
  * const web3jsInstruction = await closeRental({
152
153
  * payer: wallet,
153
- * rentalStateAddress: "RentalState..."
154
+ * rentalState: "RentalState..."
154
155
  * }).web3js();
155
156
  *
156
157
  * // Use with your preferred Solana library
@@ -184,4 +185,14 @@ export function getCloseRentalInstructionAsync(input, options) {
184
185
  return instructionsModule.getCloseRentalInstructionAsync(input, options);
185
186
  });
186
187
  }
188
+ // Demo export for documentation site
189
+ export const closeRentalDemo = {
190
+ tabName: "close",
191
+ description: "Close a completed rental",
192
+ imports: `import { closeRental } from '@wuwei-labs/srsly';`,
193
+ instruction: `const instruction = await closeRental({
194
+ payer: (signer || wallet).publicKey?.toBase58(),
195
+ rentalState: "RENTAL_STATE_ADDRESS"
196
+ });`
197
+ };
187
198
  //# sourceMappingURL=close.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/rental/close.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/rental/close.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { deriveGameAccounts } from '../utils';
4
4
  import { createFluentInstruction, createSmartFluentConfigSelector } from '../utils/instruction-converter';
5
5
  import { fetchMaybeContractState } from '../codama/accounts';
6
6
  import { createSolanaRpc } from '@solana/kit';
7
+ import { createTransactionSigner } from '../utils/signer';
7
8
  /**
8
9
  * Internal function to create a contract reset temp instruction with configuration options.
9
10
  *
@@ -39,9 +40,11 @@ async function _resetContractTemp(params, config) {
39
40
  // Manually derive ALL game accounts - they all use different program addresses
40
41
  const { starbase, starbasePlayer } = await deriveGameAccounts(toAddress(ownerProfile), faction, resolvedAddresses.gameId, 0, // starbaseSeqId
41
42
  config);
43
+ // Handle signer using smart signer handler for universal compatibility
44
+ const signerTransactionSigner = createTransactionSigner(signer);
42
45
  // Create input for the instruction
43
46
  const input = {
44
- signer: signer, // Pass signer directly to Codama
47
+ signer: signerTransactionSigner, // Pass TransactionSigner for proper handling
45
48
  contract: toAddress(contract), // Contract to reset
46
49
  fleet: toAddress(fleet), // Fleet from contract
47
50
  gameId: resolvedAddresses.gameId, // Game ID from config
@@ -1 +1 @@
1
- {"version":3,"file":"reset-contract-temp.js","sourceRoot":"","sources":["../../../src/rental/reset-contract-temp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reset-contract-temp.js","sourceRoot":"","sources":["../../../src/rental/reset-contract-temp.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
- import { getModule, createConfigSelector, resolveProgramAddresses } from '../utils/config';
1
+ import { getModule, createConfigSelector, resolveProgramAddresses, getConfig } from '../utils/config';
2
2
  import { toAddress } from '../utils/constants';
3
3
  import { deriveGameAccounts } from '../utils';
4
+ import { createFluentInstruction, createSmartFluentConfigSelector } from '../utils/instruction-converter';
5
+ import { fetchContractState } from '../utils/fetch-accounts';
6
+ import { createTransactionSigner } from '../utils/signer';
4
7
  /**
5
8
  * Internal function to reset a rental instruction with configuration options.
6
9
  *
@@ -15,28 +18,115 @@ import { deriveGameAccounts } from '../utils';
15
18
  * @throws Error when account derivation fails or required parameters are missing
16
19
  */
17
20
  async function _resetRental(params, config) {
21
+ console.log('🔄 Starting resetRental with params:', {
22
+ hasPayer: !!params.payer,
23
+ hasFleet: !!params.fleet,
24
+ contract: params.contract,
25
+ hasRentalState: !!params.rentalState,
26
+ faction: params.faction,
27
+ hasOwnerProfile: !!params.ownerProfile
28
+ });
18
29
  const { payer, fleet, contract, rentalState, faction, ownerProfile, } = params;
19
30
  // Get the resolved addresses from config (including network-specific addresses)
20
- const resolvedAddresses = await resolveProgramAddresses(config || {});
31
+ // Use global config as fallback, same pattern as acceptRental
32
+ const globalConfig = getConfig();
33
+ const effectiveConfig = { ...globalConfig, ...config };
34
+ const resolvedAddresses = await resolveProgramAddresses(effectiveConfig);
35
+ // Validate contract address before fetching
36
+ if (typeof contract === 'string' && (contract.includes('CONTRACT_ADDRESS') || contract.length < 32)) {
37
+ throw new Error(`Invalid contract address: "${contract}". Please provide a valid Solana address (32-44 characters).`);
38
+ }
39
+ // Fetch fleet, rentalState, and ownerProfile from contract if not provided
40
+ let fleetAddress;
41
+ let rentalStateAddress;
42
+ let ownerProfileAddress;
43
+ // Check if we need to fetch contract state
44
+ const needsContractFetch = !fleet || !rentalState || !ownerProfile;
45
+ if (needsContractFetch) {
46
+ console.log('🔍 Fetching contract state to retrieve missing fields...');
47
+ try {
48
+ const contractState = await fetchContractState(toAddress(contract));
49
+ // Use provided fleet or fetch from contract
50
+ if (fleet) {
51
+ if (typeof fleet === 'string' && (fleet.includes('FLEET_ADDRESS') || fleet.length < 32)) {
52
+ throw new Error(`Invalid fleet address: "${fleet}". Please provide a valid Solana address (32-44 characters).`);
53
+ }
54
+ fleetAddress = fleet;
55
+ }
56
+ else {
57
+ fleetAddress = contractState.data.fleet;
58
+ }
59
+ // Use provided rentalState or fetch from contract
60
+ if (rentalState) {
61
+ if (typeof rentalState === 'string' && (rentalState.includes('RENTAL_STATE_ADDRESS') || rentalState.length < 32)) {
62
+ throw new Error(`Invalid rental state address: "${rentalState}". Please provide a valid Solana address (32-44 characters).`);
63
+ }
64
+ rentalStateAddress = rentalState;
65
+ }
66
+ else {
67
+ rentalStateAddress = contractState.data.currentRentalState;
68
+ }
69
+ // Use provided ownerProfile or fetch from contract
70
+ if (ownerProfile) {
71
+ if (typeof ownerProfile === 'string' && (ownerProfile.includes('OWNER_PROFILE_ADDRESS') || ownerProfile.length < 32)) {
72
+ throw new Error(`Invalid owner profile address: "${ownerProfile}". Please provide a valid Solana address (32-44 characters).`);
73
+ }
74
+ ownerProfileAddress = ownerProfile;
75
+ }
76
+ else {
77
+ ownerProfileAddress = contractState.data.ownerProfile;
78
+ }
79
+ console.log('✅ Contract state fetched:', {
80
+ fleet: fleetAddress,
81
+ owner: contractState.data.owner,
82
+ currentRentalState: rentalStateAddress,
83
+ ownerProfile: ownerProfileAddress,
84
+ toClose: contractState.data.toClose
85
+ });
86
+ }
87
+ catch (error) {
88
+ console.error('❌ Failed to fetch contract state:', error);
89
+ throw new Error(`Failed to fetch contract state: ${error}`);
90
+ }
91
+ }
92
+ else {
93
+ console.log('🚢 Using all provided addresses');
94
+ // Validate all provided addresses
95
+ if (typeof fleet === 'string' && (fleet.includes('FLEET_ADDRESS') || fleet.length < 32)) {
96
+ throw new Error(`Invalid fleet address: "${fleet}". Please provide a valid Solana address (32-44 characters).`);
97
+ }
98
+ if (typeof rentalState === 'string' && (rentalState.includes('RENTAL_STATE_ADDRESS') || rentalState.length < 32)) {
99
+ throw new Error(`Invalid rental state address: "${rentalState}". Please provide a valid Solana address (32-44 characters).`);
100
+ }
101
+ if (typeof ownerProfile === 'string' && (ownerProfile.includes('OWNER_PROFILE_ADDRESS') || ownerProfile.length < 32)) {
102
+ throw new Error(`Invalid owner profile address: "${ownerProfile}". Please provide a valid Solana address (32-44 characters).`);
103
+ }
104
+ fleetAddress = fleet;
105
+ rentalStateAddress = rentalState;
106
+ ownerProfileAddress = ownerProfile;
107
+ }
21
108
  // Derive the three accounts we need
22
- const { starbase, starbasePlayer } = await deriveGameAccounts(toAddress(ownerProfile), faction, resolvedAddresses.gameId, 0, // starbaseSeqId
109
+ const { starbase, starbasePlayer } = await deriveGameAccounts(toAddress(ownerProfileAddress), faction, resolvedAddresses.gameId, 0, // starbaseSeqId
23
110
  config);
24
111
  // Get network-specific codama functions from centralized config
25
112
  const instructionsModule = getModule('instructions');
26
113
  const programsModule = getModule('programs');
27
114
  const { getResetRentalInstructionAsync } = instructionsModule;
28
115
  const { SRSLY_PROGRAM_ADDRESS } = programsModule;
29
- // Let codama derive the rest (rentalAuthority)
116
+ // Handle payer using smart signer handler for universal compatibility
117
+ const payerSigner = createTransactionSigner(payer);
118
+ // Let codama derive the rest (rentalAuthority)
30
119
  const input = {
31
- signer: payer, // Pass signer directly to Codama (maps to 'signer' in Rust)
32
- fleet: toAddress(fleet), // Ensure string
120
+ signer: payerSigner, // Pass TransactionSigner for proper handling
121
+ fleet: toAddress(fleetAddress), // Use resolved fleet address
33
122
  contract: toAddress(contract), // Ensure string
34
- rentalState: toAddress(rentalState), // Ensure string
123
+ rentalState: toAddress(rentalStateAddress), // Use resolved rental state address
35
124
  gameId: resolvedAddresses.gameId, // Already Address from resolveProgramAddresses
36
125
  starbase, // Already string from deriveGameAccounts
37
126
  starbasePlayer, // Already string from deriveGameAccounts
38
127
  };
39
- return getResetRentalInstructionAsync(input, { programAddress: SRSLY_PROGRAM_ADDRESS });
128
+ const rawInstruction = await getResetRentalInstructionAsync(input, { programAddress: SRSLY_PROGRAM_ADDRESS });
129
+ return createFluentInstruction(rawInstruction);
40
130
  }
41
131
  /**
42
132
  * Creates an instruction to reset a rental contract after cancellation with fluent configuration.
@@ -80,31 +170,35 @@ async function _resetRental(params, config) {
80
170
  * ```typescript
81
171
  * import { resetRental } from '@srsly/sdk';
82
172
  *
83
- * // Reset a canceled rental
173
+ * // Reset a canceled rental (all addresses auto-fetched from contract)
84
174
  * const instruction = await resetRental({
85
- * fleet: "FleetAddress123...", // Fleet to reset
175
+ * payer: wallet, // Transaction payer
86
176
  * contract: "ContractAddr...", // Contract to reactivate
87
- * rentalState: "RentalStateAddr...", // Canceled rental state
88
- * faction: 'mud', // Owner's faction
89
- * ownerProfile: "OwnerProfileAddr..." // Owner's Star Atlas profile
177
+ * faction: 'mud' // Owner's faction
178
+ * });
179
+ *
180
+ * // Optionally provide explicit addresses to avoid fetching
181
+ * const instruction = await resetRental({
182
+ * payer: wallet,
183
+ * fleet: "FleetAddress123...", // Optional: will be fetched if omitted
184
+ * contract: "ContractAddr...",
185
+ * rentalState: "RentalStateAddr...", // Optional: will be fetched if omitted
186
+ * faction: 'mud',
187
+ * ownerProfile: "OwnerProfileAddr..." // Optional: will be fetched if omitted
90
188
  * });
91
189
  *
92
190
  * // Configure for mainnet
93
191
  * const mainnetInstruction = await resetRental({
94
- * fleet: "FleetAddress123...",
192
+ * payer: wallet,
95
193
  * contract: "ContractAddr...",
96
- * rentalState: "RentalStateAddr...",
97
- * faction: 1, // Can use numbers: 1=mud, 2=oni, 3=ustur
98
- * ownerProfile: "OwnerProfileAddr..."
194
+ * faction: 1 // Can use numbers: 1=mud, 2=oni, 3=ustur
99
195
  * }).set({ programs: 'mainnet' });
100
196
  *
101
197
  * // Override specific game configuration
102
198
  * const customInstruction = await resetRental({
103
- * fleet: "FleetAddress123...",
199
+ * payer: wallet,
104
200
  * contract: "ContractAddr...",
105
- * rentalState: "RentalStateAddr...",
106
- * faction: 'mud',
107
- * ownerProfile: "OwnerProfileAddr..."
201
+ * faction: 'mud'
108
202
  * }).set({
109
203
  * programs: 'mainnet',
110
204
  * gameId: 'custom-game-id...'
@@ -112,11 +206,9 @@ async function _resetRental(params, config) {
112
206
  *
113
207
  * // Convert to @solana/web3.js format
114
208
  * const web3jsInstruction = await resetRental({
115
- * fleet: "FleetAddress123...",
209
+ * payer: wallet,
116
210
  * contract: "ContractAddr...",
117
- * rentalState: "RentalStateAddr...",
118
- * faction: 'mud',
119
- * ownerProfile: "OwnerProfileAddr..."
211
+ * faction: 'mud'
120
212
  * }).web3js();
121
213
  *
122
214
  * // Use with your preferred Solana library
@@ -125,11 +217,12 @@ async function _resetRental(params, config) {
125
217
  * ```
126
218
  *
127
219
  * @param params - The rental reset parameters including fleet, contract, rental state, and owner details
128
- * @returns A ConfigSelector that can be configured with .set() or awaited directly
220
+ * @returns A SmartFluentConfigSelector that can be configured with .set() or awaited directly
129
221
  * @throws Error when rental is not in canceled state or instruction generation fails
130
222
  */
131
223
  export function resetRental(params) {
132
- return createConfigSelector((config) => _resetRental(params, config));
224
+ const baseSelector = createConfigSelector((config) => _resetRental(params, config));
225
+ return createSmartFluentConfigSelector(baseSelector);
133
226
  }
134
227
  /**
135
228
  * Low-level function to create a rental reset instruction with raw input parameters.
@@ -149,4 +242,15 @@ export function getResetRentalInstructionAsync(input, options) {
149
242
  return instructionsModule.getResetRentalInstructionAsync(input, options);
150
243
  });
151
244
  }
245
+ // Demo export for documentation site
246
+ export const resetRentalDemo = {
247
+ tabName: "reset",
248
+ description: "Reset a canceled rental",
249
+ imports: `import { resetRental } from '@wuwei-labs/srsly';`,
250
+ instruction: `const instruction = await resetRental({
251
+ payer: (signer || wallet).publicKey?.toBase58(),
252
+ contract: "CONTRACT_ADDRESS",
253
+ faction: "oni" // or "mud", "ustur"
254
+ });`
255
+ };
152
256
  //# sourceMappingURL=reset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/rental/reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,uBAAuB,EAA2C,MAAM,iBAAiB,CAAC;AACpI,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAyD9C;;;;;;;;;;;;GAYG;AACH,KAAK,UAAU,YAAY,CACzB,MAAyB,EACzB,MAAsB;IAEtB,MAAM,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAO,EACP,YAAY,GACb,GAAG,MAAM,CAAC;IAEX,gFAAgF;IAChF,MAAM,iBAAiB,GAAG,MAAM,uBAAuB,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAEtE,oCAAoC;IACpC,MAAM,EACJ,QAAQ,EACR,cAAc,EACf,GAAG,MAAM,kBAAkB,CAC1B,SAAS,CAAC,YAAY,CAAC,EACvB,OAAO,EACP,iBAAiB,CAAC,MAAM,EACxB,CAAC,EAAE,gBAAgB;IACnB,MAAM,CACP,CAAC;IAEF,gEAAgE;IAChE,MAAM,kBAAkB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,EAAE,8BAA8B,EAAE,GAAG,kBAAkB,CAAC;IAC9D,MAAM,EAAE,qBAAqB,EAAE,GAAG,cAAc,CAAC;IAEjD,iDAAiD;IACjD,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,KAAK,EAAoB,4DAA4D;QAC7F,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAW,gBAAgB;QAClD,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAK,gBAAgB;QAClD,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,gBAAgB;QACrD,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,+CAA+C;QACjF,QAAQ,EAAyB,yCAAyC;QAC1E,cAAc,EAAmB,yCAAyC;KAC3E,CAAC;IAEF,OAAO,8BAA8B,CACnC,KAAK,EACL,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAC1C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFG;AACH,MAAM,UAAU,WAAW,CACzB,MAAyB;IAEzB,OAAO,oBAAoB,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,8BAA8B,CAAC,KAAU,EAAE,OAAa;IACtE,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,kBAAkB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QACrD,OAAO,kBAAkB,CAAC,8BAA8B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/rental/reset.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { createSolanaRpc } from '@solana/kit';
2
- import { fetchContractState as fetchContractStateCodama, fetchRentalState as fetchRentalStateCodama, fetchAllContractState, fetchAllRentalState } from '../codama/accounts';
2
+ import { fetchContractState as fetchContractStateCodama, fetchRentalState as fetchRentalStateCodama, fetchMaybeConfig as fetchConfigStateCodama, fetchAllContractState, fetchAllRentalState } from '../codama/accounts';
3
3
  import { getConfig, resolveProgramAddresses } from './config';
4
4
  import { toAddress } from './constants';
5
+ import { deriveConfigPda } from './sdk-helpers';
5
6
  // Implementation
6
7
  export async function fetchContractState(rpcUrlOrAddress, contractAddress) {
7
8
  // If only one argument, it's the contract address using default RPC
@@ -34,6 +35,30 @@ export async function fetchRentalState(rpcUrlOrAddress, rentalAddress) {
34
35
  const rpc = createSolanaRpc(rpcUrl);
35
36
  return fetchRentalStateCodama(rpc, address);
36
37
  }
38
+ // Implementation
39
+ export async function fetchConfigState(rpcUrlOrAddress, configAddress) {
40
+ // If no arguments, derive config PDA automatically from global config
41
+ if (rpcUrlOrAddress === undefined) {
42
+ const config = getConfig();
43
+ const resolved = await resolveProgramAddresses(config);
44
+ const [configPda] = await deriveConfigPda(resolved.srslyProgramAddress);
45
+ const rpc = createSolanaRpc(resolved.rpcUrl);
46
+ return fetchConfigStateCodama(rpc, configPda);
47
+ }
48
+ // If only one argument, it's the config address using default RPC
49
+ if (configAddress === undefined) {
50
+ const address = toAddress(rpcUrlOrAddress);
51
+ const config = getConfig();
52
+ const resolved = await resolveProgramAddresses(config);
53
+ const rpc = createSolanaRpc(resolved.rpcUrl);
54
+ return fetchConfigStateCodama(rpc, address);
55
+ }
56
+ // If two arguments, first is rpcUrl, second is address
57
+ const rpcUrl = rpcUrlOrAddress;
58
+ const address = toAddress(configAddress);
59
+ const rpc = createSolanaRpc(rpcUrl);
60
+ return fetchConfigStateCodama(rpc, address);
61
+ }
37
62
  /**
38
63
  * Fetches multiple contract states in a single RPC call
39
64
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-accounts.js","sourceRoot":"","sources":["../../../src/utils/fetch-accounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,kBAAkB,IAAI,wBAAwB,EAC9C,gBAAgB,IAAI,sBAAsB,EAC1C,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+CxC,iBAAiB;AACjB,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,eAA2C,EAC3C,eAA4C;IAE5C,oEAAoE;IACpE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,SAAS,CAAC,eAA6C,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,uDAAuD;IACvD,MAAM,MAAM,GAAG,eAAyB,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AA0CD,iBAAiB;AACjB,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,eAA2C,EAC3C,aAA0C;IAE1C,kEAAkE;IAClE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,eAA6C,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,uDAAuD;IACvD,MAAM,MAAM,GAAG,eAAyB,CAAC;IACzC,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAc,EACd,iBAAsC;IAEtC,wBAAwB;IACxB,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEpC,uCAAuC;IACvC,OAAO,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAc,EACd,eAAoC;IAEpC,wBAAwB;IACxB,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEpC,qCAAqC;IACrC,OAAO,mBAAmB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"fetch-accounts.js","sourceRoot":"","sources":["../../../src/utils/fetch-accounts.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export * from "./instruction-converter";
7
7
  export * from "./fetch-accounts";
8
8
  export * from "./pda";
9
9
  export * from "./signer";
10
+ export { createRpcFromConfig, deriveConfigPda, fetchAccountWithValidation, fetchMultipleAccounts, deriveAllRentalPDAs, ErrorMessages } from "./sdk-helpers";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACd,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pda.js","sourceRoot":"","sources":["../../../src/utils/pda.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pda.js","sourceRoot":"","sources":["../../../src/utils/pda.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { createSolanaRpc, address } from '@solana/kit';
2
+ import { PublicKey } from '@solana/web3.js';
3
+ import { getProgramDerivedAddress, getBytesEncoder } from '@solana/kit';
4
+ /**
5
+ * SDK Helper utilities to reduce code duplication across instruction implementations
6
+ */
7
+ /**
8
+ * Creates an RPC connection from resolved addresses, with validation
9
+ */
10
+ export function createRpcFromConfig(resolvedAddresses, operationName) {
11
+ if (!resolvedAddresses.rpcUrl) {
12
+ throw new Error(`rpcUrl is required for ${operationName} operation. Use setConfig({ rpcUrl: "https://..." })`);
13
+ }
14
+ return createSolanaRpc(resolvedAddresses.rpcUrl);
15
+ }
16
+ /**
17
+ * Derives the config PDA for the SRSLY program
18
+ */
19
+ export async function deriveConfigPda(programAddress) {
20
+ const programPubkey = typeof programAddress === 'string' ? programAddress : programAddress.toBase58();
21
+ const [pdaAddress, bump] = await getProgramDerivedAddress({
22
+ programAddress: address(programPubkey),
23
+ seeds: [getBytesEncoder().encode(new Uint8Array([99, 111, 110, 102, 105, 103]))], // "config" bytes
24
+ });
25
+ return [pdaAddress, bump];
26
+ }
27
+ /**
28
+ * Generic fetch function with validation and error handling
29
+ */
30
+ export async function fetchAccountWithValidation(fetchFn, rpc, accountAddress, accountType) {
31
+ const addressStr = typeof accountAddress === 'string' ? accountAddress : accountAddress.toBase58();
32
+ try {
33
+ const account = await fetchFn(rpc, address(addressStr));
34
+ if (!account.exists) {
35
+ throw new Error(`${accountType} not found at address: ${addressStr}`);
36
+ }
37
+ return account;
38
+ }
39
+ catch (error) {
40
+ if (error instanceof Error && error.message.includes('not found')) {
41
+ throw error;
42
+ }
43
+ throw new Error(`Failed to fetch ${accountType}: ${error}`);
44
+ }
45
+ }
46
+ /**
47
+ * Batch fetch multiple accounts with proper error handling
48
+ */
49
+ export async function fetchMultipleAccounts(fetchOperations, rpc) {
50
+ const results = await Promise.all(fetchOperations.map(async ({ fetchFn, address: addr, accountType }) => {
51
+ const account = await fetchAccountWithValidation(fetchFn, rpc, addr, accountType);
52
+ return account;
53
+ }));
54
+ const accountMap = {};
55
+ fetchOperations.forEach((op, index) => {
56
+ accountMap[op.key] = results[index];
57
+ });
58
+ return accountMap;
59
+ }
60
+ /**
61
+ * Convert public key to address format used by the SDK
62
+ */
63
+ export function toAddressString(key) {
64
+ return typeof key === 'string' ? key : key.toBase58();
65
+ }
66
+ /**
67
+ * Derive all rental-related PDAs in one call
68
+ */
69
+ export async function deriveAllRentalPDAs(contract, borrower, programAddress, antegenProgramAddress) {
70
+ const contractAddr = toAddressString(contract);
71
+ const borrowerAddr = toAddressString(borrower);
72
+ const programAddr = toAddressString(programAddress);
73
+ const antegenAddr = toAddressString(antegenProgramAddress);
74
+ // These would use your existing PDA derivation functions
75
+ const [rentalState, rentalStateBump] = await getProgramDerivedAddress({
76
+ programAddress: address(programAddr),
77
+ seeds: [
78
+ getBytesEncoder().encode(new Uint8Array([114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101])), // "rental_state"
79
+ getBytesEncoder().encode(new PublicKey(contractAddr).toBytes()),
80
+ getBytesEncoder().encode(new PublicKey(borrowerAddr).toBytes()),
81
+ ],
82
+ });
83
+ const [rentalAuthority, rentalAuthorityBump] = await getProgramDerivedAddress({
84
+ programAddress: address(programAddr),
85
+ seeds: [
86
+ getBytesEncoder().encode(new Uint8Array([114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121])), // "rental_authority"
87
+ getBytesEncoder().encode(new PublicKey(contractAddr).toBytes()),
88
+ getBytesEncoder().encode(new PublicKey(borrowerAddr).toBytes()),
89
+ ],
90
+ });
91
+ const [rentalThread, rentalThreadBump] = await getProgramDerivedAddress({
92
+ programAddress: address(antegenAddr),
93
+ seeds: [
94
+ getBytesEncoder().encode(new Uint8Array([116, 104, 114, 101, 97, 100])), // "thread"
95
+ getBytesEncoder().encode(new PublicKey(rentalAuthority).toBytes()),
96
+ getBytesEncoder().encode(new PublicKey(rentalState).toBytes()),
97
+ ],
98
+ });
99
+ return {
100
+ rentalState: [rentalState, rentalStateBump],
101
+ rentalAuthority: [rentalAuthority, rentalAuthorityBump],
102
+ rentalThread: [rentalThread, rentalThreadBump],
103
+ };
104
+ }
105
+ /**
106
+ * Standard error messages for common scenarios
107
+ */
108
+ export const ErrorMessages = {
109
+ rpcRequired: (operation) => `rpcUrl is required for ${operation} operation. Use setConfig({ library: "kit", rpcUrl: "https://..." })`,
110
+ accountNotFound: (type, address) => `${type} not found at address: ${address}`,
111
+ fetchFailed: (type, error) => `Failed to fetch ${type}: ${error}`,
112
+ };
113
+ //# sourceMappingURL=sdk-helpers.js.map