xrpl 4.2.0-batch.0 → 4.2.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 (205) hide show
  1. package/build/xrpl-latest-min.js +1 -1
  2. package/build/xrpl-latest-min.js.map +1 -1
  3. package/build/xrpl-latest.js +35 -294
  4. package/build/xrpl-latest.js.map +1 -1
  5. package/dist/npm/Wallet/defaultFaucets.d.ts +1 -2
  6. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  7. package/dist/npm/Wallet/defaultFaucets.js +0 -5
  8. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  9. package/dist/npm/Wallet/index.d.ts.map +1 -1
  10. package/dist/npm/Wallet/index.js +2 -8
  11. package/dist/npm/Wallet/index.js.map +1 -1
  12. package/dist/npm/client/RequestManager.d.ts.map +1 -1
  13. package/dist/npm/client/RequestManager.js +3 -3
  14. package/dist/npm/client/RequestManager.js.map +1 -1
  15. package/dist/npm/client/connection.d.ts.map +1 -1
  16. package/dist/npm/client/connection.js.map +1 -1
  17. package/dist/npm/client/index.d.ts.map +1 -1
  18. package/dist/npm/client/index.js +8 -5
  19. package/dist/npm/client/index.js.map +1 -1
  20. package/dist/npm/models/ledger/Credential.d.ts +2 -2
  21. package/dist/npm/models/ledger/Credential.d.ts.map +1 -1
  22. package/dist/npm/models/methods/baseMethod.d.ts +0 -1
  23. package/dist/npm/models/methods/baseMethod.d.ts.map +1 -1
  24. package/dist/npm/models/transactions/AMMClawback.d.ts +2 -2
  25. package/dist/npm/models/transactions/AMMClawback.d.ts.map +1 -1
  26. package/dist/npm/models/transactions/AMMDeposit.d.ts +2 -2
  27. package/dist/npm/models/transactions/AMMDeposit.d.ts.map +1 -1
  28. package/dist/npm/models/transactions/AMMWithdraw.d.ts +2 -2
  29. package/dist/npm/models/transactions/AMMWithdraw.d.ts.map +1 -1
  30. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +2 -2
  31. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  32. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  33. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  34. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  35. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  36. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  37. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  38. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  39. package/dist/npm/models/transactions/NFTokenMint.d.ts +2 -2
  40. package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
  41. package/dist/npm/models/transactions/XChainModifyBridge.d.ts +2 -2
  42. package/dist/npm/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  43. package/dist/npm/models/transactions/accountSet.d.ts +2 -2
  44. package/dist/npm/models/transactions/accountSet.d.ts.map +1 -1
  45. package/dist/npm/models/transactions/accountSet.js.map +1 -1
  46. package/dist/npm/models/transactions/common.d.ts +4 -16
  47. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  48. package/dist/npm/models/transactions/common.js +10 -28
  49. package/dist/npm/models/transactions/common.js.map +1 -1
  50. package/dist/npm/models/transactions/index.d.ts +2 -3
  51. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  52. package/dist/npm/models/transactions/index.js.map +1 -1
  53. package/dist/npm/models/transactions/metadata.d.ts +0 -1
  54. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  55. package/dist/npm/models/transactions/offerCreate.d.ts +2 -2
  56. package/dist/npm/models/transactions/offerCreate.d.ts.map +1 -1
  57. package/dist/npm/models/transactions/payment.d.ts +2 -2
  58. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  59. package/dist/npm/models/transactions/paymentChannelClaim.d.ts +2 -2
  60. package/dist/npm/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  61. package/dist/npm/models/transactions/paymentChannelClaim.js.map +1 -1
  62. package/dist/npm/models/transactions/transaction.d.ts +1 -2
  63. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  64. package/dist/npm/models/transactions/transaction.js +0 -7
  65. package/dist/npm/models/transactions/transaction.js.map +1 -1
  66. package/dist/npm/models/transactions/trustSet.d.ts +2 -2
  67. package/dist/npm/models/transactions/trustSet.d.ts.map +1 -1
  68. package/dist/npm/models/utils/flags.d.ts +0 -1
  69. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  70. package/dist/npm/models/utils/flags.js +2 -22
  71. package/dist/npm/models/utils/flags.js.map +1 -1
  72. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  73. package/dist/npm/src/Wallet/defaultFaucets.d.ts +1 -2
  74. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  75. package/dist/npm/src/Wallet/defaultFaucets.js +0 -5
  76. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  77. package/dist/npm/src/Wallet/index.d.ts.map +1 -1
  78. package/dist/npm/src/Wallet/index.js +2 -8
  79. package/dist/npm/src/Wallet/index.js.map +1 -1
  80. package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
  81. package/dist/npm/src/client/RequestManager.js +3 -3
  82. package/dist/npm/src/client/RequestManager.js.map +1 -1
  83. package/dist/npm/src/client/connection.d.ts.map +1 -1
  84. package/dist/npm/src/client/connection.js.map +1 -1
  85. package/dist/npm/src/client/index.d.ts.map +1 -1
  86. package/dist/npm/src/client/index.js +8 -5
  87. package/dist/npm/src/client/index.js.map +1 -1
  88. package/dist/npm/src/models/ledger/Credential.d.ts +2 -2
  89. package/dist/npm/src/models/ledger/Credential.d.ts.map +1 -1
  90. package/dist/npm/src/models/methods/baseMethod.d.ts +0 -1
  91. package/dist/npm/src/models/methods/baseMethod.d.ts.map +1 -1
  92. package/dist/npm/src/models/transactions/AMMClawback.d.ts +2 -2
  93. package/dist/npm/src/models/transactions/AMMClawback.d.ts.map +1 -1
  94. package/dist/npm/src/models/transactions/AMMDeposit.d.ts +2 -2
  95. package/dist/npm/src/models/transactions/AMMDeposit.d.ts.map +1 -1
  96. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts +2 -2
  97. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts.map +1 -1
  98. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +2 -2
  99. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  100. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  101. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  102. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  103. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  104. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  105. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  106. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  107. package/dist/npm/src/models/transactions/NFTokenMint.d.ts +2 -2
  108. package/dist/npm/src/models/transactions/NFTokenMint.d.ts.map +1 -1
  109. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts +2 -2
  110. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  111. package/dist/npm/src/models/transactions/accountSet.d.ts +2 -2
  112. package/dist/npm/src/models/transactions/accountSet.d.ts.map +1 -1
  113. package/dist/npm/src/models/transactions/accountSet.js.map +1 -1
  114. package/dist/npm/src/models/transactions/common.d.ts +4 -16
  115. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  116. package/dist/npm/src/models/transactions/common.js +10 -28
  117. package/dist/npm/src/models/transactions/common.js.map +1 -1
  118. package/dist/npm/src/models/transactions/index.d.ts +2 -3
  119. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  120. package/dist/npm/src/models/transactions/index.js.map +1 -1
  121. package/dist/npm/src/models/transactions/metadata.d.ts +0 -1
  122. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  123. package/dist/npm/src/models/transactions/offerCreate.d.ts +2 -2
  124. package/dist/npm/src/models/transactions/offerCreate.d.ts.map +1 -1
  125. package/dist/npm/src/models/transactions/payment.d.ts +2 -2
  126. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  127. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts +2 -2
  128. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  129. package/dist/npm/src/models/transactions/paymentChannelClaim.js.map +1 -1
  130. package/dist/npm/src/models/transactions/transaction.d.ts +1 -2
  131. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  132. package/dist/npm/src/models/transactions/transaction.js +0 -7
  133. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  134. package/dist/npm/src/models/transactions/trustSet.d.ts +2 -2
  135. package/dist/npm/src/models/transactions/trustSet.d.ts.map +1 -1
  136. package/dist/npm/src/models/utils/flags.d.ts +0 -1
  137. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  138. package/dist/npm/src/models/utils/flags.js +2 -22
  139. package/dist/npm/src/models/utils/flags.js.map +1 -1
  140. package/dist/npm/src/sugar/autofill.d.ts +1 -3
  141. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  142. package/dist/npm/src/sugar/autofill.js +5 -100
  143. package/dist/npm/src/sugar/autofill.js.map +1 -1
  144. package/dist/npm/src/sugar/submit.d.ts.map +1 -1
  145. package/dist/npm/src/sugar/submit.js.map +1 -1
  146. package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
  147. package/dist/npm/src/utils/hashes/hashLedger.js +1 -4
  148. package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
  149. package/dist/npm/sugar/autofill.d.ts +1 -3
  150. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  151. package/dist/npm/sugar/autofill.js +5 -100
  152. package/dist/npm/sugar/autofill.js.map +1 -1
  153. package/dist/npm/sugar/submit.d.ts.map +1 -1
  154. package/dist/npm/sugar/submit.js.map +1 -1
  155. package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
  156. package/dist/npm/utils/hashes/hashLedger.js +1 -4
  157. package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
  158. package/package.json +4 -4
  159. package/src/Wallet/defaultFaucets.ts +0 -6
  160. package/src/Wallet/index.ts +3 -9
  161. package/src/client/RequestManager.ts +1 -4
  162. package/src/client/connection.ts +1 -0
  163. package/src/client/index.ts +28 -7
  164. package/src/models/ledger/Credential.ts +2 -2
  165. package/src/models/methods/baseMethod.ts +0 -1
  166. package/src/models/transactions/AMMClawback.ts +2 -2
  167. package/src/models/transactions/AMMDeposit.ts +2 -2
  168. package/src/models/transactions/AMMWithdraw.ts +2 -2
  169. package/src/models/transactions/MPTokenAuthorize.ts +2 -2
  170. package/src/models/transactions/MPTokenIssuanceCreate.ts +2 -3
  171. package/src/models/transactions/MPTokenIssuanceSet.ts +2 -2
  172. package/src/models/transactions/NFTokenCreateOffer.ts +2 -2
  173. package/src/models/transactions/NFTokenMint.ts +2 -2
  174. package/src/models/transactions/XChainModifyBridge.ts +2 -2
  175. package/src/models/transactions/accountSet.ts +1 -2
  176. package/src/models/transactions/common.ts +22 -62
  177. package/src/models/transactions/index.ts +3 -3
  178. package/src/models/transactions/metadata.ts +0 -2
  179. package/src/models/transactions/offerCreate.ts +2 -2
  180. package/src/models/transactions/payment.ts +2 -2
  181. package/src/models/transactions/paymentChannelClaim.ts +2 -3
  182. package/src/models/transactions/transaction.ts +0 -15
  183. package/src/models/transactions/trustSet.ts +2 -2
  184. package/src/models/utils/flags.ts +1 -30
  185. package/src/sugar/autofill.ts +11 -140
  186. package/src/sugar/submit.ts +2 -1
  187. package/src/utils/hashes/hashLedger.ts +2 -5
  188. package/dist/npm/Wallet/batchSigner.d.ts +0 -8
  189. package/dist/npm/Wallet/batchSigner.d.ts.map +0 -1
  190. package/dist/npm/Wallet/batchSigner.js +0 -124
  191. package/dist/npm/Wallet/batchSigner.js.map +0 -1
  192. package/dist/npm/models/transactions/batch.d.ts +0 -39
  193. package/dist/npm/models/transactions/batch.d.ts.map +0 -1
  194. package/dist/npm/models/transactions/batch.js +0 -62
  195. package/dist/npm/models/transactions/batch.js.map +0 -1
  196. package/dist/npm/src/Wallet/batchSigner.d.ts +0 -8
  197. package/dist/npm/src/Wallet/batchSigner.d.ts.map +0 -1
  198. package/dist/npm/src/Wallet/batchSigner.js +0 -124
  199. package/dist/npm/src/Wallet/batchSigner.js.map +0 -1
  200. package/dist/npm/src/models/transactions/batch.d.ts +0 -39
  201. package/dist/npm/src/models/transactions/batch.d.ts.map +0 -1
  202. package/dist/npm/src/models/transactions/batch.js +0 -62
  203. package/dist/npm/src/models/transactions/batch.js.map +0 -1
  204. package/src/Wallet/batchSigner.ts +0 -222
  205. package/src/models/transactions/batch.ts +0 -147
