@florent-uzio/custody 2.2.0 → 2.3.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 (40) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +2 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/models/custody-types.d.ts +565 -338
  6. package/dist/models/custody-types.d.ts.map +1 -1
  7. package/dist/ripple-custody.d.ts +55 -10
  8. package/dist/ripple-custody.d.ts.map +1 -1
  9. package/dist/ripple-custody.js +54 -21
  10. package/dist/ripple-custody.js.map +1 -1
  11. package/dist/services/xrpl/index.d.ts +1 -0
  12. package/dist/services/xrpl/index.d.ts.map +1 -1
  13. package/dist/services/xrpl/index.js +1 -4
  14. package/dist/services/xrpl/index.js.map +1 -1
  15. package/dist/services/xrpl/xrpl.adapters.d.ts +23 -5
  16. package/dist/services/xrpl/xrpl.adapters.d.ts.map +1 -1
  17. package/dist/services/xrpl/xrpl.adapters.js +244 -161
  18. package/dist/services/xrpl/xrpl.adapters.js.map +1 -1
  19. package/dist/services/xrpl/xrpl.builders.d.ts +22 -0
  20. package/dist/services/xrpl/xrpl.builders.d.ts.map +1 -0
  21. package/dist/services/xrpl/xrpl.builders.js +107 -0
  22. package/dist/services/xrpl/xrpl.builders.js.map +1 -0
  23. package/dist/services/xrpl/xrpl.crypto.d.ts +6 -0
  24. package/dist/services/xrpl/xrpl.crypto.d.ts.map +1 -0
  25. package/dist/services/xrpl/xrpl.crypto.js +19 -0
  26. package/dist/services/xrpl/xrpl.crypto.js.map +1 -0
  27. package/dist/services/xrpl/xrpl.http-adapters.d.ts.map +1 -1
  28. package/dist/services/xrpl/xrpl.http-adapters.js +5 -0
  29. package/dist/services/xrpl/xrpl.http-adapters.js.map +1 -1
  30. package/dist/services/xrpl/xrpl.ports.d.ts +7 -1
  31. package/dist/services/xrpl/xrpl.ports.d.ts.map +1 -1
  32. package/dist/services/xrpl/xrpl.service.d.ts +79 -36
  33. package/dist/services/xrpl/xrpl.service.d.ts.map +1 -1
  34. package/dist/services/xrpl/xrpl.service.js +178 -182
  35. package/dist/services/xrpl/xrpl.service.js.map +1 -1
  36. package/dist/services/xrpl/xrpl.types.d.ts +108 -7
  37. package/dist/services/xrpl/xrpl.types.d.ts.map +1 -1
  38. package/dist/services/xrpl/xrpl.types.js +0 -28
  39. package/dist/services/xrpl/xrpl.types.js.map +1 -1
  40. package/package.json +1 -1
@@ -1,4 +1,6 @@
1
- import { AccountSetAsfFlags, MPTokenAuthorizeFlags, MPTokenIssuanceCreateFlags, MPTokenIssuanceSetFlags, OfferCreateFlags, TrustSetFlags, } from "xrpl";
1
+ import { AccountSetAsfFlags, BatchFlags, MPTokenAuthorizeFlags, MPTokenIssuanceCreateFlags, MPTokenIssuanceSetFlags, OfferCreateFlags, TrustSetFlags, } from "xrpl";
2
+ import { isString, isUndefined } from "../../helpers/index.js";
3
+ import { CustodyError } from "../../models/index.js";
2
4
  // XRP drops are represented as plain strings; IOU amounts carry currency/issuer metadata.
