xrpl 4.2.0-batch.0 → 4.3.0-smartescrow.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 (231) hide show
  1. package/build/xrpl-latest.js +525 -1525
  2. package/build/xrpl-latest.js.map +1 -1
  3. package/dist/npm/Wallet/defaultFaucets.d.ts +1 -2
  4. package/dist/npm/Wallet/defaultFaucets.d.ts.map +1 -1
  5. package/dist/npm/Wallet/defaultFaucets.js +0 -5
  6. package/dist/npm/Wallet/defaultFaucets.js.map +1 -1
  7. package/dist/npm/Wallet/index.d.ts.map +1 -1
  8. package/dist/npm/Wallet/index.js +2 -8
  9. package/dist/npm/Wallet/index.js.map +1 -1
  10. package/dist/npm/client/RequestManager.d.ts.map +1 -1
  11. package/dist/npm/client/RequestManager.js +3 -3
  12. package/dist/npm/client/RequestManager.js.map +1 -1
  13. package/dist/npm/client/connection.d.ts.map +1 -1
  14. package/dist/npm/client/connection.js.map +1 -1
  15. package/dist/npm/client/index.d.ts.map +1 -1
  16. package/dist/npm/client/index.js +8 -5
  17. package/dist/npm/client/index.js.map +1 -1
  18. package/dist/npm/models/ledger/Credential.d.ts +2 -2
  19. package/dist/npm/models/ledger/Credential.d.ts.map +1 -1
  20. package/dist/npm/models/ledger/Escrow.d.ts +2 -0
  21. package/dist/npm/models/ledger/Escrow.d.ts.map +1 -1
  22. package/dist/npm/models/ledger/FeeSettings.d.ts +2 -0
  23. package/dist/npm/models/ledger/FeeSettings.d.ts.map +1 -1
  24. package/dist/npm/models/methods/baseMethod.d.ts +0 -1
  25. package/dist/npm/models/methods/baseMethod.d.ts.map +1 -1
  26. package/dist/npm/models/transactions/AMMClawback.d.ts +2 -2
  27. package/dist/npm/models/transactions/AMMClawback.d.ts.map +1 -1
  28. package/dist/npm/models/transactions/AMMDeposit.d.ts +2 -2
  29. package/dist/npm/models/transactions/AMMDeposit.d.ts.map +1 -1
  30. package/dist/npm/models/transactions/AMMWithdraw.d.ts +2 -2
  31. package/dist/npm/models/transactions/AMMWithdraw.d.ts.map +1 -1
  32. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +2 -2
  33. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  34. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  35. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  36. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  37. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  38. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  39. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  40. package/dist/npm/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  41. package/dist/npm/models/transactions/NFTokenMint.d.ts +2 -2
  42. package/dist/npm/models/transactions/NFTokenMint.d.ts.map +1 -1
  43. package/dist/npm/models/transactions/XChainModifyBridge.d.ts +2 -2
  44. package/dist/npm/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  45. package/dist/npm/models/transactions/accountSet.d.ts +2 -2
  46. package/dist/npm/models/transactions/accountSet.d.ts.map +1 -1
  47. package/dist/npm/models/transactions/accountSet.js.map +1 -1
  48. package/dist/npm/models/transactions/common.d.ts +4 -16
  49. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  50. package/dist/npm/models/transactions/common.js +10 -28
  51. package/dist/npm/models/transactions/common.js.map +1 -1
  52. package/dist/npm/models/transactions/escrowCreate.d.ts +2 -0
  53. package/dist/npm/models/transactions/escrowCreate.d.ts.map +1 -1
  54. package/dist/npm/models/transactions/escrowCreate.js +4 -2
  55. package/dist/npm/models/transactions/escrowCreate.js.map +1 -1
  56. package/dist/npm/models/transactions/index.d.ts +2 -3
  57. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  58. package/dist/npm/models/transactions/index.js.map +1 -1
  59. package/dist/npm/models/transactions/metadata.d.ts +0 -1
  60. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  61. package/dist/npm/models/transactions/offerCreate.d.ts +2 -2
  62. package/dist/npm/models/transactions/offerCreate.d.ts.map +1 -1
  63. package/dist/npm/models/transactions/oracleSet.d.ts.map +1 -1
  64. package/dist/npm/models/transactions/oracleSet.js +17 -3
  65. package/dist/npm/models/transactions/oracleSet.js.map +1 -1
  66. package/dist/npm/models/transactions/payment.d.ts +2 -2
  67. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  68. package/dist/npm/models/transactions/paymentChannelClaim.d.ts +2 -2
  69. package/dist/npm/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  70. package/dist/npm/models/transactions/paymentChannelClaim.js.map +1 -1
  71. package/dist/npm/models/transactions/transaction.d.ts +1 -2
  72. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  73. package/dist/npm/models/transactions/transaction.js +0 -7
  74. package/dist/npm/models/transactions/transaction.js.map +1 -1
  75. package/dist/npm/models/transactions/trustSet.d.ts +2 -2
  76. package/dist/npm/models/transactions/trustSet.d.ts.map +1 -1
  77. package/dist/npm/models/utils/flags.d.ts +0 -1
  78. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  79. package/dist/npm/models/utils/flags.js +2 -22
  80. package/dist/npm/models/utils/flags.js.map +1 -1
  81. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  82. package/dist/npm/src/Wallet/defaultFaucets.d.ts +1 -2
  83. package/dist/npm/src/Wallet/defaultFaucets.d.ts.map +1 -1
  84. package/dist/npm/src/Wallet/defaultFaucets.js +0 -5
  85. package/dist/npm/src/Wallet/defaultFaucets.js.map +1 -1
  86. package/dist/npm/src/Wallet/index.d.ts.map +1 -1
  87. package/dist/npm/src/Wallet/index.js +2 -8
  88. package/dist/npm/src/Wallet/index.js.map +1 -1
  89. package/dist/npm/src/client/RequestManager.d.ts.map +1 -1
  90. package/dist/npm/src/client/RequestManager.js +3 -3
  91. package/dist/npm/src/client/RequestManager.js.map +1 -1
  92. package/dist/npm/src/client/connection.d.ts.map +1 -1
  93. package/dist/npm/src/client/connection.js.map +1 -1
  94. package/dist/npm/src/client/index.d.ts.map +1 -1
  95. package/dist/npm/src/client/index.js +8 -5
  96. package/dist/npm/src/client/index.js.map +1 -1
  97. package/dist/npm/src/models/ledger/Credential.d.ts +2 -2
  98. package/dist/npm/src/models/ledger/Credential.d.ts.map +1 -1
  99. package/dist/npm/src/models/ledger/Escrow.d.ts +2 -0
  100. package/dist/npm/src/models/ledger/Escrow.d.ts.map +1 -1
  101. package/dist/npm/src/models/ledger/FeeSettings.d.ts +2 -0
  102. package/dist/npm/src/models/ledger/FeeSettings.d.ts.map +1 -1
  103. package/dist/npm/src/models/methods/baseMethod.d.ts +0 -1
  104. package/dist/npm/src/models/methods/baseMethod.d.ts.map +1 -1
  105. package/dist/npm/src/models/transactions/AMMClawback.d.ts +2 -2
  106. package/dist/npm/src/models/transactions/AMMClawback.d.ts.map +1 -1
  107. package/dist/npm/src/models/transactions/AMMDeposit.d.ts +2 -2
  108. package/dist/npm/src/models/transactions/AMMDeposit.d.ts.map +1 -1
  109. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts +2 -2
  110. package/dist/npm/src/models/transactions/AMMWithdraw.d.ts.map +1 -1
  111. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +2 -2
  112. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -1
  113. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +2 -2
  114. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -1
  115. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -1
  116. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +2 -2
  117. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -1
  118. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts +2 -2
  119. package/dist/npm/src/models/transactions/NFTokenCreateOffer.d.ts.map +1 -1
  120. package/dist/npm/src/models/transactions/NFTokenMint.d.ts +2 -2
  121. package/dist/npm/src/models/transactions/NFTokenMint.d.ts.map +1 -1
  122. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts +2 -2
  123. package/dist/npm/src/models/transactions/XChainModifyBridge.d.ts.map +1 -1
  124. package/dist/npm/src/models/transactions/accountSet.d.ts +2 -2
  125. package/dist/npm/src/models/transactions/accountSet.d.ts.map +1 -1
  126. package/dist/npm/src/models/transactions/accountSet.js.map +1 -1
  127. package/dist/npm/src/models/transactions/common.d.ts +4 -16
  128. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  129. package/dist/npm/src/models/transactions/common.js +10 -28
  130. package/dist/npm/src/models/transactions/common.js.map +1 -1
  131. package/dist/npm/src/models/transactions/escrowCreate.d.ts +2 -0
  132. package/dist/npm/src/models/transactions/escrowCreate.d.ts.map +1 -1
  133. package/dist/npm/src/models/transactions/escrowCreate.js +4 -2
  134. package/dist/npm/src/models/transactions/escrowCreate.js.map +1 -1
  135. package/dist/npm/src/models/transactions/index.d.ts +2 -3
  136. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  137. package/dist/npm/src/models/transactions/index.js.map +1 -1
  138. package/dist/npm/src/models/transactions/metadata.d.ts +0 -1
  139. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  140. package/dist/npm/src/models/transactions/offerCreate.d.ts +2 -2
  141. package/dist/npm/src/models/transactions/offerCreate.d.ts.map +1 -1
  142. package/dist/npm/src/models/transactions/oracleSet.d.ts.map +1 -1
  143. package/dist/npm/src/models/transactions/oracleSet.js +17 -3
  144. package/dist/npm/src/models/transactions/oracleSet.js.map +1 -1
  145. package/dist/npm/src/models/transactions/payment.d.ts +2 -2
  146. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  147. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts +2 -2
  148. package/dist/npm/src/models/transactions/paymentChannelClaim.d.ts.map +1 -1
  149. package/dist/npm/src/models/transactions/paymentChannelClaim.js.map +1 -1
  150. package/dist/npm/src/models/transactions/transaction.d.ts +1 -2
  151. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  152. package/dist/npm/src/models/transactions/transaction.js +0 -7
  153. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  154. package/dist/npm/src/models/transactions/trustSet.d.ts +2 -2
  155. package/dist/npm/src/models/transactions/trustSet.d.ts.map +1 -1
  156. package/dist/npm/src/models/utils/flags.d.ts +0 -1
  157. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  158. package/dist/npm/src/models/utils/flags.js +2 -22
  159. package/dist/npm/src/models/utils/flags.js.map +1 -1
  160. package/dist/npm/src/sugar/autofill.d.ts +1 -3
  161. package/dist/npm/src/sugar/autofill.d.ts.map +1 -1
  162. package/dist/npm/src/sugar/autofill.js +8 -100
  163. package/dist/npm/src/sugar/autofill.js.map +1 -1
  164. package/dist/npm/src/sugar/submit.d.ts.map +1 -1
  165. package/dist/npm/src/sugar/submit.js.map +1 -1
  166. package/dist/npm/src/utils/hashes/hashLedger.d.ts.map +1 -1
  167. package/dist/npm/src/utils/hashes/hashLedger.js +1 -4
  168. package/dist/npm/src/utils/hashes/hashLedger.js.map +1 -1
  169. package/dist/npm/sugar/autofill.d.ts +1 -3
  170. package/dist/npm/sugar/autofill.d.ts.map +1 -1
  171. package/dist/npm/sugar/autofill.js +8 -100
  172. package/dist/npm/sugar/autofill.js.map +1 -1
  173. package/dist/npm/sugar/submit.d.ts.map +1 -1
  174. package/dist/npm/sugar/submit.js.map +1 -1
  175. package/dist/npm/utils/hashes/hashLedger.d.ts.map +1 -1
  176. package/dist/npm/utils/hashes/hashLedger.js +1 -4
  177. package/dist/npm/utils/hashes/hashLedger.js.map +1 -1
  178. package/package.json +5 -8
  179. package/src/Wallet/defaultFaucets.ts +0 -6
  180. package/src/Wallet/index.ts +3 -9
  181. package/src/client/RequestManager.ts +1 -4
  182. package/src/client/connection.ts +1 -0
  183. package/src/client/index.ts +28 -7
  184. package/src/models/ledger/Credential.ts +2 -2
  185. package/src/models/ledger/Escrow.ts +4 -0
  186. package/src/models/ledger/FeeSettings.ts +4 -0
  187. package/src/models/methods/baseMethod.ts +0 -1
  188. package/src/models/transactions/AMMClawback.ts +2 -2
  189. package/src/models/transactions/AMMDeposit.ts +2 -2
  190. package/src/models/transactions/AMMWithdraw.ts +2 -2
  191. package/src/models/transactions/MPTokenAuthorize.ts +2 -2
  192. package/src/models/transactions/MPTokenIssuanceCreate.ts +2 -3
  193. package/src/models/transactions/MPTokenIssuanceSet.ts +2 -2
  194. package/src/models/transactions/NFTokenCreateOffer.ts +2 -2
  195. package/src/models/transactions/NFTokenMint.ts +2 -2
  196. package/src/models/transactions/XChainModifyBridge.ts +2 -2
  197. package/src/models/transactions/accountSet.ts +1 -2
  198. package/src/models/transactions/common.ts +22 -62
  199. package/src/models/transactions/escrowCreate.ts +10 -2
  200. package/src/models/transactions/index.ts +3 -3
  201. package/src/models/transactions/metadata.ts +0 -2
  202. package/src/models/transactions/offerCreate.ts +2 -2
  203. package/src/models/transactions/oracleSet.ts +30 -8
  204. package/src/models/transactions/payment.ts +2 -2
  205. package/src/models/transactions/paymentChannelClaim.ts +2 -3
  206. package/src/models/transactions/transaction.ts +0 -15
  207. package/src/models/transactions/trustSet.ts +2 -2
  208. package/src/models/utils/flags.ts +1 -30
  209. package/src/sugar/autofill.ts +15 -140
  210. package/src/sugar/submit.ts +2 -1
  211. package/src/utils/hashes/hashLedger.ts +2 -5
  212. package/build/xrpl-latest-min.js +0 -3
  213. package/build/xrpl-latest-min.js.map +0 -1
  214. package/dist/npm/Wallet/batchSigner.d.ts +0 -8
  215. package/dist/npm/Wallet/batchSigner.d.ts.map +0 -1
  216. package/dist/npm/Wallet/batchSigner.js +0 -124
  217. package/dist/npm/Wallet/batchSigner.js.map +0 -1
  218. package/dist/npm/models/transactions/batch.d.ts +0 -39
  219. package/dist/npm/models/transactions/batch.d.ts.map +0 -1
  220. package/dist/npm/models/transactions/batch.js +0 -62
  221. package/dist/npm/models/transactions/batch.js.map +0 -1
  222. package/dist/npm/src/Wallet/batchSigner.d.ts +0 -8
  223. package/dist/npm/src/Wallet/batchSigner.d.ts.map +0 -1
  224. package/dist/npm/src/Wallet/batchSigner.js +0 -124
  225. package/dist/npm/src/Wallet/batchSigner.js.map +0 -1
  226. package/dist/npm/src/models/transactions/batch.d.ts +0 -39
  227. package/dist/npm/src/models/transactions/batch.d.ts.map +0 -1
  228. package/dist/npm/src/models/transactions/batch.js +0 -62
  229. package/dist/npm/src/models/transactions/batch.js.map +0 -1
  230. package/src/Wallet/batchSigner.ts +0 -222
  231. package/src/models/transactions/batch.ts +0 -147
@@ -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"}
@@ -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"}