@@ -8,8 +8,6 @@ import { AccountSetTfFlags } from '../transactions/accountSet'
8
8
  import { AMMClawbackFlags } from '../transactions/AMMClawback'
9
9
  import { AMMDepositFlags } from '../transactions/AMMDeposit'
10
10
  import { AMMWithdrawFlags } from '../transactions/AMMWithdraw'
11
- import { BatchFlags } from '../transactions/batch'
12
- import { GlobalFlags } from '../transactions/common'
13
11
  import { MPTokenAuthorizeFlags } from '../transactions/MPTokenAuthorize'
14
12
  import { MPTokenIssuanceCreateFlags } from '../transactions/MPTokenIssuanceCreate'
15
13
  import { MPTokenIssuanceSetFlags } from '../transactions/MPTokenIssuanceSet'
@@ -53,7 +51,6 @@ const txToFlag = {
53
51
  AMMClawback: AMMClawbackFlags,
54
52
  AMMDeposit: AMMDepositFlags,
55
53
  AMMWithdraw: AMMWithdrawFlags,
56
- Batch: BatchFlags,
57
54
  MPTokenAuthorize: MPTokenAuthorizeFlags,
58
55
  MPTokenIssuanceCreate: MPTokenIssuanceCreateFlags,
59
56
  MPTokenIssuanceSet: MPTokenIssuanceSetFlags,
@@ -120,15 +117,7 @@ export function convertTxFlagsToNumber(tx: Transaction): number {
120
117
  }, 0)
