@galaxy-kj/core-stellar-sdk 2.0.0

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 (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +576 -0
  3. package/dist/claimable-balances/claimable-balance-manager.d.ts +99 -0
  4. package/dist/claimable-balances/claimable-balance-manager.d.ts.map +1 -0
  5. package/dist/claimable-balances/claimable-balance-manager.js +352 -0
  6. package/dist/claimable-balances/claimable-balance-manager.js.map +1 -0
  7. package/dist/claimable-balances/helpers.d.ts +66 -0
  8. package/dist/claimable-balances/helpers.d.ts.map +1 -0
  9. package/dist/claimable-balances/helpers.js +179 -0
  10. package/dist/claimable-balances/helpers.js.map +1 -0
  11. package/dist/claimable-balances/index.d.ts +12 -0
  12. package/dist/claimable-balances/index.d.ts.map +1 -0
  13. package/dist/claimable-balances/index.js +14 -0
  14. package/dist/claimable-balances/index.js.map +1 -0
  15. package/dist/claimable-balances/predicate-builder.d.ts +66 -0
  16. package/dist/claimable-balances/predicate-builder.d.ts.map +1 -0
  17. package/dist/claimable-balances/predicate-builder.js +169 -0
  18. package/dist/claimable-balances/predicate-builder.js.map +1 -0
  19. package/dist/claimable-balances/types.d.ts +123 -0
  20. package/dist/claimable-balances/types.d.ts.map +1 -0
  21. package/dist/claimable-balances/types.js +9 -0
  22. package/dist/claimable-balances/types.js.map +1 -0
  23. package/dist/hooks/use-stellar.d.ts +48 -0
  24. package/dist/hooks/use-stellar.d.ts.map +1 -0
  25. package/dist/hooks/use-stellar.js +510 -0
  26. package/dist/hooks/use-stellar.js.map +1 -0
  27. package/dist/index.d.ts +19 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +28 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/liquidity-pools/calculations.d.ts +113 -0
  32. package/dist/liquidity-pools/calculations.d.ts.map +1 -0
  33. package/dist/liquidity-pools/calculations.js +291 -0
  34. package/dist/liquidity-pools/calculations.js.map +1 -0
  35. package/dist/liquidity-pools/helpers.d.ts +102 -0
  36. package/dist/liquidity-pools/helpers.d.ts.map +1 -0
  37. package/dist/liquidity-pools/helpers.js +219 -0
  38. package/dist/liquidity-pools/helpers.js.map +1 -0
  39. package/dist/liquidity-pools/index.d.ts +13 -0
  40. package/dist/liquidity-pools/index.d.ts.map +1 -0
  41. package/dist/liquidity-pools/index.js +18 -0
  42. package/dist/liquidity-pools/index.js.map +1 -0
  43. package/dist/liquidity-pools/liquidity-pool-manager.d.ts +106 -0
  44. package/dist/liquidity-pools/liquidity-pool-manager.d.ts.map +1 -0
  45. package/dist/liquidity-pools/liquidity-pool-manager.js +387 -0
  46. package/dist/liquidity-pools/liquidity-pool-manager.js.map +1 -0
  47. package/dist/liquidity-pools/types.d.ts +135 -0
  48. package/dist/liquidity-pools/types.d.ts.map +1 -0
  49. package/dist/liquidity-pools/types.js +6 -0
  50. package/dist/liquidity-pools/types.js.map +1 -0
  51. package/dist/liquidity-pools/validation.d.ts +75 -0
  52. package/dist/liquidity-pools/validation.d.ts.map +1 -0
  53. package/dist/liquidity-pools/validation.js +218 -0
  54. package/dist/liquidity-pools/validation.js.map +1 -0
  55. package/dist/services/stellar-service.d.ts +231 -0
  56. package/dist/services/stellar-service.d.ts.map +1 -0
  57. package/dist/services/stellar-service.js +674 -0
  58. package/dist/services/stellar-service.js.map +1 -0
  59. package/dist/soroban/helpers/contract-factory.d.ts +45 -0
  60. package/dist/soroban/helpers/contract-factory.d.ts.map +1 -0
  61. package/dist/soroban/helpers/contract-factory.js +84 -0
  62. package/dist/soroban/helpers/contract-factory.js.map +1 -0
  63. package/dist/soroban/helpers/token-contract-wrapper.d.ts +104 -0
  64. package/dist/soroban/helpers/token-contract-wrapper.d.ts.map +1 -0
  65. package/dist/soroban/helpers/token-contract-wrapper.js +286 -0
  66. package/dist/soroban/helpers/token-contract-wrapper.js.map +1 -0
  67. package/dist/soroban/index.d.ts +19 -0
  68. package/dist/soroban/index.d.ts.map +1 -0
  69. package/dist/soroban/index.js +19 -0
  70. package/dist/soroban/index.js.map +1 -0
  71. package/dist/soroban/soroban-contract-manager.d.ts +71 -0
  72. package/dist/soroban/soroban-contract-manager.d.ts.map +1 -0
  73. package/dist/soroban/soroban-contract-manager.js +376 -0
  74. package/dist/soroban/soroban-contract-manager.js.map +1 -0
  75. package/dist/soroban/types/contract-types.d.ts +156 -0
  76. package/dist/soroban/types/contract-types.d.ts.map +1 -0
  77. package/dist/soroban/types/contract-types.js +3 -0
  78. package/dist/soroban/types/contract-types.js.map +1 -0
  79. package/dist/soroban/utils/abi-parser.d.ts +90 -0
  80. package/dist/soroban/utils/abi-parser.d.ts.map +1 -0
  81. package/dist/soroban/utils/abi-parser.js +308 -0
  82. package/dist/soroban/utils/abi-parser.js.map +1 -0
  83. package/dist/soroban/utils/error-parser.d.ts +70 -0
  84. package/dist/soroban/utils/error-parser.d.ts.map +1 -0
  85. package/dist/soroban/utils/error-parser.js +302 -0
  86. package/dist/soroban/utils/error-parser.js.map +1 -0
  87. package/dist/soroban/utils/event-decoder.d.ts +91 -0
  88. package/dist/soroban/utils/event-decoder.d.ts.map +1 -0
  89. package/dist/soroban/utils/event-decoder.js +307 -0
  90. package/dist/soroban/utils/event-decoder.js.map +1 -0
  91. package/dist/soroban/utils/event-monitor.d.ts +93 -0
  92. package/dist/soroban/utils/event-monitor.d.ts.map +1 -0
  93. package/dist/soroban/utils/event-monitor.js +282 -0
  94. package/dist/soroban/utils/event-monitor.js.map +1 -0
  95. package/dist/soroban/utils/function-signature-builder.d.ts +98 -0
  96. package/dist/soroban/utils/function-signature-builder.d.ts.map +1 -0
  97. package/dist/soroban/utils/function-signature-builder.js +272 -0
  98. package/dist/soroban/utils/function-signature-builder.js.map +1 -0
  99. package/dist/soroban/utils/scval-converter.d.ts +48 -0
  100. package/dist/soroban/utils/scval-converter.d.ts.map +1 -0
  101. package/dist/soroban/utils/scval-converter.js +320 -0
  102. package/dist/soroban/utils/scval-converter.js.map +1 -0
  103. package/dist/sponsored-reserves/builders/sponsored-account-builder.d.ts +58 -0
  104. package/dist/sponsored-reserves/builders/sponsored-account-builder.d.ts.map +1 -0
  105. package/dist/sponsored-reserves/builders/sponsored-account-builder.js +159 -0
  106. package/dist/sponsored-reserves/builders/sponsored-account-builder.js.map +1 -0
  107. package/dist/sponsored-reserves/builders/sponsored-claimable-balance-builder.d.ts +104 -0
  108. package/dist/sponsored-reserves/builders/sponsored-claimable-balance-builder.d.ts.map +1 -0
  109. package/dist/sponsored-reserves/builders/sponsored-claimable-balance-builder.js +258 -0
  110. package/dist/sponsored-reserves/builders/sponsored-claimable-balance-builder.js.map +1 -0
  111. package/dist/sponsored-reserves/builders/sponsored-data-entry-builder.d.ts +96 -0
  112. package/dist/sponsored-reserves/builders/sponsored-data-entry-builder.d.ts.map +1 -0
  113. package/dist/sponsored-reserves/builders/sponsored-data-entry-builder.js +320 -0
  114. package/dist/sponsored-reserves/builders/sponsored-data-entry-builder.js.map +1 -0
  115. package/dist/sponsored-reserves/builders/sponsored-signer-builder.d.ts +100 -0
  116. package/dist/sponsored-reserves/builders/sponsored-signer-builder.d.ts.map +1 -0
  117. package/dist/sponsored-reserves/builders/sponsored-signer-builder.js +271 -0
  118. package/dist/sponsored-reserves/builders/sponsored-signer-builder.js.map +1 -0
  119. package/dist/sponsored-reserves/builders/sponsored-trustline-builder.d.ts +87 -0
  120. package/dist/sponsored-reserves/builders/sponsored-trustline-builder.d.ts.map +1 -0
  121. package/dist/sponsored-reserves/builders/sponsored-trustline-builder.js +281 -0
  122. package/dist/sponsored-reserves/builders/sponsored-trustline-builder.js.map +1 -0
  123. package/dist/sponsored-reserves/index.d.ts +20 -0
  124. package/dist/sponsored-reserves/index.d.ts.map +1 -0
  125. package/dist/sponsored-reserves/index.js +24 -0
  126. package/dist/sponsored-reserves/index.js.map +1 -0
  127. package/dist/sponsored-reserves/services/sponsored-reserves-manager.d.ts +144 -0
  128. package/dist/sponsored-reserves/services/sponsored-reserves-manager.d.ts.map +1 -0
  129. package/dist/sponsored-reserves/services/sponsored-reserves-manager.js +536 -0
  130. package/dist/sponsored-reserves/services/sponsored-reserves-manager.js.map +1 -0
  131. package/dist/sponsored-reserves/templates/claimable-balance-template.d.ts +96 -0
  132. package/dist/sponsored-reserves/templates/claimable-balance-template.d.ts.map +1 -0
  133. package/dist/sponsored-reserves/templates/claimable-balance-template.js +306 -0
  134. package/dist/sponsored-reserves/templates/claimable-balance-template.js.map +1 -0
  135. package/dist/sponsored-reserves/templates/multi-operation-template.d.ts +99 -0
  136. package/dist/sponsored-reserves/templates/multi-operation-template.d.ts.map +1 -0
  137. package/dist/sponsored-reserves/templates/multi-operation-template.js +313 -0
  138. package/dist/sponsored-reserves/templates/multi-operation-template.js.map +1 -0
  139. package/dist/sponsored-reserves/templates/user-onboarding-template.d.ts +79 -0
  140. package/dist/sponsored-reserves/templates/user-onboarding-template.d.ts.map +1 -0
  141. package/dist/sponsored-reserves/templates/user-onboarding-template.js +262 -0
  142. package/dist/sponsored-reserves/templates/user-onboarding-template.js.map +1 -0
  143. package/dist/sponsored-reserves/types/sponsored-reserves-types.d.ts +364 -0
  144. package/dist/sponsored-reserves/types/sponsored-reserves-types.d.ts.map +1 -0
  145. package/dist/sponsored-reserves/types/sponsored-reserves-types.js +9 -0
  146. package/dist/sponsored-reserves/types/sponsored-reserves-types.js.map +1 -0
  147. package/dist/sponsored-reserves/utils/cost-calculator.d.ts +98 -0
  148. package/dist/sponsored-reserves/utils/cost-calculator.d.ts.map +1 -0
  149. package/dist/sponsored-reserves/utils/cost-calculator.js +238 -0
  150. package/dist/sponsored-reserves/utils/cost-calculator.js.map +1 -0
  151. package/dist/sponsored-reserves/utils/sponsorship-validation.d.ts +112 -0
  152. package/dist/sponsored-reserves/utils/sponsorship-validation.d.ts.map +1 -0
  153. package/dist/sponsored-reserves/utils/sponsorship-validation.js +394 -0
  154. package/dist/sponsored-reserves/utils/sponsorship-validation.js.map +1 -0
  155. package/dist/types/stellar-sdk-compat.d.ts +25 -0
  156. package/dist/types/stellar-sdk-compat.d.ts.map +1 -0
  157. package/dist/types/stellar-sdk-compat.js +44 -0
  158. package/dist/types/stellar-sdk-compat.js.map +1 -0
  159. package/dist/types/stellar-types.d.ts +160 -0
  160. package/dist/types/stellar-types.d.ts.map +1 -0
  161. package/dist/types/stellar-types.js +9 -0
  162. package/dist/types/stellar-types.js.map +1 -0
  163. package/dist/utils/encryption.utils.d.ts +9 -0
  164. package/dist/utils/encryption.utils.d.ts.map +1 -0
  165. package/dist/utils/encryption.utils.js +44 -0
  166. package/dist/utils/encryption.utils.js.map +1 -0
  167. package/dist/utils/network-utils.d.ts +138 -0
  168. package/dist/utils/network-utils.d.ts.map +1 -0
  169. package/dist/utils/network-utils.js +240 -0
  170. package/dist/utils/network-utils.js.map +1 -0
  171. package/dist/utils/stellar-utils.d.ts +114 -0
  172. package/dist/utils/stellar-utils.d.ts.map +1 -0
  173. package/dist/utils/stellar-utils.js +186 -0
  174. package/dist/utils/stellar-utils.js.map +1 -0
  175. package/dist/utils/supabase-client.d.ts +2 -0
  176. package/dist/utils/supabase-client.d.ts.map +1 -0
  177. package/dist/utils/supabase-client.js +9 -0
  178. package/dist/utils/supabase-client.js.map +1 -0
  179. package/package.json +60 -0
@@ -0,0 +1,352 @@
1
+ /**
2
+ * @fileoverview Claimable Balance Manager
3
+ * @description Manages creation, claiming, and querying of claimable balances
4
+ * @author Galaxy DevKit Team
5
+ * @version 1.0.0
6
+ * @since 2024-12-01
7
+ */
8
+ import { Keypair, Asset, Operation, TransactionBuilder, Memo, BASE_FEE, } from '@stellar/stellar-sdk';
9
+ import { toStellarPredicate, validatePredicate, } from './predicate-builder';
10
+ import { decryptPrivateKey } from '../utils/encryption.utils';
11
+ import { NetworkUtils } from '../utils/network-utils';
12
+ /**
13
+ * Claimable Balance Manager class
14
+ * @class ClaimableBalanceManager
15
+ * @description Handles all claimable balance operations
16
+ */
17
+ export class ClaimableBalanceManager {
18
+ constructor(server, networkPassphrase) {
19
+ this.server = server;
20
+ this.networkPassphrase = networkPassphrase;
21
+ this.networkUtils = new NetworkUtils();
22
+ }
23
+ /**
24
+ * Creates a claimable balance
25
+ * @param wallet - Source wallet
26
+ * @param params - Create claimable balance parameters
27
+ * @param password - Wallet password
28
+ * @returns Promise<ClaimableBalanceResult>
29
+ */
30
+ async createClaimableBalance(wallet, params, password) {
31
+ try {
32
+ // Validate parameters
33
+ this.validateCreateParams(params);
34
+ // Decrypt private key
35
+ const decryptedPrivateKey = decryptPrivateKey(wallet.privateKey, password);
36
+ const keypair = Keypair.fromSecret(decryptedPrivateKey);
37
+ // Load source account
38
+ const sourceAccount = await this.server.loadAccount(wallet.publicKey);
39
+ // Build claimants with Stellar predicates
40
+ const stellarClaimants = params.claimants.map((claimant) => ({
41
+ destination: claimant.destination,
42
+ predicate: toStellarPredicate(claimant.predicate),
43
+ }));
44
+ // Estimate fee
45
+ const fee = params.fee || (await this.estimateFee());
46
+ // Build transaction
47
+ const transactionBuilder = new TransactionBuilder(sourceAccount, {
48
+ fee: fee.toString(),
49
+ networkPassphrase: this.networkPassphrase,
50
+ });
51
+ // Add create claimable balance operation
52
+ transactionBuilder.addOperation(Operation.createClaimableBalance({
53
+ asset: params.asset,
54
+ amount: params.amount,
55
+ claimants: stellarClaimants,
56
+ }));
57
+ // Add memo if provided
58
+ if (params.memo) {
59
+ transactionBuilder.addMemo(Memo.text(params.memo));
60
+ }
61
+ transactionBuilder.setTimeout(180);
62
+ // Sign and submit transaction
63
+ const transaction = transactionBuilder.build();
64
+ transaction.sign(keypair);
65
+ const result = await this.server.submitTransaction(transaction);
66
+ // Extract balance ID from transaction result
67
+ const balanceId = await this.extractBalanceId(result);
68
+ return {
69
+ balanceId,
70
+ hash: result.hash,
71
+ status: result.successful ? 'success' : 'failed',
72
+ ledger: result.ledger.toString(),
73
+ createdAt: new Date(),
74
+ };
75
+ }
76
+ catch (error) {
77
+ throw new Error(`Failed to create claimable balance: ${error instanceof Error ? error.message : 'Unknown error'}`);
78
+ }
79
+ }
80
+ /**
81
+ * Claims a claimable balance
82
+ * @param wallet - Claimant wallet
83
+ * @param params - Claim parameters
84
+ * @param password - Wallet password
85
+ * @returns Promise<ClaimableBalanceResult>
86
+ */
87
+ async claimBalance(wallet, params, password) {
88
+ try {
89
+ if (!this.isValidBalanceId(params.balanceId)) {
90
+ throw new Error('Invalid balance ID format');
91
+ }
92
+ // Decrypt private key
93
+ const decryptedPrivateKey = decryptPrivateKey(wallet.privateKey, password);
94
+ const keypair = Keypair.fromSecret(decryptedPrivateKey);
95
+ // Load account
96
+ const account = await this.server.loadAccount(wallet.publicKey);
97
+ // Estimate fee
98
+ const fee = params.fee || (await this.estimateFee());
99
+ // Build transaction
100
+ const transactionBuilder = new TransactionBuilder(account, {
101
+ fee: fee.toString(),
102
+ networkPassphrase: this.networkPassphrase,
103
+ });
104
+ // Add claim operation
105
+ transactionBuilder.addOperation(Operation.claimClaimableBalance({
106
+ balanceId: params.balanceId,
107
+ }));
108
+ // Add memo if provided
109
+ if (params.memo) {
110
+ transactionBuilder.addMemo(Memo.text(params.memo));
111
+ }
112
+ transactionBuilder.setTimeout(180);
113
+ // Sign and submit transaction
114
+ const transaction = transactionBuilder.build();
115
+ transaction.sign(keypair);
116
+ const result = await this.server.submitTransaction(transaction);
117
+ return {
118
+ balanceId: params.balanceId,
119
+ hash: result.hash,
120
+ status: result.successful ? 'success' : 'failed',
121
+ ledger: result.ledger.toString(),
122
+ createdAt: new Date(),
123
+ };
124
+ }
125
+ catch (error) {
126
+ throw new Error(`Failed to claim balance: ${error instanceof Error ? error.message : 'Unknown error'}`);
127
+ }
128
+ }
129
+ /**
130
+ * Gets claimable balance details by ID
131
+ * @param balanceId - Balance ID
132
+ * @returns Promise<ClaimableBalance>
133
+ */
134
+ async getBalanceDetails(balanceId) {
135
+ try {
136
+ if (!this.isValidBalanceId(balanceId)) {
137
+ throw new Error('Invalid balance ID format');
138
+ }
139
+ const balance = await this.server
140
+ .claimableBalances()
141
+ .claimableBalance(balanceId)
142
+ .call();
143
+ return this.mapHorizonBalanceToClaimableBalance(balance);
144
+ }
145
+ catch (error) {
146
+ if (error instanceof Error && error.message.includes('404')) {
147
+ throw new Error(`Claimable balance not found: ${balanceId}`);
148
+ }
149
+ throw new Error(`Failed to get balance details: ${error instanceof Error ? error.message : 'Unknown error'}`);
150
+ }
151
+ }
152
+ /**
153
+ * Queries claimable balances
154
+ * @param params - Query parameters
155
+ * @returns Promise<ClaimableBalance[]>
156
+ */
157
+ async getClaimableBalances(params = {}) {
158
+ try {
159
+ let callBuilder = this.server.claimableBalances();
160
+ // Filter by claimant
161
+ if (params.claimant) {
162
+ if (!this.networkUtils.isValidPublicKey(params.claimant)) {
163
+ throw new Error('Invalid claimant public key');
164
+ }
165
+ callBuilder = callBuilder.claimant(params.claimant);
166
+ }
167
+ // Filter by asset
168
+ if (params.asset) {
169
+ callBuilder = callBuilder.asset(params.asset);
170
+ }
171
+ // Filter by sponsor
172
+ if (params.sponsor) {
173
+ if (!this.networkUtils.isValidPublicKey(params.sponsor)) {
174
+ throw new Error('Invalid sponsor public key');
175
+ }
176
+ callBuilder = callBuilder.sponsor(params.sponsor);
177
+ }
178
+ // Set limit
179
+ if (params.limit) {
180
+ callBuilder = callBuilder.limit(params.limit);
181
+ }
182
+ // Set cursor for pagination
183
+ if (params.cursor) {
184
+ callBuilder = callBuilder.cursor(params.cursor);
185
+ }
186
+ const response = await callBuilder.call();
187
+ return response.records.map((balance) => this.mapHorizonBalanceToClaimableBalance(balance));
188
+ }
189
+ catch (error) {
190
+ throw new Error(`Failed to query claimable balances: ${error instanceof Error ? error.message : 'Unknown error'}`);
191
+ }
192
+ }
193
+ /**
194
+ * Gets claimable balances for a specific account (as claimant)
195
+ * @param publicKey - Account public key
196
+ * @param limit - Number of results to return
197
+ * @returns Promise<ClaimableBalance[]>
198
+ */
199
+ async getClaimableBalancesForAccount(publicKey, limit = 10) {
200
+ if (!this.networkUtils.isValidPublicKey(publicKey)) {
201
+ throw new Error('Invalid public key format');
202
+ }
203
+ return this.getClaimableBalances({
204
+ claimant: publicKey,
205
+ limit,
206
+ });
207
+ }
208
+ /**
209
+ * Gets claimable balances by asset
210
+ * @param asset - Asset to filter by
211
+ * @param limit - Number of results to return
212
+ * @returns Promise<ClaimableBalance[]>
213
+ */
214
+ async getClaimableBalancesByAsset(asset, limit = 10) {
215
+ return this.getClaimableBalances({
216
+ asset,
217
+ limit,
218
+ });
219
+ }
220
+ /**
221
+ * Validates create claimable balance parameters
222
+ * @param params - Parameters to validate
223
+ * @throws Error if invalid
224
+ */
225
+ validateCreateParams(params) {
226
+ if (!params.asset) {
227
+ throw new Error('Asset is required');
228
+ }
229
+ if (!params.amount || parseFloat(params.amount) <= 0) {
230
+ throw new Error('Amount must be greater than 0');
231
+ }
232
+ if (!params.claimants || params.claimants.length === 0) {
233
+ throw new Error('At least one claimant is required');
234
+ }
235
+ // Validate each claimant
236
+ params.claimants.forEach((claimant, index) => {
237
+ if (!this.networkUtils.isValidPublicKey(claimant.destination)) {
238
+ throw new Error(`Invalid claimant destination at index ${index}`);
239
+ }
240
+ try {
241
+ validatePredicate(claimant.predicate);
242
+ }
243
+ catch (error) {
244
+ throw new Error(`Invalid predicate for claimant at index ${index}: ${error instanceof Error ? error.message : 'Unknown error'}`);
245
+ }
246
+ });
247
+ }
248
+ /**
249
+ * Validates balance ID format
250
+ * @param balanceId - Balance ID to validate
251
+ * @returns boolean
252
+ */
253
+ isValidBalanceId(balanceId) {
254
+ // Balance ID is a 64-character hex string
255
+ return /^[0-9a-f]{64}$/i.test(balanceId);
256
+ }
257
+ /**
258
+ * Extracts balance ID from transaction result
259
+ * @param result - Transaction result
260
+ * @returns Promise<Balance ID>
261
+ */
262
+ async extractBalanceId(result) {
263
+ try {
264
+ // Query operations for this transaction to get the balance ID
265
+ const operations = await this.server
266
+ .operations()
267
+ .forTransaction(result.hash)
268
+ .call();
269
+ // Find the createClaimableBalance operation
270
+ const createOp = operations.records.find((op) => op.type === 'create_claimable_balance');
271
+ if (createOp && createOp.balance_id) {
272
+ return createOp.balance_id;
273
+ }
274
+ // If balance_id is not directly available, it might be in the response
275
+ if (result.balance_id) {
276
+ return result.balance_id;
277
+ }
278
+ throw new Error('Could not extract balance ID from transaction result. Please query the operation to get the balance ID.');
279
+ }
280
+ catch (error) {
281
+ throw new Error(`Failed to extract balance ID: ${error instanceof Error ? error.message : 'Unknown error'}`);
282
+ }
283
+ }
284
+ /**
285
+ * Maps Horizon API balance to our ClaimableBalance type
286
+ * @param horizonBalance - Horizon API balance
287
+ * @returns ClaimableBalance
288
+ */
289
+ mapHorizonBalanceToClaimableBalance(horizonBalance) {
290
+ const asset = horizonBalance.asset_type === 'native'
291
+ ? Asset.native()
292
+ : new Asset(horizonBalance.asset_code, horizonBalance.asset_issuer);
293
+ const claimants = horizonBalance.claimants.map((c) => ({
294
+ destination: c.destination,
295
+ predicate: this.mapHorizonPredicateToPredicate(c.predicate),
296
+ }));
297
+ return {
298
+ id: horizonBalance.id,
299
+ asset,
300
+ amount: horizonBalance.amount,
301
+ sponsor: horizonBalance.sponsor,
302
+ claimants,
303
+ lastModified: horizonBalance.last_modified_time,
304
+ lastModifiedLedger: parseInt(horizonBalance.last_modified_ledger, 10),
305
+ };
306
+ }
307
+ /**
308
+ * Maps Horizon predicate to our ClaimPredicate type
309
+ * @param horizonPredicate - Horizon predicate
310
+ * @returns ClaimPredicate
311
+ */
312
+ mapHorizonPredicateToPredicate(horizonPredicate) {
313
+ if (horizonPredicate.unconditional) {
314
+ return { unconditional: true };
315
+ }
316
+ if (horizonPredicate.not) {
317
+ return { not: this.mapHorizonPredicateToPredicate(horizonPredicate.not) };
318
+ }
319
+ if (horizonPredicate.and) {
320
+ return {
321
+ and: horizonPredicate.and.map((p) => this.mapHorizonPredicateToPredicate(p)),
322
+ };
323
+ }
324
+ if (horizonPredicate.or) {
325
+ return {
326
+ or: horizonPredicate.or.map((p) => this.mapHorizonPredicateToPredicate(p)),
327
+ };
328
+ }
329
+ if (horizonPredicate.abs_before) {
330
+ const timestamp = new Date(parseInt(horizonPredicate.abs_before, 10) * 1000);
331
+ return { abs_before: timestamp.toISOString() };
332
+ }
333
+ if (horizonPredicate.rel_before) {
334
+ return { rel_before: horizonPredicate.rel_before };
335
+ }
336
+ return { unconditional: true }; // Default fallback
337
+ }
338
+ /**
339
+ * Estimates transaction fee
340
+ * @returns Promise<string>
341
+ */
342
+ async estimateFee() {
343
+ try {
344
+ const feeStats = await this.server.feeStats();
345
+ return feeStats.max_fee.mode;
346
+ }
347
+ catch (error) {
348
+ return BASE_FEE;
349
+ }
350
+ }
351
+ }
352
+ //# sourceMappingURL=claimable-balance-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimable-balance-manager.js","sourceRoot":"","sources":["../../src/claimable-balances/claimable-balance-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @fileoverview Helper functions for common claimable balance patterns
3
+ * @description Provides utilities for time-locked balances, vesting schedules, and escrow
4
+ * @author Galaxy DevKit Team
5
+ * @version 1.0.0
6
+ * @since 2024-12-01
7
+ */
8
+ import { Asset, Operation, Account } from '@stellar/stellar-sdk';
9
+ import { TimeLockedBalanceParams, VestingScheduleParams, EscrowParams } from './types';
10
+ /**
11
+ * Creates a time-locked claimable balance operation
12
+ * @param params - Time-locked balance parameters
13
+ * @returns Operation
14
+ */
15
+ export declare function createTimeLockedBalance(params: TimeLockedBalanceParams): any;
16
+ /**
17
+ * Creates a vesting schedule with multiple claimable balances
18
+ * @param sourceAccount - Source account
19
+ * @param params - Vesting schedule parameters
20
+ * @returns Array of operations
21
+ */
22
+ export declare function createVestingSchedule(sourceAccount: Account, params: VestingScheduleParams): Operation[];
23
+ /**
24
+ * Creates a multi-party escrow claimable balance
25
+ * @param params - Escrow parameters
26
+ * @returns Operation
27
+ */
28
+ export declare function createEscrow(params: EscrowParams): any;
29
+ /**
30
+ * Creates a two-party escrow with time lock and arbitrator
31
+ * @param params - Escrow parameters with buyer, seller, and arbitrator
32
+ * @returns Operation
33
+ */
34
+ export declare function createTwoPartyEscrow(params: {
35
+ asset: Asset;
36
+ amount: string;
37
+ buyer: string;
38
+ seller: string;
39
+ arbitrator: string;
40
+ releaseDate: Date;
41
+ }): any;
42
+ /**
43
+ * Creates a conditional release balance (requires both time and condition)
44
+ * @param params - Conditional release parameters
45
+ * @returns Operation
46
+ */
47
+ export declare function createConditionalRelease(params: {
48
+ asset: Asset;
49
+ amount: string;
50
+ claimant: string;
51
+ releaseDate: Date;
52
+ conditionPredicate: any;
53
+ }): any;
54
+ /**
55
+ * Creates a refundable balance (sender can reclaim if not claimed within time limit)
56
+ * @param params - Refundable balance parameters
57
+ * @returns Operation
58
+ */
59
+ export declare function createRefundableBalance(params: {
60
+ asset: Asset;
61
+ amount: string;
62
+ recipient: string;
63
+ sender: string;
64
+ expirationDate: Date;
65
+ }): any;
66
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/claimable-balances/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,EACL,SAAS,EAET,OAAO,EACR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACb,MAAM,SAAS,CAAC;AAIjB;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,uBAAuB,GAC9B,GAAG,CAaL;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,qBAAqB,GAC5B,SAAS,EAAE,CAsCb;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,GAAG,CAyCtD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,IAAI,CAAC;CACnB,GAAG,GAAG,CAuBN;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,IAAI,CAAC;IAClB,kBAAkB,EAAE,GAAG,CAAC;CACzB,GAAG,GAAG,CAcN;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,IAAI,CAAC;CACtB,GAAG,GAAG,CAwBN"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * @fileoverview Helper functions for common claimable balance patterns
3
+ * @description Provides utilities for time-locked balances, vesting schedules, and escrow
4
+ * @author Galaxy DevKit Team
5
+ * @version 1.0.0
6
+ * @since 2024-12-01
7
+ */
8
+ import { Operation, } from '@stellar/stellar-sdk';
9
+ import { beforeAbsoluteTime, unconditional, and } from './predicate-builder';
10
+ import { toStellarPredicate } from './predicate-builder';
11
+ /**
12
+ * Creates a time-locked claimable balance operation
13
+ * @param params - Time-locked balance parameters
14
+ * @returns Operation
15
+ */
16
+ export function createTimeLockedBalance(params) {
17
+ const predicate = beforeAbsoluteTime(params.unlockDate);
18
+ return Operation.createClaimableBalance({
19
+ asset: params.asset,
20
+ amount: params.amount,
21
+ claimants: [
22
+ {
23
+ destination: params.claimant,
24
+ predicate: toStellarPredicate(predicate),
25
+ },
26
+ ],
27
+ });
28
+ }
29
+ /**
30
+ * Creates a vesting schedule with multiple claimable balances
31
+ * @param sourceAccount - Source account
32
+ * @param params - Vesting schedule parameters
33
+ * @returns Array of operations
34
+ */
35
+ export function createVestingSchedule(sourceAccount, params) {
36
+ const operations = [];
37
+ const totalAmount = parseFloat(params.totalAmount);
38
+ // Validate percentages sum to 100
39
+ const totalPercentage = params.vestingPeriods.reduce((sum, period) => sum + period.percentage, 0);
40
+ if (Math.abs(totalPercentage - 100) > 0.01) {
41
+ throw new Error('Vesting periods must sum to 100%');
42
+ }
43
+ // Sort periods by date
44
+ const sortedPeriods = [...params.vestingPeriods].sort((a, b) => a.date.getTime() - b.date.getTime());
45
+ // Create a claimable balance for each vesting period
46
+ sortedPeriods.forEach((period) => {
47
+ const amount = ((totalAmount * period.percentage) / 100).toFixed(7);
48
+ const predicate = beforeAbsoluteTime(period.date);
49
+ operations.push(Operation.createClaimableBalance({
50
+ asset: params.asset,
51
+ amount,
52
+ claimants: [
53
+ {
54
+ destination: params.claimant,
55
+ predicate: toStellarPredicate(predicate),
56
+ },
57
+ ],
58
+ }));
59
+ });
60
+ return operations;
61
+ }
62
+ /**
63
+ * Creates a multi-party escrow claimable balance
64
+ * @param params - Escrow parameters
65
+ * @returns Operation
66
+ */
67
+ export function createEscrow(params) {
68
+ if (params.parties.length < 2) {
69
+ throw new Error('Escrow requires at least 2 parties');
70
+ }
71
+ const claimants = [];
72
+ // Add all parties as claimants
73
+ params.parties.forEach((party) => {
74
+ let predicate;
75
+ if (params.releaseDate) {
76
+ // Time-locked: can claim after release date
77
+ predicate = beforeAbsoluteTime(params.releaseDate);
78
+ }
79
+ else {
80
+ // Unconditional: can claim anytime
81
+ predicate = unconditional();
82
+ }
83
+ claimants.push({
84
+ destination: party,
85
+ predicate,
86
+ });
87
+ });
88
+ // Add arbitrator if provided (can claim anytime for dispute resolution)
89
+ if (params.arbitrator) {
90
+ claimants.push({
91
+ destination: params.arbitrator,
92
+ predicate: unconditional(),
93
+ });
94
+ }
95
+ return Operation.createClaimableBalance({
96
+ asset: params.asset,
97
+ amount: params.amount,
98
+ claimants: claimants.map((c) => ({
99
+ destination: c.destination,
100
+ predicate: toStellarPredicate(c.predicate),
101
+ })),
102
+ });
103
+ }
104
+ /**
105
+ * Creates a two-party escrow with time lock and arbitrator
106
+ * @param params - Escrow parameters with buyer, seller, and arbitrator
107
+ * @returns Operation
108
+ */
109
+ export function createTwoPartyEscrow(params) {
110
+ const buyerPredicate = beforeAbsoluteTime(params.releaseDate);
111
+ const sellerPredicate = beforeAbsoluteTime(params.releaseDate);
112
+ const arbitratorPredicate = unconditional();
113
+ return Operation.createClaimableBalance({
114
+ asset: params.asset,
115
+ amount: params.amount,
116
+ claimants: [
117
+ {
118
+ destination: params.buyer,
119
+ predicate: toStellarPredicate(buyerPredicate),
120
+ },
121
+ {
122
+ destination: params.seller,
123
+ predicate: toStellarPredicate(sellerPredicate),
124
+ },
125
+ {
126
+ destination: params.arbitrator,
127
+ predicate: toStellarPredicate(arbitratorPredicate),
128
+ },
129
+ ],
130
+ });
131
+ }
132
+ /**
133
+ * Creates a conditional release balance (requires both time and condition)
134
+ * @param params - Conditional release parameters
135
+ * @returns Operation
136
+ */
137
+ export function createConditionalRelease(params) {
138
+ const timePredicate = beforeAbsoluteTime(params.releaseDate);
139
+ const combinedPredicate = and(timePredicate, params.conditionPredicate);
140
+ return Operation.createClaimableBalance({
141
+ asset: params.asset,
142
+ amount: params.amount,
143
+ claimants: [
144
+ {
145
+ destination: params.claimant,
146
+ predicate: toStellarPredicate(combinedPredicate),
147
+ },
148
+ ],
149
+ });
150
+ }
151
+ /**
152
+ * Creates a refundable balance (sender can reclaim if not claimed within time limit)
153
+ * @param params - Refundable balance parameters
154
+ * @returns Operation
155
+ */
156
+ export function createRefundableBalance(params) {
157
+ // Recipient can claim before expiration
158
+ const recipientPredicate = beforeAbsoluteTime(params.expirationDate);
159
+ // Sender can claim after expiration (using NOT predicate)
160
+ // Note: Stellar doesn't support "after" directly, so we use unconditional
161
+ // and rely on the fact that only one can claim
162
+ // For true "after" behavior, we'd need to structure this differently
163
+ const senderPredicate = unconditional();
164
+ return Operation.createClaimableBalance({
165
+ asset: params.asset,
166
+ amount: params.amount,
167
+ claimants: [
168
+ {
169
+ destination: params.recipient,
170
+ predicate: toStellarPredicate(recipientPredicate),
171
+ },
172
+ {
173
+ destination: params.sender,
174
+ predicate: toStellarPredicate(senderPredicate),
175
+ },
176
+ ],
177
+ });
178
+ }
179
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/claimable-balances/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @fileoverview Claimable balances module exports
3
+ * @description Main entry point for claimable balance functionality
4
+ * @author Galaxy DevKit Team
5
+ * @version 1.0.0
6
+ * @since 2024-12-01
7
+ */
8
+ export type { ClaimableBalance, Claimant, ClaimPredicate, CreateClaimableBalanceParams, ClaimBalanceParams, QueryClaimableBalancesParams, ClaimableBalanceResult, TimeLockedBalanceParams, VestingScheduleParams, EscrowParams, } from './types';
9
+ export { ClaimableBalanceManager } from './claimable-balance-manager';
10
+ export { unconditional, beforeAbsoluteTime, beforeRelativeTime, not, and, or, toStellarPredicate, validatePredicate, isPredicateClaimable, } from './predicate-builder';
11
+ export { createTimeLockedBalance, createVestingSchedule, createEscrow, createTwoPartyEscrow, createConditionalRelease, createRefundableBalance, } from './helpers';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/claimable-balances/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,4BAA4B,EAC5B,kBAAkB,EAClB,4BAA4B,EAC5B,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAGtE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,GAAG,EACH,GAAG,EACH,EAAE,EACF,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @fileoverview Claimable balances module exports
3
+ * @description Main entry point for claimable balance functionality
4
+ * @author Galaxy DevKit Team
5
+ * @version 1.0.0
6
+ * @since 2024-12-01
7
+ */
8
+ // Export manager
9
+ export { ClaimableBalanceManager } from './claimable-balance-manager';
10
+ // Export predicate builders
11
+ export { unconditional, beforeAbsoluteTime, beforeRelativeTime, not, and, or, toStellarPredicate, validatePredicate, isPredicateClaimable, } from './predicate-builder';
12
+ // Export helpers
13
+ export { createTimeLockedBalance, createVestingSchedule, createEscrow, createTwoPartyEscrow, createConditionalRelease, createRefundableBalance, } from './helpers';
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/claimable-balances/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,iBAAiB;AACjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,4BAA4B;AAC5B,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,GAAG,EACH,GAAG,EACH,EAAE,EACF,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,iBAAiB;AACjB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,WAAW,CAAC"}