3
5
  const amountToAssetQuantity = (amount) => {
4
6
  if (typeof amount === "string") {
@@ -118,171 +120,252 @@ const mpTokenIssuanceSetFlagsToStrings = (flags) => {
118
120
  result.push("tfMPTUnlock");
119
121
  return result;
120
122
  };
121
- // const txToOperation = (tx: RawTx): CustodyOperation => {
122
- // switch (tx.TransactionType) {
123
- // case "Payment": {
124
- // const amount = tx.Amount
125
- // if (isString(amount)) {
126
- // // XRP drops
127
- // return {
128
- // type: "Payment",
129
- // destination: { type: "Address", address: tx.Destination },
130
- // amount,
131
- // ...(tx.DestinationTag !== undefined && { destinationTag: tx.DestinationTag }),
132
- // }
133
- // }
134
- // const isMPT = "mpt_issuance_id" in amount
135
- // return {
136
- // type: "Payment",
137
- // destination: { type: "Address", address: tx.Destination },
138
- // amount: amount.value,
139
- // ...(tx.DestinationTag !== undefined && { destinationTag: tx.DestinationTag }),
140
- // currency: isMPT
141
- // ? { type: "MultiPurposeToken" as const, issuanceId: amount.mpt_issuance_id }
142
- // : {
143
- // type: "Currency" as const,
144
- // code: (amount as IssuedCurrencyAmount).currency,
145
- // issuer: (amount as IssuedCurrencyAmount).issuer,
146
- // },
147
- // }
148
- // }
149
- // case "OfferCreate":
150
- // return {
151
- // type: "OfferCreate",
152
- // takerGets: amountToAssetQuantity(tx.TakerGets as IssuedCurrencyAmount | string),
153
- // takerPays: amountToAssetQuantity(tx.TakerPays as IssuedCurrencyAmount | string),
154
- // flags: offerCreateFlagsToStrings(tx.Flags),
155
- // }
156
- // case "TrustSet":
157
- // return {
158
- // type: "TrustSet",
159
- // limitAmount: {
160
- // currency: {
161
- // type: "Currency",
162
- // code: tx.LimitAmount.currency,
163
- // issuer: tx.LimitAmount.issuer,
164
- // },
165
- // value: tx.LimitAmount.value,
166
- // },
167
- // flags: trustSetFlagsToStrings(tx.Flags),
168
- // }
169
- // case "AccountSet":
170
- // return {
171
- // type: "AccountSet",
172
- // ...(tx.SetFlag !== undefined && { setFlag: accountSetAsfFlagToString(tx.SetFlag) }),
173
- // ...(tx.ClearFlag !== undefined && { clearFlag: accountSetAsfFlagToString(tx.ClearFlag) }),
174
- // ...(tx.TransferRate !== undefined && { transferRate: tx.TransferRate }),
175
- // }
176
- // case "TicketCreate":
177
- // return {
178
- // type: "TicketCreate",
179
- // ticketCount: tx.TicketCount,
180
- // }
181
- // case "Clawback": {
182
- // const amount = tx.Amount
183
- // // Clawback Amount can be either an IOU (IssuedCurrencyAmount) or an MPT amount,
184
- // // distinguished by the presence of `mpt_issuance_id`.
185
- // const isMPT = "mpt_issuance_id" in amount
186
- // return {
187
- // type: "Clawback",
188
- // currency: isMPT
189
- // ? { type: "MultiPurposeToken" as const, issuanceId: amount.mpt_issuance_id }
190
- // : {
191
- // type: "Currency" as const,
192
- // code: (amount as IssuedCurrencyAmount).currency,
193
- // issuer: (amount as IssuedCurrencyAmount).issuer,
194
- // },
195
- // holder: { type: "Address" as const, address: tx.Holder as string },
196
- // value: amount.value,
197
- // }
198
- // }
199
- // case "DepositPreauth":
200
- // return {
201
- // type: "DepositPreauth",
202
- // ...(tx.Authorize !== undefined && {
203
- // authorize: { type: "Address" as const, address: tx.Authorize },
204
- // }),
205
- // ...(tx.Unauthorize !== undefined && {
206
- // unauthorize: { type: "Address" as const, address: tx.Unauthorize },
207
- // }),
208
- // }
209
- // case "EscrowFinish":
210
- // return {
211
- // type: "EscrowFinish",
212
- // owner: { type: "Address" as const, address: tx.Owner },
213
- // offerSequence: Number(tx.OfferSequence),
214
- // ...(tx.Condition !== undefined && { condition: tx.Condition }),
215
- // ...(tx.Fulfillment !== undefined && { fulfillment: tx.Fulfillment }),
216
- // ...(tx.CredentialIDs !== undefined && { credentialIds: tx.CredentialIDs }),
217
- // }
218
- // case "MPTokenAuthorize":
219
- // return {
220
- // type: "MPTokenAuthorize",
221
- // tokenIdentifier: { type: "MPTokenIssuanceId" as const, issuanceId: tx.MPTokenIssuanceID },
222
- // flags: mpTokenAuthorizeFlagsToStrings(tx.Flags),
223
- // ...(tx.Holder !== undefined && {
224
- // holder: { type: "Address" as const, address: tx.Holder },
225
- // }),
226
- // }
227
- // case "MPTokenIssuanceCreate":
228
- // return {
229
- // type: "MPTokenIssuanceCreate",
230
- // flags: mpTokenIssuanceCreateFlagsToStrings(tx.Flags),
231
- // ...(tx.AssetScale !== undefined && { assetScale: tx.AssetScale }),
232
- // ...(tx.TransferFee !== undefined && { transferFee: tx.TransferFee }),
233
- // ...(tx.MaximumAmount !== undefined && { maximumAmount: tx.MaximumAmount }),
234
- // ...(tx.MPTokenMetadata !== undefined && {
235
- // metadata: { type: "HexEncodedMetadata" as const, value: tx.MPTokenMetadata },
236
- // }),
237
- // }
238
- // case "MPTokenIssuanceDestroy":
239
- // return {
240
- // type: "MPTokenIssuanceDestroy",
241
- // tokenIdentifier: { type: "MPTokenIssuanceId" as const, issuanceId: tx.MPTokenIssuanceID },
242
- // }
243
- // case "MPTokenIssuanceSet":
244
- // return {
245
- // type: "MPTokenIssuanceSet",
246
- // tokenIdentifier: { type: "MPTokenIssuanceId" as const, issuanceId: tx.MPTokenIssuanceID },
247
- // flags: mpTokenIssuanceSetFlagsToStrings(tx.Flags),
248
- // ...(tx.Holder !== undefined && {
249
- // holder: { type: "Address" as const, address: tx.Holder },
250
- // }),
251
- // }
252
- // default:
253
- // throw new Error(`Unsupported transaction type: ${tx.TransactionType}`)
254
- // }
255
- // }
123
+ const txToOperation = (tx) => {
124
+ switch (tx.TransactionType) {
125
+ case "Payment": {
126
+ const amount = tx.Amount;
127
+ if (isString(amount)) {
128
+ // XRP drops
129
+ return {
130
+ type: "Payment",
131
+ destination: { type: "Address", address: tx.Destination },
132
+ amount,
133
+ ...(tx.DestinationTag !== undefined && { destinationTag: tx.DestinationTag }),
134
+ };
135
+ }
136
+ const isMPT = "mpt_issuance_id" in amount;
137
+ return {
138
+ type: "Payment",
139
+ destination: { type: "Address", address: tx.Destination },
140
+ amount: amount.value,
141
+ ...(tx.DestinationTag !== undefined && { destinationTag: tx.DestinationTag }),
142
+ currency: isMPT
143
+ ? { type: "MultiPurposeToken", issuanceId: amount.mpt_issuance_id }
144
+ : {
145
+ type: "Currency",
146
+ code: amount.currency,
147
+ issuer: amount.issuer,
148
+ },
149
+ };
150
+ }
151
+ case "OfferCreate":
152
+ return {
153
+ type: "OfferCreate",
154
+ takerGets: amountToAssetQuantity(tx.TakerGets),
155
+ takerPays: amountToAssetQuantity(tx.TakerPays),
156
+ flags: offerCreateFlagsToStrings(tx.Flags),
157
+ };
158
+ case "TrustSet":
159
+ return {
160
+ type: "TrustSet",
161
+ limitAmount: {
162
+ currency: {
163
+ type: "Currency",
164
+ code: tx.LimitAmount.currency,
165
+ issuer: tx.LimitAmount.issuer,
166
+ },
167
+ value: tx.LimitAmount.value,
168
+ },
169
+ flags: trustSetFlagsToStrings(tx.Flags),
170
+ };
171
+ case "AccountSet":
172
+ return {
173
+ type: "AccountSet",
174
+ ...(tx.SetFlag !== undefined && { setFlag: accountSetAsfFlagToString(tx.SetFlag) }),
175
+ ...(tx.ClearFlag !== undefined && { clearFlag: accountSetAsfFlagToString(tx.ClearFlag) }),
176
+ ...(tx.TransferRate !== undefined && { transferRate: tx.TransferRate }),
177
+ };
178
+ case "TicketCreate":
179
+ return {
180
+ type: "TicketCreate",
181
+ ticketCount: tx.TicketCount,
182
+ };
183
+ case "Clawback": {
184
+ const amount = tx.Amount;
185
+ // Clawback Amount can be either an IOU (IssuedCurrencyAmount) or an MPT amount,
186
+ // distinguished by the presence of `mpt_issuance_id`.
187
+ const isMPT = "mpt_issuance_id" in amount;
188
+ return {
189
+ type: "Clawback",
190
+ currency: isMPT
191
+ ? { type: "MultiPurposeToken", issuanceId: amount.mpt_issuance_id }
192
+ : {
193
+ type: "Currency",
194
+ code: amount.currency,
195
+ issuer: amount.issuer,
196
+ },
197
+ holder: { type: "Address", address: tx.Holder },
198
+ value: amount.value,
199
+ };
200
+ }
201
+ case "DepositPreauth":
202
+ return {
203
+ type: "DepositPreauth",
204
+ ...(tx.Authorize !== undefined && {
205
+ authorize: { type: "Address", address: tx.Authorize },
206
+ }),
207
+ ...(tx.Unauthorize !== undefined && {
208
+ unauthorize: { type: "Address", address: tx.Unauthorize },
209
+ }),
210
+ };
211
+ case "EscrowFinish":
212
+ return {
213
+ type: "EscrowFinish",
214
+ owner: { type: "Address", address: tx.Owner },
215
+ offerSequence: Number(tx.OfferSequence),
216
+ ...(tx.Condition !== undefined && { condition: tx.Condition }),
217
+ ...(tx.Fulfillment !== undefined && { fulfillment: tx.Fulfillment }),
218
+ ...(tx.CredentialIDs !== undefined && { credentialIds: tx.CredentialIDs }),
219
+ };
220
+ case "MPTokenAuthorize":
221
+ return {
222
+ type: "MPTokenAuthorize",
223
+ tokenIdentifier: { type: "MPTokenIssuanceId", issuanceId: tx.MPTokenIssuanceID },
224
+ flags: mpTokenAuthorizeFlagsToStrings(tx.Flags),
225
+ ...(tx.Holder !== undefined && {
226
+ holder: { type: "Address", address: tx.Holder },
227
+ }),
228
+ };
229
+ case "MPTokenIssuanceCreate":
230
+ return {
231
+ type: "MPTokenIssuanceCreate",
232
+ flags: mpTokenIssuanceCreateFlagsToStrings(tx.Flags),
233
+ ...(tx.AssetScale !== undefined && { assetScale: tx.AssetScale }),
234
+ ...(tx.TransferFee !== undefined && { transferFee: tx.TransferFee }),
235
+ ...(tx.MaximumAmount !== undefined && { maximumAmount: tx.MaximumAmount }),
236
+ ...(tx.MPTokenMetadata !== undefined && {
237
+ metadata: { type: "HexEncodedMetadata", value: tx.MPTokenMetadata },
238
+ }),
239
+ };
240
+ case "MPTokenIssuanceDestroy":
241
+ return {
242
+ type: "MPTokenIssuanceDestroy",
243
+ tokenIdentifier: { type: "MPTokenIssuanceId", issuanceId: tx.MPTokenIssuanceID },
244
+ };
245
+ case "MPTokenIssuanceSet":
246
+ return {
247
+ type: "MPTokenIssuanceSet",
248
+ tokenIdentifier: { type: "MPTokenIssuanceId", issuanceId: tx.MPTokenIssuanceID },
249
+ flags: mpTokenIssuanceSetFlagsToStrings(tx.Flags),
250
+ ...(tx.Holder !== undefined && {
251
+ holder: { type: "Address", address: tx.Holder },
252
+ }),
253
+ };
254
+ default:
255
+ throw new Error(`Unsupported transaction type: ${tx.TransactionType}`);
256
+ }
257
+ };
256
258
  /**
257
259
  * Converts an XRPL SDK BatchSigners array (from a signed Batch transaction)
258
260
  * to the batchSigners format required by the Ripple Custody API.
259
261
  */
260
- // export const batchSignersToCustodyBatchSigners = (
261
- // batchSigners: BatchSigner[],
262
- // ): CustodyBatchSigner[] => {
263
- // return batchSigners.map(({ BatchSigner: { Account, SigningPubKey, TxnSignature } }) => ({
264
- // account: Account,
265
- // signingPubKey: SigningPubKey ?? "",
266
- // txnSignature: TxnSignature ?? "",
267
- // }))
268
- // }
262
+ export const batchSignersToCustodyBatchSigners = (batchSigners) => {
263
+ return batchSigners.map(({ BatchSigner: { Account, SigningPubKey, TxnSignature } }) => ({
264
+ participant: {
265
+ address: Account,
266
+ type: "Address",
267
+ },
268
+ publicKey: SigningPubKey ?? "",
269
+ signature: TxnSignature ?? "",
270
+ }));
271
+ };
269
272
  /**
270
- * Converts an XRPL SDK Batch.RawTransactions array to the innerTransactions
271
- * format required by the Ripple Custody API.
273
+ * Maps an xrpl.js Batch `Flags` field to the {% PUBLIC_VAR_CUS %} `executionMode`.
274
+ * Accepts a numeric bitmask or a pre-decoded object form (`{ tfAllOrNothing: true }`).
275
+ * Throws if no execution-mode flag is set or multiple are set.
276
+ */
277
+ const batchFlagsToExecutionMode = (flags) => {
278
+ if (flags === undefined) {
279
+ throw new CustodyError({
280
+ reason: "Batch.Flags is required to determine executionMode",
281
+ });
282
+ }
283
+ const matches = [];
284
+ if (typeof flags === "object") {
285
+ const f = flags;
286
+ if (f.tfAllOrNothing)
287
+ matches.push("AllOrNothing");
288
+ if (f.tfOnlyOne)
289
+ matches.push("OnlyOne");
290
+ if (f.tfUntilFailure)
291
+ matches.push("UntilFailure");
292
+ if (f.tfIndependent)
293
+ matches.push("Independent");
294
+ }
295
+ else {
296
+ if (flags & BatchFlags.tfAllOrNothing)
297
+ matches.push("AllOrNothing");
298
+ if (flags & BatchFlags.tfOnlyOne)
299
+ matches.push("OnlyOne");
300
+ if (flags & BatchFlags.tfUntilFailure)
301
+ matches.push("UntilFailure");
302
+ if (flags & BatchFlags.tfIndependent)
303
+ matches.push("Independent");
304
+ }
305
+ if (matches.length === 0) {
306
+ throw new CustodyError({
307
+ reason: `Batch.Flags does not set a recognized execution-mode flag (${String(flags)})`,
308
+ });
309
+ }
310
+ if (matches.length > 1) {
311
+ throw new CustodyError({
312
+ reason: `Batch.Flags sets multiple execution-mode flags: ${matches.join(", ")}`,
313
+ });
314
+ }
315
+ return matches[0];
316
+ };
317
+ /**
318
+ * Converts an autofilled xrpl.js Batch into a `BatchPayloadInput` for
319
+ * `dryRunBatch` / `proposeBatch`.
320
+ *
321
+ * - `Flags` is required and must set exactly one execution-mode flag
322
+ * (`tfAllOrNothing` / `tfOnlyOne` / `tfUntilFailure` / `tfIndependent`)
323
+ * - When `Sequence` is present on the outer Batch, it is mapped to
324
+ * `{ type: "AccountSequence", value: Sequence }`; otherwise `sequencing`
325
+ * is omitted so the service default `{ type: "PlatformManaged" }` applies
326
+ * - `LastLedgerSequence` is passed through when present
327
+ * - `BatchSigners` on the input is ignored — collect signatures separately
328
+ * and pass them to `proposeBatch`
329
+ */
330
+ export const batchToCustodyBatchPayload = (batch) => {
331
+ return {
332
+ Account: batch.Account,
333
+ executionMode: batchFlagsToExecutionMode(batch.Flags),
334
+ entries: batchToCustodyInnerTransactions(batch),
335
+ ...(!isUndefined(batch.Sequence) && {
336
+ sequencing: { type: "AccountSequence", value: batch.Sequence },
337
+ }),
338
+ ...(!isUndefined(batch.LastLedgerSequence) && {
339
+ lastLedgerSequence: batch.LastLedgerSequence,
340
+ }),
341
+ };
342
+ };
343
+ /**
344
+ * Converts an xrpl.js Batch transaction to the inner transactions array
345
+ * required by the Ripple Custody API.
272
346
  *
273
- * Supported transaction types: Payment, OfferCreate, TrustSet, AccountSet, TicketCreate.
274
- * Throws for any other type.
347
+ * Each inner transaction is emitted as a `SubmitterOperation` when its
348
+ * `Account` matches the outer `Batch.Account` (the submitter), and as a
349
+ * `ParticipantOperation` otherwise.
275
350
  */
276
- // export const rawTransactionsToInnerTransactions = (
277
- // rawTransactions: Batch["RawTransactions"],
278
- // ): CustodyInnerTransaction[] => {
279
- // return rawTransactions.map(({ RawTransaction: tx }) => ({
280
- // account: tx.Account,
281
- // ...(tx.Sequence !== undefined && { sequence: tx.Sequence }),
282
- // ...(tx.TicketSequence !== undefined && {
283
- // ticketSequence: tx.TicketSequence,
284
- // }),
285
- // operation: txToOperation(tx),
286
- // }))
287
- // }
351
+ export const batchToCustodyInnerTransactions = (batch) => {
352
+ return batch.RawTransactions.map(({ RawTransaction: tx }) => {
353
+ const sequencing = !isUndefined(tx.TicketSequence)
354
+ ? { type: "Ticket", value: tx.TicketSequence }
355
+ : { type: "AccountSequence", value: tx.Sequence ?? 0 };
356
+ if (tx.Account === batch.Account) {
357
+ return {
358
+ type: "SubmitterOperation",
359
+ sequencing,
360
+ operation: txToOperation(tx),
361
+ };
362
+ }
363
+ return {
364
+ type: "ParticipantOperation",
365
+ participant: { type: "Address", address: tx.Account },
366
+ sequencing,
367
+ operation: txToOperation(tx),
368
+ };
369
+ });
370
+ };
288
371
  //# sourceMappingURL=xrpl.adapters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xrpl.adapters.js","sourceRoot":"","sources":["../../../src/services/xrpl/xrpl.adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xrpl.adapters.js","sourceRoot":"","sources":["../../../src/services/xrpl/xrpl.adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Core_IntentDryRunRequest, Core_ProposeIntentBody } from "../intents/intents.types.js";
2
+ import type { BatchPayloadInput, BuildTransactionIntentProps, Core_BatchSigner, Core_XrplOperation, Core_XrplOperation_Batch, IntentContext, SignBatchPayloadResult, XrplIntentOptions } from "./xrpl.types.js";
3
+ /**
4
+ * Constructs a `Core_XrplOperation_Batch` from `BatchPayloadInput`.
5
+ */
6
+ export declare function buildBatchOperation(payload: BatchPayloadInput, batchSigners: Core_BatchSigner[]): Core_XrplOperation_Batch;
7
+ /**
8
+ * Builds a `Core_IntentDryRunRequest` body for an XRPL transaction order.
9
+ */
10
+ export declare function buildDryRunBody(operation: Core_XrplOperation, context: IntentContext, options: XrplIntentOptions): Core_IntentDryRunRequest;
11
+ /**
12
+ * Builds an XRPL intent body.
13
+ */
14
+ export declare function buildTransactionIntent({ operation, context, options, }: BuildTransactionIntentProps): Core_ProposeIntentBody;
15
+ /**
16
+ * Assembles a `SignBatchPayloadResult` from the signer details and signature.
17
+ */
18
+ export declare function buildSignBatchPayloadResult(params: {
19
+ signerAddress: string;
20
+ signingPubKey: string;
21
+ }, signature: string): SignBatchPayloadResult;
22
+ //# sourceMappingURL=xrpl.builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xrpl.builders.d.ts","sourceRoot":"","sources":["../../../src/services/xrpl/xrpl.builders.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,KAAK,EACV,iBAAiB,EACjB,2BAA2B,EAC3B,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AAExB;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,gBAAgB,EAAE,GAC/B,wBAAwB,CAW1B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,iBAAiB,GACzB,wBAAwB,CA0B1B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,SAAS,EACT,OAAO,EACP,OAAO,GACR,EAAE,2BAA2B,GAAG,sBAAsB,CAmCtD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EACxD,SAAS,EAAE,MAAM,GAChB,sBAAsB,CAiBxB"}
@@ -0,0 +1,107 @@
1
+ import dayjs from "dayjs";
2
+ import { v7 as uuidv7 } from "uuid";
3
+ import { isUndefined } from "../../helpers/index.js";
4
+ /**
5
+ * Constructs a `Core_XrplOperation_Batch` from `BatchPayloadInput`.
6
+ */
7
+ export function buildBatchOperation(payload, batchSigners) {
8
+ return {
9
+ type: "Batch",
10
+ executionMode: payload.executionMode,
11
+ entries: payload.entries,
12
+ batchSigners,
13
+ sequencing: payload.sequencing ?? { type: "PlatformManaged" },
14
+ ...(!isUndefined(payload.lastLedgerSequence) && {
15
+ lastLedgerSequence: payload.lastLedgerSequence,
16
+ }),
17
+ };
18
+ }
19
+ /**
20
+ * Builds a `Core_IntentDryRunRequest` body for an XRPL transaction order.
21
+ */
22
+ export function buildDryRunBody(operation, context, options) {
23
+ const feePriority = options.feePriority ?? "Low";
24
+ const expiryDays = options.expiryDays ?? 1;
25
+ const requestId = options.requestId ?? uuidv7();
26
+ const payloadId = options.payloadId ?? uuidv7();
27
+ return {
28
+ author: { domainId: context.domainId, id: context.userId },
29
+ customProperties: options.requestCustomProperties ?? {},
30
+ expiryAt: dayjs().add(expiryDays, "day").toISOString(),
31
+ id: requestId,
32
+ payload: {
33
+ accountId: context.accountId,
34
+ customProperties: options.payloadCustomProperties ?? {},
35
+ id: payloadId,
36
+ ledgerId: context.ledgerId,
37
+ parameters: {
38
+ feeStrategy: { priority: feePriority, type: "Priority" },
39
+ memos: [],
40
+ operation,
41
+ type: "XRPL",
42
+ },
43
+ type: "v0_CreateTransactionOrder",
44
+ },
45
+ targetDomainId: context.domainId,
46
+ };
47
+ }
48
+ /**
49
+ * Builds an XRPL intent body.
50
+ */
51
+ export function buildTransactionIntent({ operation, context, options, }) {
52
+ const feePriority = options.feePriority ?? "Low";
53
+ const expiryDays = options.expiryDays ?? 1;
54
+ const requestId = options.requestId ?? uuidv7();
55
+ const payloadId = options.payloadId ?? uuidv7();
56
+ return {
57
+ request: {
58
+ author: {
59
+ domainId: context.domainId,
60
+ id: context.userId,
61
+ },
62
+ customProperties: options.requestCustomProperties ?? {},
63
+ expiryAt: dayjs().add(expiryDays, "day").toISOString(),
64
+ id: requestId,
65
+ payload: {
66
+ accountId: context.accountId,
67
+ customProperties: options.payloadCustomProperties ?? {},
68
+ id: payloadId,
69
+ ledgerId: context.ledgerId,
70
+ parameters: {
71
+ feeStrategy: {
72
+ priority: feePriority,
73
+ type: "Priority",
74
+ },
75
+ memos: [],
76
+ operation,
77
+ type: "XRPL",
78
+ },
79
+ type: "v0_CreateTransactionOrder",
80
+ },
81
+ targetDomainId: context.domainId,
82
+ type: "Propose",
83
+ },
84
+ };
85
+ }
86
+ /**
87
+ * Assembles a `SignBatchPayloadResult` from the signer details and signature.
88
+ */
89
+ export function buildSignBatchPayloadResult(params, signature) {
90
+ return {
91
+ signature,
92
+ signingPubKey: params.signingPubKey,
93
+ batchSigner: {
94
+ BatchSigner: {
95
+ Account: params.signerAddress,
96
+ SigningPubKey: params.signingPubKey,
97
+ TxnSignature: signature,
98
+ },
99
+ },
100
+ custodyBatchSigner: {
101
+ participant: { type: "Address", address: params.signerAddress },
102
+ publicKey: params.signingPubKey,
103
+ signature,
104
+ },
105
+ };
106
+ }
107
+ //# sourceMappingURL=xrpl.builders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xrpl.builders.js","sourceRoot":"","sources":["../../../src/services/xrpl/xrpl.builders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Compresses a base64-encoded SPKI/DER secp256k1 public key to its compressed hex form.
3
+ * Uses Node.js built-in crypto via JWK export to extract the raw EC point coordinates.
4
+ */
5
+ export declare function compressPublicKey(base64PublicKey: string): string;
6
+ //# sourceMappingURL=xrpl.crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xrpl.crypto.d.ts","sourceRoot":"","sources":["../../../src/services/xrpl/xrpl.crypto.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAajE"}
@@ -0,0 +1,19 @@
1
+ import { createPublicKey } from "crypto";
2
+ /**
3
+ * Compresses a base64-encoded SPKI/DER secp256k1 public key to its compressed hex form.
4
+ * Uses Node.js built-in crypto via JWK export to extract the raw EC point coordinates.
5
+ */
6
+ export function compressPublicKey(base64PublicKey) {
7
+ const publicKey = createPublicKey({
8
+ key: Buffer.from(base64PublicKey, "base64"),
9
+ format: "der",
10
+ type: "spki",
11
+ });
12
+ const jwk = publicKey.export({ format: "jwk" });
13
+ const x = Buffer.from(jwk.x, "base64url");
14
+ const y = Buffer.from(jwk.y, "base64url");
15
+ const lastByte = y[y.length - 1];
16
+ const prefix = lastByte % 2 === 0 ? "02" : "03";
17
+ return (prefix + x.toString("hex")).toUpperCase();
18
+ }
19
+ //# sourceMappingURL=xrpl.crypto.js.map