121
118
  }
122
119
 
123
- return Object.keys(tx.Flags).reduce((resultFlags, flag) => {
124
- if (GlobalFlags[flag] == null) {
125
- throw new ValidationError(
126
- `Invalid flag ${flag}. Valid flags are ${JSON.stringify(GlobalFlags)}`,
127
- )
128
- }
129
-
130
- return tx.Flags?.[flag] ? resultFlags | GlobalFlags[flag] : resultFlags
131
- }, 0)
120
+ return 0
132
121
  }
133
122
 
134
123
  /**
@@ -159,21 +148,3 @@ export function parseTransactionFlags(tx: Transaction): object {
159
148
 
160
149
  return booleanFlagMap
161
150
  }
162
-
163
- /**
164
- * Determines whether a transaction has a certain flag enabled.
165
- *
166
- * @param tx The transaction.
167
- * @param flag The flag to check.
168
- * @returns Whether `flag` is enabled on `tx`.
169
- */
170
- export function hasFlag(tx: Transaction, flag: number): boolean {
171
- if (tx.Flags == null) {
172
- return false
173
- }
174
- if (typeof tx.Flags === 'number') {
175
- return isFlagEnabled(tx.Flags, flag)
176
- }
177
- const txFlagNum = convertTxFlagsToNumber(tx)
178
- return isFlagEnabled(txFlagNum, flag)
179
- }
@@ -1,12 +1,10 @@
1
- /* eslint-disable max-lines -- lots of helper functions needed for autofill */
2
1
  import BigNumber from 'bignumber.js'
3
2
  import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec'
4
3
 
5
4
  import { type Client } from '..'
6
5
  import { ValidationError, XrplError } from '../errors'
7
6
  import { AccountInfoRequest, AccountObjectsRequest } from '../models/methods'
8
- import { Batch, Payment, Transaction } from '../models/transactions'
9
- import { GlobalFlags } from '../models/transactions/common'
7
+ import { Transaction } from '../models/transactions'
10
8
  import { xrpToDrops } from '../utils'
11
9
 
12
10
  import getFeeXrp from './getFeeXrp'
@@ -209,20 +207,6 @@ function convertToClassicAddress(tx: Transaction, fieldName: string): void {
209
207
  }
210
208
  }
211
209
 
212
- // Helper function to get the next valid sequence number for an account.
213
- async function getNextValidSequenceNumber(
214
- client: Client,
215
- account: string,
216
- ): Promise<number> {
217
- const request: AccountInfoRequest = {
218
- command: 'account_info',
219
- account,
220
- ledger_index: 'current',
221
- }
222
- const data = await client.request(request)
223
- return data.result.account_data.Sequence
224
- }
225
-
226
210
  /**
227
211
  * Sets the next valid sequence number for a transaction.
228
212
  *
@@ -235,8 +219,14 @@ export async function setNextValidSequenceNumber(
235
219
  client: Client,
236
220
  tx: Transaction,
237
221
  ): Promise<void> {
222
+ const request: AccountInfoRequest = {
223
+ command: 'account_info',
224
+ account: tx.Account,
225
+ ledger_index: 'current',
226
+ }
227
+ const data = await client.request(request)
238
228
  // eslint-disable-next-line no-param-reassign, require-atomic-updates -- param reassign is safe with no race condition
239
- tx.Sequence = await getNextValidSequenceNumber(client, tx.Account)
229
+ tx.Sequence = data.result.account_data.Sequence
240
230
  }
241
231
 
242
232
  /**
@@ -284,16 +274,13 @@ export async function calculateFeePerTransactionType(
284
274
  scaleValue(netFeeDrops, 33 + fulfillmentBytesSize / 16),
285
275
  )
286
276
  baseFee = product.dp(0, BigNumber.ROUND_CEIL)
287
- } else if (
277
+ }
278
+
279
+ if (
288
280
  tx.TransactionType === 'AccountDelete' ||
289
281
  tx.TransactionType === 'AMMCreate'
290
282
  ) {
291
283
  baseFee = await fetchAccountDeleteFee(client)
292
- } else if (tx.TransactionType === 'Batch') {
293
- baseFee = BigNumber.sum(
294
- baseFee.times(2),
295
- baseFee.times(tx.RawTransactions.length + (tx.BatchSigners?.length ?? 0)),
296
- )
297
284
  }
298
285
 
299
286
  /*
@@ -372,119 +359,3 @@ export async function checkAccountDeleteBlockers(
372
359
  resolve()
373
360
  })
374
361
  }
375
- /**
376
- * Replaces Amount with DeliverMax if needed.
377
- *
378
- * @param tx - The transaction object.
379
- * @throws ValidationError if Amount and DeliverMax are both provided but do not match.
380
- */
381
- export function handleDeliverMax(tx: Payment): void {
382
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
383
- // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
384
- if (tx.DeliverMax != null) {
385
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
386
- if (tx.Amount == null) {
387
- // If only DeliverMax is provided, use it to populate the Amount field
388
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
389
- // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
390
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, no-param-reassign -- known RPC-level property
391
- tx.Amount = tx.DeliverMax
392
- }
393
-
394
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
395
- // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
396
-
397
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed here
398
- if (tx.Amount != null && tx.Amount !== tx.DeliverMax) {
399
- throw new ValidationError(
400
- 'PaymentTransaction: Amount and DeliverMax fields must be identical when both are provided',
401
- )
402
- }
403
-
404
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- ignore type-assertions on the DeliverMax property
405
- // @ts-expect-error -- DeliverMax property exists only at the RPC level, not at the protocol level
406
- // eslint-disable-next-line no-param-reassign -- needed here
407
- delete tx.DeliverMax
408
- }
409
- }
410
-
411
- /**
412
- * Autofills all the relevant `x` fields.
413
- *
414
- * @param client - The client object.
415
- * @param tx - The transaction object.
416
- * @returns A promise that resolves with void if there are no blockers, or rejects with an XrplError if there are blockers.
417
- */
418
- // eslint-disable-next-line complexity, max-lines-per-function, max-statements -- needed here, lots to check
419
- export async function autofillBatchTxn(
420
- client: Client,
421
- tx: Batch,
422
- ): Promise<void> {
423
- const accountSequences: Record<string, number> = {}
424
-
425
- for await (const rawTxn of tx.RawTransactions) {
426
- const txn = rawTxn.RawTransaction
427
-
428
- // Flag processing
429
- /* eslint-disable no-bitwise -- needed here for flag parsing */
430
- if (txn.Flags == null) {
431
- txn.Flags = GlobalFlags.tfInnerBatchTxn
432
- } else if (typeof txn.Flags === 'number') {
433
- if (!((txn.Flags & GlobalFlags.tfInnerBatchTxn) === 0)) {
434
- txn.Flags |= GlobalFlags.tfInnerBatchTxn
435
- }
436
- } else if (!txn.Flags.tfInnerBatchTxn) {
437
- txn.Flags.tfInnerBatchTxn = true
438
- }
439
- /* eslint-enable no-bitwise */
440
-
441
- // Sequence processing
442
- if (txn.Sequence == null && txn.TicketSequence == null) {
443
- if (txn.Account in accountSequences) {
444
- txn.Sequence = accountSequences[txn.Account]
445
- accountSequences[txn.Account] += 1
446
- } else {
447
- const nextSequence = await getNextValidSequenceNumber(
448
- client,
449
- txn.Account,
450
- )
451
- const sequence =
452
- txn.Account === tx.Account ? nextSequence + 1 : nextSequence
453
- accountSequences[txn.Account] = sequence + 1
454
- txn.Sequence = sequence
455
- }
456
- }
457
-
458
- if (txn.Fee == null) {
459
- txn.Fee = '0'
460
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- JS check
461
- } else if (txn.Fee !== '0') {
462
- throw new XrplError('Must have `Fee of "0" in inner Batch transaction.')
463
- }
464
-
465
- if (txn.SigningPubKey == null) {
466
- txn.SigningPubKey = ''
467
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- JS check
468
- } else if (txn.SigningPubKey !== '') {
469
- throw new XrplError(
470
- 'Must have `SigningPubKey` of "" in inner Batch transaction.',
471
- )
472
- }
473
-
474
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS
475
- if (txn.TxnSignature != null) {
476
- throw new XrplError(
477
- 'Must not have `TxnSignature` in inner Batch transaction.',
478
- )
479
- }
480
-
481
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- needed for JS
482
- if (txn.Signers != null) {
483
- throw new XrplError('Must not have `Signers` in inner Batch transaction.')
484
- }
485
-
486
- if (txn.NetworkID == null) {
487
- txn.NetworkID = txNeedsNetworkID(client) ? client.networkID : undefined
488
- }
489
- }
490
- }
@@ -175,6 +175,7 @@ function isSigned(transaction: SubmittableTransaction | string): boolean {
175
175
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- we know that tx.Signers is an array of Signers
176
176
  const signers = tx.Signers as Signer[]
177
177
  for (const signer of signers) {
178
+ // eslint-disable-next-line max-depth -- necessary for checking if signer is signed
178
179
  if (
179
180
  // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- necessary check
180
181
  signer.Signer.SigningPubKey == null ||
@@ -282,7 +283,7 @@ export function getLastLedgerSequence(
282
283
  transaction: Transaction | string,
283
284
  ): number | null {
284
285
  const tx = typeof transaction === 'string' ? decode(transaction) : transaction
285
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- converts LastLedgerSeq to number if present.
286
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- converts LastLedgSeq to number if present.
286
287
  return tx.LastLedgerSequence as number | null
287
288
  }
288
289
 
@@ -12,8 +12,6 @@ import { APIVersion } from '../../models'
12
12
  import { LedgerEntry } from '../../models/ledger'
13
13
  import { LedgerVersionMap } from '../../models/ledger/Ledger'
14
14
  import { Transaction, TransactionMetadata } from '../../models/transactions'
15
- import { GlobalFlags } from '../../models/transactions/common'
16
- import { hasFlag } from '../../models/utils/flags'
17
15
 
18
16
  import HashPrefix from './HashPrefix'
19
17
  import sha512Half from './sha512Half'
@@ -68,7 +66,7 @@ function addLengthPrefix(hex: string): string {
68
66
  *
69
67
  * @param tx - A transaction to hash. Tx may be in binary blob form. Tx must be signed.
70
68
  * @returns A hash of tx.
71
- * @throws ValidationError if the Transaction is unsigned.
69
+ * @throws ValidationError if the Transaction is unsigned.\
72
70
  * @category Utilities
73
71
  */
74
72
  export function hashSignedTx(tx: Transaction | string): string {
@@ -86,8 +84,7 @@ export function hashSignedTx(tx: Transaction | string): string {
86
84
  if (
87
85
  txObject.TxnSignature === undefined &&
88
86
  txObject.Signers === undefined &&
89
- txObject.SigningPubKey === undefined &&
90
- !hasFlag(txObject, GlobalFlags.tfInnerBatchTxn)
87
+ txObject.SigningPubKey === undefined
91
88
  ) {
92
89
  throw new ValidationError('The transaction must be signed to hash it.')
93
90
  }
@@ -1,8 +0,0 @@
1
- import { Batch } from '../models';
2
- import { Wallet } from '.';
3
- export declare function signMultiBatch(wallet: Wallet, transaction: Batch, opts?: {
4
- batchAccount?: string;
5
- multisign?: boolean | string;
6
- }): void;
7
- export declare function combineBatchSigners(transactions: Array<Batch | string>): string;
8
- //# sourceMappingURL=batchSigner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchSigner.d.ts","sourceRoot":"","sources":["../../../src/Wallet/batchSigner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAyB,MAAM,WAAW,CAAA;AAIxD,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAA;AAc1B,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,KAAK,EAClB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAAO,GACjE,IAAI,CAmEN;AAYD,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAClC,MAAM,CAmCR"}
@@ -1,124 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.combineBatchSigners = exports.signMultiBatch = void 0;
7
- const utils_1 = require("@xrplf/isomorphic/utils");
8
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
- const ripple_address_codec_1 = require("ripple-address-codec");
10
- const ripple_binary_codec_1 = require("ripple-binary-codec");
11
- const ripple_keypairs_1 = require("ripple-keypairs");
12
- const errors_1 = require("../errors");
13
- const models_1 = require("../models");
14
- const batch_1 = require("../models/transactions/batch");
15
- const hashes_1 = require("../utils/hashes");
16
- function signMultiBatch(wallet, transaction, opts = {}) {
17
- var _a;
18
- const batchAccount = (_a = opts.batchAccount) !== null && _a !== void 0 ? _a : wallet.classicAddress;
19
- let multisignAddress = false;
20
- if (typeof opts.multisign === 'string') {
21
- multisignAddress = opts.multisign;
22
- }
23
- else if (opts.multisign) {
24
- multisignAddress = wallet.classicAddress;
25
- }
26
- if (transaction.TransactionType !== 'Batch') {
27
- throw new errors_1.ValidationError('Must be a Batch transaction.');
28
- }
29
- const involvedAccounts = transaction.RawTransactions.map((raw) => raw.RawTransaction.Account);
30
- if (!involvedAccounts.includes(batchAccount)) {
31
- throw new errors_1.ValidationError('Must be signing for an address included in the Batch.');
32
- }
33
- (0, models_1.validate)(transaction);
34
- const fieldsToSign = {
35
- flags: transaction.Flags,
36
- txIDs: transaction.RawTransactions.map((rawTx) => (0, hashes_1.hashSignedTx)(rawTx.RawTransaction)),
37
- };
38
- let batchSigner;
39
- if (multisignAddress) {
40
- batchSigner = {
41
- BatchSigner: {
42
- Account: batchAccount,
43
- Signers: [
44
- {
45
- Signer: {
46
- Account: multisignAddress,
47
- SigningPubKey: wallet.publicKey,
48
- TxnSignature: (0, ripple_keypairs_1.sign)((0, ripple_binary_codec_1.encodeForSigningBatch)(fieldsToSign), wallet.privateKey),
49
- },
50
- },
51
- ],
52
- },
53
- };
54
- }
55
- else {
56
- batchSigner = {
57
- BatchSigner: {
58
- Account: batchAccount,
59
- SigningPubKey: wallet.publicKey,
60
- TxnSignature: (0, ripple_keypairs_1.sign)((0, ripple_binary_codec_1.encodeForSigningBatch)(fieldsToSign), wallet.privateKey),
61
- },
62
- };
63
- }
64
- transaction.BatchSigners = [batchSigner];
65
- }
66
- exports.signMultiBatch = signMultiBatch;
67
- function combineBatchSigners(transactions) {
68
- if (transactions.length === 0) {
69
- throw new errors_1.ValidationError('There are 0 transactions to combine.');
70
- }
71
- const decodedTransactions = transactions.map((txOrBlob) => {
72
- return getDecodedTransaction(txOrBlob);
73
- });
74
- decodedTransactions.forEach((tx) => {
75
- if (tx.TransactionType !== 'Batch') {
76
- throw new errors_1.ValidationError('TransactionType must be `Batch`.');
77
- }
78
- (0, batch_1.validateBatch)(tx);
79
- if (tx.BatchSigners == null || tx.BatchSigners.length === 0) {
80
- throw new errors_1.ValidationError('For combining Batch transaction signatures, all transactions must include a BatchSigners field containing an array of signatures.');
81
- }
82
- if (tx.TxnSignature != null || tx.Signers != null) {
83
- throw new errors_1.ValidationError('Batch transaction must be unsigned.');
84
- }
85
- });
86
- const batchTransactions = decodedTransactions;
87
- validateBatchTransactionEquivalence(batchTransactions);
88
- return (0, ripple_binary_codec_1.encode)(getTransactionWithAllBatchSigners(batchTransactions));
89
- }
90
- exports.combineBatchSigners = combineBatchSigners;
91
- function validateBatchTransactionEquivalence(transactions) {
92
- const exampleTransaction = JSON.stringify({
93
- flags: transactions[0].Flags,
94
- transactionIDs: transactions[0].RawTransactions.map((rawTx) => (0, hashes_1.hashSignedTx)(rawTx.RawTransaction)),
95
- });
96
- if (transactions.slice(1).some((tx) => JSON.stringify({
97
- flags: tx.Flags,
98
- transactionIDs: tx.RawTransactions.map((rawTx) => (0, hashes_1.hashSignedTx)(rawTx.RawTransaction)),
99
- }) !== exampleTransaction)) {
100
- throw new errors_1.ValidationError('Flags and transaction hashes are not the same for all provided transactions.');
101
- }
102
- }
103
- function getTransactionWithAllBatchSigners(transactions) {
104
- const sortedSigners = transactions
105
- .flatMap((tx) => { var _a; return (_a = tx.BatchSigners) !== null && _a !== void 0 ? _a : []; })
106
- .filter((signer) => signer.BatchSigner.Account !== transactions[0].Account)
107
- .sort(compareBatchSigners);
108
- return Object.assign(Object.assign({}, transactions[0]), { BatchSigners: sortedSigners });
109
- }
110
- function compareBatchSigners(left, right) {
111
- return addressToBigNumber(left.BatchSigner.Account).comparedTo(addressToBigNumber(right.BatchSigner.Account));
112
- }
113
- const NUM_BITS_IN_HEX = 16;
114
- function addressToBigNumber(address) {
115
- const hex = (0, utils_1.bytesToHex)((0, ripple_address_codec_1.decodeAccountID)(address));
116
- return new bignumber_js_1.default(hex, NUM_BITS_IN_HEX);
117
- }
118
- function getDecodedTransaction(txOrBlob) {
119
- if (typeof txOrBlob === 'object') {
120
- return (0, ripple_binary_codec_1.decode)((0, ripple_binary_codec_1.encode)(txOrBlob));
121
- }
122
- return (0, ripple_binary_codec_1.decode)(txOrBlob);
123
- }
124
- //# sourceMappingURL=batchSigner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchSigner.js","sourceRoot":"","sources":["../../../src/Wallet/batchSigner.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { Signer } from '../common';
2
- import { BaseTransaction, GlobalFlagsInterface } from './common';
3
- import type { SubmittableTransaction } from './transaction';
4
- export declare enum BatchFlags {
5
- tfAllOrNothing = 65536,
6
- tfOnlyOne = 131072,
7
- tfUntilFailure = 262144,
8
- tfIndependent = 524288
9
- }
10
- export interface BatchFlagsInterface extends GlobalFlagsInterface {
11
- tfAllOrNothing?: boolean;
12
- tfOnlyOne?: boolean;
13
- tfUntilFailure?: boolean;
14
- tfIndependent?: boolean;
15
- }
16
- export type BatchInnerTransaction = SubmittableTransaction & {
17
- Fee?: '0';
18
- SigningPubKey?: '';
19
- TxnSignature?: never;
20
- Signers?: never;
21
- LastLedgerSequence?: never;
22
- };
23
- export interface BatchSigner {
24
- BatchSigner: {
25
- Account: string;
26
- SigningPubKey?: string;
27
- TxnSignature?: string;
28
- Signers?: Signer[];
29
- };
30
- }
31
- export interface Batch extends BaseTransaction {
32
- TransactionType: 'Batch';
33
- BatchSigners?: BatchSigner[];
34
- RawTransactions: Array<{
35
- RawTransaction: BatchInnerTransaction;
36
- }>;
37
- }
38
- export declare function validateBatch(tx: Record<string, unknown>): void;
39
- //# sourceMappingURL=batch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch.d.ts","sourceRoot":"","sources":["../../../../src/models/transactions/batch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAElC,OAAO,EACL,eAAe,EACf,oBAAoB,EAOrB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAO3D,oBAAY,UAAU;IACpB,cAAc,QAAa;IAC3B,SAAS,SAAa;IACtB,cAAc,SAAa;IAC3B,aAAa,SAAa;CAC3B;AAQD,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG;IAC3D,GAAG,CAAC,EAAE,GAAG,CAAA;IAET,aAAa,CAAC,EAAE,EAAE,CAAA;IAElB,YAAY,CAAC,EAAE,KAAK,CAAA;IAEpB,OAAO,CAAC,EAAE,KAAK,CAAA;IAEf,kBAAkB,CAAC,EAAE,KAAK,CAAA;CAC3B,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAA;QAEf,aAAa,CAAC,EAAE,MAAM,CAAA;QAEtB,YAAY,CAAC,EAAE,MAAM,CAAA;QAErB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;CACF;AAKD,MAAM,WAAW,KAAM,SAAQ,eAAe;IAC5C,eAAe,EAAE,OAAO,CAAA;IAExB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAE5B,eAAe,EAAE,KAAK,CAAC;QACrB,cAAc,EAAE,qBAAqB,CAAA;KACtC,CAAC,CAAA;CACH;AASD,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA8D/D"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateBatch = exports.BatchFlags = void 0;
4
- const errors_1 = require("../../errors");
5
- const common_1 = require("./common");
6
- var BatchFlags;
7
- (function (BatchFlags) {
8
- BatchFlags[BatchFlags["tfAllOrNothing"] = 65536] = "tfAllOrNothing";
9
- BatchFlags[BatchFlags["tfOnlyOne"] = 131072] = "tfOnlyOne";
10
- BatchFlags[BatchFlags["tfUntilFailure"] = 262144] = "tfUntilFailure";
11
- BatchFlags[BatchFlags["tfIndependent"] = 524288] = "tfIndependent";
12
- })(BatchFlags || (exports.BatchFlags = BatchFlags = {}));
13
- function validateBatch(tx) {
14
- (0, common_1.validateBaseTransaction)(tx);
15
- (0, common_1.validateRequiredField)(tx, 'RawTransactions', common_1.isArray);
16
- const rawTransactions = tx.RawTransactions;
17
- rawTransactions.forEach((rawTxObj, index) => {
18
- if (!(0, common_1.isObject)(rawTxObj)) {
19
- throw new errors_1.ValidationError(`Batch: RawTransactions[${index}] is not object.`);
20
- }
21
- const rawTxRecord = rawTxObj;
22
- (0, common_1.validateRequiredField)(rawTxRecord, 'RawTransaction', common_1.isObject, {
23
- paramName: `RawTransactions[${index}].RawTransaction`,
24
- txType: 'Batch',
25
- });
26
- const rawTx = rawTxRecord.RawTransaction;
27
- if (rawTx.TransactionType === 'Batch') {
28
- throw new errors_1.ValidationError(`Batch: RawTransactions[${index}] is a Batch transaction. Cannot nest Batch transactions.`);
29
- }
30
- });
31
- (0, common_1.validateOptionalField)(tx, 'BatchSigners', common_1.isArray);
32
- const batchSigners = tx.BatchSigners;
33
- batchSigners === null || batchSigners === void 0 ? void 0 : batchSigners.forEach((signerObj, index) => {
34
- if (!(0, common_1.isObject)(signerObj)) {
35
- throw new errors_1.ValidationError(`Batch: BatchSigners[${index}] is not object.`);
36
- }
37
- const signerRecord = signerObj;
38
- (0, common_1.validateRequiredField)(signerRecord, 'BatchSigner', common_1.isObject, {
39
- paramName: `BatchSigners[${index}].BatchSigner`,
40
- txType: 'Batch',
41
- });
42
- const signer = signerRecord.BatchSigner;
43
- (0, common_1.validateRequiredField)(signer, 'Account', common_1.isString, {
44
- paramName: `BatchSigners[${index}].Account`,
45
- txType: 'Batch',
46
- });
47
- (0, common_1.validateOptionalField)(signer, 'SigningPubKey', common_1.isString, {
48
- paramName: `BatchSigners[${index}].SigningPubKey`,
49
- txType: 'Batch',
50
- });
51
- (0, common_1.validateOptionalField)(signer, 'TxnSignature', common_1.isString, {
52
- paramName: `BatchSigners[${index}].TxnSignature`,
53
- txType: 'Batch',
54
- });
55
- (0, common_1.validateOptionalField)(signer, 'Signers', common_1.isArray, {
56
- paramName: `BatchSigners[${index}].Signers`,
57
- txType: 'Batch',
58
- });
59
- });
60
- }
61
- exports.validateBatch = validateBatch;
62
- //# sourceMappingURL=batch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../../src/models/transactions/batch.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAG9C,qCASiB;AAQjB,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mEAA2B,CAAA;IAC3B,0DAAsB,CAAA;IACtB,oEAA2B,CAAA;IAC3B,kEAA0B,CAAA;AAC5B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB;AA2DD,SAAgB,aAAa,CAAC,EAA2B;IACvD,IAAA,gCAAuB,EAAC,EAAE,CAAC,CAAA;IAE3B,IAAA,8BAAqB,EAAC,EAAE,EAAE,iBAAiB,EAAE,gBAAO,CAAC,CAAA;IAErD,MAAM,eAAe,GAAG,EAAE,CAAC,eAA4B,CAAA;IACvD,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAA,iBAAQ,EAAC,QAAQ,CAAC,EAAE;YACvB,MAAM,IAAI,wBAAe,CACvB,0BAA0B,KAAK,kBAAkB,CAClD,CAAA;SACF;QAED,MAAM,WAAW,GAAG,QAAmC,CAAA;QACvD,IAAA,8BAAqB,EAAC,WAAW,EAAE,gBAAgB,EAAE,iBAAQ,EAAE;YAC7D,SAAS,EAAE,mBAAmB,KAAK,kBAAkB;YACrD,MAAM,EAAE,OAAO;SAChB,CAAC,CAAA;QAGF,MAAM,KAAK,GAAG,WAAW,CAAC,cAAyC,CAAA;QACnE,IAAI,KAAK,CAAC,eAAe,KAAK,OAAO,EAAE;YACrC,MAAM,IAAI,wBAAe,CACvB,0BAA0B,KAAK,2DAA2D,CAC3F,CAAA;SACF;IACH,CAAC,CAAC,CAAA;IAGF,IAAA,8BAAqB,EAAC,EAAE,EAAE,cAAc,EAAE,gBAAO,CAAC,CAAA;IAGlD,MAAM,YAAY,GAAG,EAAE,CAAC,YAAqC,CAAA;IAC7D,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACzC,IAAI,CAAC,IAAA,iBAAQ,EAAC,SAAS,CAAC,EAAE;YACxB,MAAM,IAAI,wBAAe,CAAC,uBAAuB,KAAK,kBAAkB,CAAC,CAAA;SAC1E;QAED,MAAM,YAAY,GAAG,SAAoC,CAAA;QACzD,IAAA,8BAAqB,EAAC,YAAY,EAAE,aAAa,EAAE,iBAAQ,EAAE;YAC3D,SAAS,EAAE,gBAAgB,KAAK,eAAe;YAC/C,MAAM,EAAE,OAAO;SAChB,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC,WAAsC,CAAA;QAClE,IAAA,8BAAqB,EAAC,MAAM,EAAE,SAAS,EAAE,iBAAQ,EAAE;YACjD,SAAS,EAAE,gBAAgB,KAAK,WAAW;YAC3C,MAAM,EAAE,OAAO;SAChB,CAAC,CAAA;QACF,IAAA,8BAAqB,EAAC,MAAM,EAAE,eAAe,EAAE,iBAAQ,EAAE;YACvD,SAAS,EAAE,gBAAgB,KAAK,iBAAiB;YACjD,MAAM,EAAE,OAAO;SAChB,CAAC,CAAA;QACF,IAAA,8BAAqB,EAAC,MAAM,EAAE,cAAc,EAAE,iBAAQ,EAAE;YACtD,SAAS,EAAE,gBAAgB,KAAK,gBAAgB;YAChD,MAAM,EAAE,OAAO;SAChB,CAAC,CAAA;QACF,IAAA,8BAAqB,EAAC,MAAM,EAAE,SAAS,EAAE,gBAAO,EAAE;YAChD,SAAS,EAAE,gBAAgB,KAAK,WAAW;YAC3C,MAAM,EAAE,OAAO;SAChB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AA9DD,sCA8DC"}
@@ -1,8 +0,0 @@
1
- import { Batch } from '../models';
2
- import { Wallet } from '.';
3
- export declare function signMultiBatch(wallet: Wallet, transaction: Batch, opts?: {
4
- batchAccount?: string;
5
- multisign?: boolean | string;
6
- }): void;
7
- export declare function combineBatchSigners(transactions: Array<Batch | string>): string;
8
- //# sourceMappingURL=batchSigner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchSigner.d.ts","sourceRoot":"","sources":["../../../../src/Wallet/batchSigner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAyB,MAAM,WAAW,CAAA;AAIxD,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,CAAA;AAc1B,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,KAAK,EAClB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAAO,GACjE,IAAI,CAmEN;AAYD,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAClC,MAAM,CAmCR"}