xrp-tx 0.1.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 (229) hide show
  1. package/dist/errors.d.ts +20 -0
  2. package/dist/errors.d.ts.map +1 -0
  3. package/dist/errors.js +27 -0
  4. package/dist/errors.js.map +1 -0
  5. package/dist/groups/account.d.ts +15 -0
  6. package/dist/groups/account.d.ts.map +1 -0
  7. package/dist/groups/account.js +17 -0
  8. package/dist/groups/account.js.map +1 -0
  9. package/dist/groups/amm.d.ts +7 -0
  10. package/dist/groups/amm.d.ts.map +1 -0
  11. package/dist/groups/amm.js +7 -0
  12. package/dist/groups/amm.js.map +1 -0
  13. package/dist/groups/credential.d.ts +7 -0
  14. package/dist/groups/credential.d.ts.map +1 -0
  15. package/dist/groups/credential.js +7 -0
  16. package/dist/groups/credential.js.map +1 -0
  17. package/dist/groups/loan.d.ts +7 -0
  18. package/dist/groups/loan.d.ts.map +1 -0
  19. package/dist/groups/loan.js +7 -0
  20. package/dist/groups/loan.js.map +1 -0
  21. package/dist/groups/offer.d.ts +9 -0
  22. package/dist/groups/offer.d.ts.map +1 -0
  23. package/dist/groups/offer.js +9 -0
  24. package/dist/groups/offer.js.map +1 -0
  25. package/dist/groups/oracle.d.ts +7 -0
  26. package/dist/groups/oracle.d.ts.map +1 -0
  27. package/dist/groups/oracle.js +7 -0
  28. package/dist/groups/oracle.js.map +1 -0
  29. package/dist/groups/payment.d.ts +27 -0
  30. package/dist/groups/payment.d.ts.map +1 -0
  31. package/dist/groups/payment.js +23 -0
  32. package/dist/groups/payment.js.map +1 -0
  33. package/dist/groups/permissioned-domain.d.ts +7 -0
  34. package/dist/groups/permissioned-domain.d.ts.map +1 -0
  35. package/dist/groups/permissioned-domain.js +7 -0
  36. package/dist/groups/permissioned-domain.js.map +1 -0
  37. package/dist/groups/token.d.ts +15 -0
  38. package/dist/groups/token.d.ts.map +1 -0
  39. package/dist/groups/token.js +10 -0
  40. package/dist/groups/token.js.map +1 -0
  41. package/dist/groups/vault.d.ts +7 -0
  42. package/dist/groups/vault.d.ts.map +1 -0
  43. package/dist/groups/vault.js +7 -0
  44. package/dist/groups/vault.js.map +1 -0
  45. package/dist/groups/xchain.d.ts +7 -0
  46. package/dist/groups/xchain.d.ts.map +1 -0
  47. package/dist/groups/xchain.js +7 -0
  48. package/dist/groups/xchain.js.map +1 -0
  49. package/dist/index.d.ts +86 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +63 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/registry.d.ts +17 -0
  54. package/dist/registry.d.ts.map +1 -0
  55. package/dist/registry.js +95 -0
  56. package/dist/registry.js.map +1 -0
  57. package/dist/transaction.d.ts +179 -0
  58. package/dist/transaction.d.ts.map +1 -0
  59. package/dist/transaction.js +205 -0
  60. package/dist/transaction.js.map +1 -0
  61. package/dist/transactions/account-delete.d.ts +20 -0
  62. package/dist/transactions/account-delete.d.ts.map +1 -0
  63. package/dist/transactions/account-delete.js +24 -0
  64. package/dist/transactions/account-delete.js.map +1 -0
  65. package/dist/transactions/account-set.d.ts +34 -0
  66. package/dist/transactions/account-set.d.ts.map +1 -0
  67. package/dist/transactions/account-set.js +59 -0
  68. package/dist/transactions/account-set.js.map +1 -0
  69. package/dist/transactions/check-cancel.d.ts +16 -0
  70. package/dist/transactions/check-cancel.d.ts.map +1 -0
  71. package/dist/transactions/check-cancel.js +18 -0
  72. package/dist/transactions/check-cancel.js.map +1 -0
  73. package/dist/transactions/check-cash.d.ts +21 -0
  74. package/dist/transactions/check-cash.d.ts.map +1 -0
  75. package/dist/transactions/check-cash.js +29 -0
  76. package/dist/transactions/check-cash.js.map +1 -0
  77. package/dist/transactions/check-create.d.ts +27 -0
  78. package/dist/transactions/check-create.d.ts.map +1 -0
  79. package/dist/transactions/check-create.js +35 -0
  80. package/dist/transactions/check-create.js.map +1 -0
  81. package/dist/transactions/clawback.d.ts +20 -0
  82. package/dist/transactions/clawback.d.ts.map +1 -0
  83. package/dist/transactions/clawback.js +20 -0
  84. package/dist/transactions/clawback.js.map +1 -0
  85. package/dist/transactions/delegate-set.d.ts +18 -0
  86. package/dist/transactions/delegate-set.d.ts.map +1 -0
  87. package/dist/transactions/delegate-set.js +22 -0
  88. package/dist/transactions/delegate-set.js.map +1 -0
  89. package/dist/transactions/deposit-preauth.d.ts +18 -0
  90. package/dist/transactions/deposit-preauth.d.ts.map +1 -0
  91. package/dist/transactions/deposit-preauth.js +26 -0
  92. package/dist/transactions/deposit-preauth.js.map +1 -0
  93. package/dist/transactions/did-delete.d.ts +13 -0
  94. package/dist/transactions/did-delete.d.ts.map +1 -0
  95. package/dist/transactions/did-delete.js +9 -0
  96. package/dist/transactions/did-delete.js.map +1 -0
  97. package/dist/transactions/did-set.d.ts +20 -0
  98. package/dist/transactions/did-set.d.ts.map +1 -0
  99. package/dist/transactions/did-set.js +24 -0
  100. package/dist/transactions/did-set.js.map +1 -0
  101. package/dist/transactions/escrow-cancel.d.ts +18 -0
  102. package/dist/transactions/escrow-cancel.d.ts.map +1 -0
  103. package/dist/transactions/escrow-cancel.js +22 -0
  104. package/dist/transactions/escrow-cancel.js.map +1 -0
  105. package/dist/transactions/escrow-create.d.ts +29 -0
  106. package/dist/transactions/escrow-create.d.ts.map +1 -0
  107. package/dist/transactions/escrow-create.js +40 -0
  108. package/dist/transactions/escrow-create.js.map +1 -0
  109. package/dist/transactions/escrow-finish.d.ts +22 -0
  110. package/dist/transactions/escrow-finish.d.ts.map +1 -0
  111. package/dist/transactions/escrow-finish.js +29 -0
  112. package/dist/transactions/escrow-finish.js.map +1 -0
  113. package/dist/transactions/mptoken-authorize.d.ts +22 -0
  114. package/dist/transactions/mptoken-authorize.d.ts.map +1 -0
  115. package/dist/transactions/mptoken-authorize.js +24 -0
  116. package/dist/transactions/mptoken-authorize.js.map +1 -0
  117. package/dist/transactions/mptoken-issuance-create.d.ts +23 -0
  118. package/dist/transactions/mptoken-issuance-create.d.ts.map +1 -0
  119. package/dist/transactions/mptoken-issuance-create.js +29 -0
  120. package/dist/transactions/mptoken-issuance-create.js.map +1 -0
  121. package/dist/transactions/mptoken-issuance-destroy.d.ts +17 -0
  122. package/dist/transactions/mptoken-issuance-destroy.d.ts.map +1 -0
  123. package/dist/transactions/mptoken-issuance-destroy.js +19 -0
  124. package/dist/transactions/mptoken-issuance-destroy.js.map +1 -0
  125. package/dist/transactions/mptoken-issuance-set.d.ts +19 -0
  126. package/dist/transactions/mptoken-issuance-set.d.ts.map +1 -0
  127. package/dist/transactions/mptoken-issuance-set.js +24 -0
  128. package/dist/transactions/mptoken-issuance-set.js.map +1 -0
  129. package/dist/transactions/nftoken-accept-offer.d.ts +22 -0
  130. package/dist/transactions/nftoken-accept-offer.d.ts.map +1 -0
  131. package/dist/transactions/nftoken-accept-offer.js +28 -0
  132. package/dist/transactions/nftoken-accept-offer.js.map +1 -0
  133. package/dist/transactions/nftoken-burn.d.ts +19 -0
  134. package/dist/transactions/nftoken-burn.d.ts.map +1 -0
  135. package/dist/transactions/nftoken-burn.js +24 -0
  136. package/dist/transactions/nftoken-burn.js.map +1 -0
  137. package/dist/transactions/nftoken-cancel-offer.d.ts +17 -0
  138. package/dist/transactions/nftoken-cancel-offer.d.ts.map +1 -0
  139. package/dist/transactions/nftoken-cancel-offer.js +21 -0
  140. package/dist/transactions/nftoken-cancel-offer.js.map +1 -0
  141. package/dist/transactions/nftoken-create-offer.d.ts +29 -0
  142. package/dist/transactions/nftoken-create-offer.d.ts.map +1 -0
  143. package/dist/transactions/nftoken-create-offer.js +34 -0
  144. package/dist/transactions/nftoken-create-offer.js.map +1 -0
  145. package/dist/transactions/nftoken-mint.d.ts +26 -0
  146. package/dist/transactions/nftoken-mint.d.ts.map +1 -0
  147. package/dist/transactions/nftoken-mint.js +34 -0
  148. package/dist/transactions/nftoken-mint.js.map +1 -0
  149. package/dist/transactions/nftoken-modify.d.ts +21 -0
  150. package/dist/transactions/nftoken-modify.d.ts.map +1 -0
  151. package/dist/transactions/nftoken-modify.js +27 -0
  152. package/dist/transactions/nftoken-modify.js.map +1 -0
  153. package/dist/transactions/offer-cancel.d.ts +16 -0
  154. package/dist/transactions/offer-cancel.d.ts.map +1 -0
  155. package/dist/transactions/offer-cancel.js +19 -0
  156. package/dist/transactions/offer-cancel.js.map +1 -0
  157. package/dist/transactions/offer-create.d.ts +29 -0
  158. package/dist/transactions/offer-create.d.ts.map +1 -0
  159. package/dist/transactions/offer-create.js +47 -0
  160. package/dist/transactions/offer-create.js.map +1 -0
  161. package/dist/transactions/payment-channel-claim.d.ts +28 -0
  162. package/dist/transactions/payment-channel-claim.d.ts.map +1 -0
  163. package/dist/transactions/payment-channel-claim.js +31 -0
  164. package/dist/transactions/payment-channel-claim.js.map +1 -0
  165. package/dist/transactions/payment-channel-create.d.ts +29 -0
  166. package/dist/transactions/payment-channel-create.d.ts.map +1 -0
  167. package/dist/transactions/payment-channel-create.js +40 -0
  168. package/dist/transactions/payment-channel-create.js.map +1 -0
  169. package/dist/transactions/payment-channel-fund.d.ts +21 -0
  170. package/dist/transactions/payment-channel-fund.d.ts.map +1 -0
  171. package/dist/transactions/payment-channel-fund.js +26 -0
  172. package/dist/transactions/payment-channel-fund.js.map +1 -0
  173. package/dist/transactions/payment.d.ts +42 -0
  174. package/dist/transactions/payment.d.ts.map +1 -0
  175. package/dist/transactions/payment.js +66 -0
  176. package/dist/transactions/payment.js.map +1 -0
  177. package/dist/transactions/set-regular-key.d.ts +16 -0
  178. package/dist/transactions/set-regular-key.d.ts.map +1 -0
  179. package/dist/transactions/set-regular-key.js +19 -0
  180. package/dist/transactions/set-regular-key.js.map +1 -0
  181. package/dist/transactions/signer-list-set.d.ts +19 -0
  182. package/dist/transactions/signer-list-set.d.ts.map +1 -0
  183. package/dist/transactions/signer-list-set.js +35 -0
  184. package/dist/transactions/signer-list-set.js.map +1 -0
  185. package/dist/transactions/ticket-create.d.ts +16 -0
  186. package/dist/transactions/ticket-create.d.ts.map +1 -0
  187. package/dist/transactions/ticket-create.js +18 -0
  188. package/dist/transactions/ticket-create.js.map +1 -0
  189. package/dist/transactions/trust-set.d.ts +25 -0
  190. package/dist/transactions/trust-set.d.ts.map +1 -0
  191. package/dist/transactions/trust-set.js +29 -0
  192. package/dist/transactions/trust-set.js.map +1 -0
  193. package/dist/types/amounts.d.ts +49 -0
  194. package/dist/types/amounts.d.ts.map +1 -0
  195. package/dist/types/amounts.js +8 -0
  196. package/dist/types/amounts.js.map +1 -0
  197. package/dist/types/base.d.ts +96 -0
  198. package/dist/types/base.d.ts.map +1 -0
  199. package/dist/types/base.js +2 -0
  200. package/dist/types/base.js.map +1 -0
  201. package/dist/types/common.d.ts +81 -0
  202. package/dist/types/common.d.ts.map +1 -0
  203. package/dist/types/common.js +5 -0
  204. package/dist/types/common.js.map +1 -0
  205. package/dist/types/flags.d.ts +180 -0
  206. package/dist/types/flags.d.ts.map +1 -0
  207. package/dist/types/flags.js +132 -0
  208. package/dist/types/flags.js.map +1 -0
  209. package/dist/types/index.d.ts +10 -0
  210. package/dist/types/index.d.ts.map +1 -0
  211. package/dist/types/index.js +2 -0
  212. package/dist/types/index.js.map +1 -0
  213. package/dist/types/transaction-types.d.ts +7 -0
  214. package/dist/types/transaction-types.d.ts.map +1 -0
  215. package/dist/types/transaction-types.js +2 -0
  216. package/dist/types/transaction-types.js.map +1 -0
  217. package/dist/validation/base.d.ts +8 -0
  218. package/dist/validation/base.d.ts.map +1 -0
  219. package/dist/validation/base.js +79 -0
  220. package/dist/validation/base.js.map +1 -0
  221. package/dist/validation/helpers.d.ts +42 -0
  222. package/dist/validation/helpers.d.ts.map +1 -0
  223. package/dist/validation/helpers.js +154 -0
  224. package/dist/validation/helpers.js.map +1 -0
  225. package/dist/validation/index.d.ts +3 -0
  226. package/dist/validation/index.d.ts.map +1 -0
  227. package/dist/validation/index.js +3 -0
  228. package/dist/validation/index.js.map +1 -0
  229. package/package.json +54 -0
@@ -0,0 +1,95 @@
1
+ import { Transaction, _setRegistry } from './transaction.js';
2
+ // ─── Concrete transaction imports ────────────────────────────────────
3
+ import { PaymentTx } from './transactions/payment.js';
4
+ import { AccountSetTx } from './transactions/account-set.js';
5
+ import { AccountDeleteTx } from './transactions/account-delete.js';
6
+ import { SetRegularKeyTx } from './transactions/set-regular-key.js';
7
+ import { SignerListSetTx } from './transactions/signer-list-set.js';
8
+ import { TrustSetTx } from './transactions/trust-set.js';
9
+ import { OfferCreateTx } from './transactions/offer-create.js';
10
+ import { OfferCancelTx } from './transactions/offer-cancel.js';
11
+ import { EscrowCreateTx } from './transactions/escrow-create.js';
12
+ import { EscrowFinishTx } from './transactions/escrow-finish.js';
13
+ import { EscrowCancelTx } from './transactions/escrow-cancel.js';
14
+ import { CheckCreateTx } from './transactions/check-create.js';
15
+ import { CheckCashTx } from './transactions/check-cash.js';
16
+ import { CheckCancelTx } from './transactions/check-cancel.js';
17
+ import { NFTokenMintTx } from './transactions/nftoken-mint.js';
18
+ import { NFTokenBurnTx } from './transactions/nftoken-burn.js';
19
+ import { NFTokenCreateOfferTx } from './transactions/nftoken-create-offer.js';
20
+ import { NFTokenCancelOfferTx } from './transactions/nftoken-cancel-offer.js';
21
+ import { NFTokenAcceptOfferTx } from './transactions/nftoken-accept-offer.js';
22
+ import { NFTokenModifyTx } from './transactions/nftoken-modify.js';
23
+ import { MPTokenIssuanceCreateTx } from './transactions/mptoken-issuance-create.js';
24
+ import { MPTokenIssuanceDestroyTx } from './transactions/mptoken-issuance-destroy.js';
25
+ import { MPTokenIssuanceSetTx } from './transactions/mptoken-issuance-set.js';
26
+ import { MPTokenAuthorizeTx } from './transactions/mptoken-authorize.js';
27
+ import { PaymentChannelCreateTx } from './transactions/payment-channel-create.js';
28
+ import { PaymentChannelFundTx } from './transactions/payment-channel-fund.js';
29
+ import { PaymentChannelClaimTx } from './transactions/payment-channel-claim.js';
30
+ import { TicketCreateTx } from './transactions/ticket-create.js';
31
+ import { DepositPreauthTx } from './transactions/deposit-preauth.js';
32
+ import { ClawbackTx } from './transactions/clawback.js';
33
+ import { DelegateSetTx } from './transactions/delegate-set.js';
34
+ import { DIDSetTx } from './transactions/did-set.js';
35
+ import { DIDDeleteTx } from './transactions/did-delete.js';
36
+ const registryMap = {
37
+ // Account management
38
+ AccountSet: AccountSetTx,
39
+ AccountDelete: AccountDeleteTx,
40
+ SetRegularKey: SetRegularKeyTx,
41
+ SignerListSet: SignerListSetTx,
42
+ DelegateSet: DelegateSetTx,
43
+ DepositPreauth: DepositPreauthTx,
44
+ TicketCreate: TicketCreateTx,
45
+ Clawback: ClawbackTx,
46
+ // Payments & value transfer
47
+ Payment: PaymentTx,
48
+ CheckCreate: CheckCreateTx,
49
+ CheckCash: CheckCashTx,
50
+ CheckCancel: CheckCancelTx,
51
+ EscrowCreate: EscrowCreateTx,
52
+ EscrowFinish: EscrowFinishTx,
53
+ EscrowCancel: EscrowCancelTx,
54
+ PaymentChannelCreate: PaymentChannelCreateTx,
55
+ PaymentChannelFund: PaymentChannelFundTx,
56
+ PaymentChannelClaim: PaymentChannelClaimTx,
57
+ // DEX offers
58
+ OfferCreate: OfferCreateTx,
59
+ OfferCancel: OfferCancelTx,
60
+ // Trust lines
61
+ TrustSet: TrustSetTx,
62
+ // NFTokens
63
+ NFTokenMint: NFTokenMintTx,
64
+ NFTokenBurn: NFTokenBurnTx,
65
+ NFTokenCreateOffer: NFTokenCreateOfferTx,
66
+ NFTokenCancelOffer: NFTokenCancelOfferTx,
67
+ NFTokenAcceptOffer: NFTokenAcceptOfferTx,
68
+ NFTokenModify: NFTokenModifyTx,
69
+ // Multi-Purpose Tokens
70
+ MPTokenIssuanceCreate: MPTokenIssuanceCreateTx,
71
+ MPTokenIssuanceDestroy: MPTokenIssuanceDestroyTx,
72
+ MPTokenIssuanceSet: MPTokenIssuanceSetTx,
73
+ MPTokenAuthorize: MPTokenAuthorizeTx,
74
+ // DID
75
+ DIDSet: DIDSetTx,
76
+ DIDDelete: DIDDeleteTx,
77
+ };
78
+ // ─── Registry API ────────────────────────────────────────────────────
79
+ export class TransactionRegistry {
80
+ static get(type) {
81
+ return registryMap[type];
82
+ }
83
+ static register(type, ctor) {
84
+ registryMap[type] = ctor;
85
+ }
86
+ static has(type) {
87
+ return type in registryMap;
88
+ }
89
+ static types() {
90
+ return Object.keys(registryMap);
91
+ }
92
+ }
93
+ // ─── Wire up synchronous registry access on Transaction base ─────────
94
+ _setRegistry(TransactionRegistry);
95
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Abstract Transaction base class — the primitive root of the hierarchy.
3
+ *
4
+ * Every XRPL transaction extends this class. It provides:
5
+ * - Common fields (Account, TransactionType, Fee, Sequence, etc.)
6
+ * - Inherited validation via the `validate()` chain
7
+ * - Immutable `with()` for creating modified copies
8
+ * - `toJSON()` for serialization to plain objects
9
+ * - Static factory methods for spawning concrete types
10
+ */
11
+ import type { TransactionType } from './types/transaction-types.js';
12
+ import type { BaseTransactionFields } from './types/base.js';
13
+ import type { Memo, Signer } from './types/common.js';
14
+ import type { GlobalFlagsInterface } from './types/flags.js';
15
+ type RegistryRef = {
16
+ get(type: TransactionType): (new (props: Record<string, unknown>) => Transaction) | undefined;
17
+ };
18
+ /**
19
+ * @internal Called by registry.ts during module initialization
20
+ * to provide synchronous access to the registry.
21
+ */
22
+ export declare function _setRegistry(registry: RegistryRef): void;
23
+ /**
24
+ * @internal Helper to assign only defined properties onto a target.
25
+ * This avoids assigning `undefined` which violates `exactOptionalPropertyTypes`.
26
+ */
27
+ export declare function assignDefined<T extends object>(target: T, source: Record<string, unknown>, keys: string[]): void;
28
+ /**
29
+ * Abstract base class for all XRPL transactions.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const payment = Transaction.payment({
34
+ * Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh',
35
+ * Amount: '1000000',
36
+ * Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe',
37
+ * });
38
+ *
39
+ * payment.validate();
40
+ * const json = payment.toJSON();
41
+ * ```
42
+ */
43
+ export declare abstract class Transaction {
44
+ /** The unique address of the transaction sender. */
45
+ readonly Account: string;
46
+ /** The type of transaction. */
47
+ readonly TransactionType: TransactionType;
48
+ /** XRP in drops to destroy as a network fee. */
49
+ readonly Fee?: string;
50
+ /** The sequence number of the sending account. */
51
+ readonly Sequence?: number;
52
+ /** Hash of a previous transaction for ordering. */
53
+ readonly AccountTxnID?: string;
54
+ /** Bit-flags for this transaction. */
55
+ readonly Flags?: number | GlobalFlagsInterface;
56
+ /** Maximum ledger index for this transaction. */
57
+ readonly LastLedgerSequence?: number;
58
+ /** Additional arbitrary memo data. */
59
+ readonly Memos?: Memo[];
60
+ /** Multi-signature entries. */
61
+ readonly Signers?: Signer[];
62
+ /** Source tag for identifying the sender. */
63
+ readonly SourceTag?: number;
64
+ /** Public key of the signer. */
65
+ readonly SigningPubKey?: string;
66
+ /** Ticket sequence number (alternative to Sequence). */
67
+ readonly TicketSequence?: number;
68
+ /** Transaction signature. */
69
+ readonly TxnSignature?: string;
70
+ /** Network ID. */
71
+ readonly NetworkID?: number;
72
+ /** Delegate account. */
73
+ readonly Delegate?: string;
74
+ /**
75
+ * Protected constructor — concrete subclasses call this via `super()`.
76
+ * Only assigns properties that are actually defined in the input,
77
+ * which satisfies `exactOptionalPropertyTypes`.
78
+ */
79
+ protected constructor(props: BaseTransactionFields);
80
+ /**
81
+ * Validate the common base transaction fields.
82
+ * Subclasses should call `super.validate()` then add their own checks.
83
+ *
84
+ * @throws ValidationError when fields are missing or malformed.
85
+ */
86
+ validate(): void;
87
+ /**
88
+ * Serialize this transaction to a plain JSON-compatible object.
89
+ * The output matches the exact shape xrpl.js expects.
90
+ *
91
+ * Strips `undefined` values for clean serialization.
92
+ */
93
+ toJSON(): Record<string, unknown>;
94
+ /**
95
+ * Create a new transaction instance with the given fields overridden.
96
+ * The original instance is not modified.
97
+ *
98
+ * @param overrides - Fields to override on the new instance.
99
+ * @returns A new transaction of the same concrete type.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * const withFee = payment.with({ Fee: '12', Sequence: 42 });
104
+ * ```
105
+ */
106
+ with(overrides: Partial<BaseTransactionFields>): this;
107
+ /**
108
+ * Generic factory — create any transaction by type string.
109
+ *
110
+ * @param type - The TransactionType string (e.g. 'Payment', 'OfferCreate')
111
+ * @param props - The transaction fields (TransactionType is injected automatically)
112
+ * @returns A concrete Transaction subclass instance.
113
+ * @throws TransactionError if the type is unknown.
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * const tx = Transaction.create('Payment', {
118
+ * Account: 'r...',
119
+ * Amount: '1000000',
120
+ * Destination: 'r...',
121
+ * });
122
+ * ```
123
+ */
124
+ static create(type: TransactionType, props: Omit<Record<string, unknown>, 'TransactionType'>): Transaction;
125
+ /**
126
+ * Create a Payment transaction.
127
+ */
128
+ static payment(props: Omit<Record<string, unknown>, 'TransactionType'> & {
129
+ Account: string;
130
+ Amount: unknown;
131
+ Destination: string;
132
+ }): Transaction;
133
+ /**
134
+ * Create an AccountSet transaction.
135
+ */
136
+ static accountSet(props: Omit<Record<string, unknown>, 'TransactionType'> & {
137
+ Account: string;
138
+ }): Transaction;
139
+ /**
140
+ * Create a TrustSet transaction.
141
+ */
142
+ static trustSet(props: Omit<Record<string, unknown>, 'TransactionType'> & {
143
+ Account: string;
144
+ LimitAmount: unknown;
145
+ }): Transaction;
146
+ /**
147
+ * Create an OfferCreate transaction.
148
+ */
149
+ static offerCreate(props: Omit<Record<string, unknown>, 'TransactionType'> & {
150
+ Account: string;
151
+ TakerGets: unknown;
152
+ TakerPays: unknown;
153
+ }): Transaction;
154
+ /**
155
+ * Create an EscrowCreate transaction.
156
+ */
157
+ static escrowCreate(props: Omit<Record<string, unknown>, 'TransactionType'> & {
158
+ Account: string;
159
+ Amount: unknown;
160
+ Destination: string;
161
+ }): Transaction;
162
+ /**
163
+ * Create a CheckCreate transaction.
164
+ */
165
+ static checkCreate(props: Omit<Record<string, unknown>, 'TransactionType'> & {
166
+ Account: string;
167
+ Destination: string;
168
+ SendMax: unknown;
169
+ }): Transaction;
170
+ /**
171
+ * Create an NFTokenMint transaction.
172
+ */
173
+ static nfTokenMint(props: Omit<Record<string, unknown>, 'TransactionType'> & {
174
+ Account: string;
175
+ NFTokenTaxon: number;
176
+ }): Transaction;
177
+ }
178
+ export {};
179
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,205 @@
1
+ import { validateBaseTransaction } from './validation/base.js';
2
+ import { TransactionError } from './errors.js';
3
+ let _syncRegistry;
4
+ /**
5
+ * @internal Called by registry.ts during module initialization
6
+ * to provide synchronous access to the registry.
7
+ */
8
+ export function _setRegistry(registry) {
9
+ _syncRegistry = registry;
10
+ }
11
+ /**
12
+ * @internal Helper to assign only defined properties onto a target.
13
+ * This avoids assigning `undefined` which violates `exactOptionalPropertyTypes`.
14
+ */
15
+ export function assignDefined(target, source, keys) {
16
+ for (const key of keys) {
17
+ if (source[key] !== undefined) {
18
+ target[key] = source[key];
19
+ }
20
+ }
21
+ }
22
+ /** Base transaction optional field names (used by assignDefined). */
23
+ const BASE_OPTIONAL_FIELDS = [
24
+ 'Fee', 'Sequence', 'AccountTxnID', 'Flags', 'LastLedgerSequence',
25
+ 'Memos', 'Signers', 'SourceTag', 'SigningPubKey', 'TicketSequence',
26
+ 'TxnSignature', 'NetworkID', 'Delegate',
27
+ ];
28
+ /**
29
+ * Abstract base class for all XRPL transactions.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const payment = Transaction.payment({
34
+ * Account: 'rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh',
35
+ * Amount: '1000000',
36
+ * Destination: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe',
37
+ * });
38
+ *
39
+ * payment.validate();
40
+ * const json = payment.toJSON();
41
+ * ```
42
+ */
43
+ export class Transaction {
44
+ /** The unique address of the transaction sender. */
45
+ Account;
46
+ /** The type of transaction. */
47
+ TransactionType;
48
+ /** XRP in drops to destroy as a network fee. */
49
+ Fee;
50
+ /** The sequence number of the sending account. */
51
+ Sequence;
52
+ /** Hash of a previous transaction for ordering. */
53
+ AccountTxnID;
54
+ /** Bit-flags for this transaction. */
55
+ Flags;
56
+ /** Maximum ledger index for this transaction. */
57
+ LastLedgerSequence;
58
+ /** Additional arbitrary memo data. */
59
+ Memos;
60
+ /** Multi-signature entries. */
61
+ Signers;
62
+ /** Source tag for identifying the sender. */
63
+ SourceTag;
64
+ /** Public key of the signer. */
65
+ SigningPubKey;
66
+ /** Ticket sequence number (alternative to Sequence). */
67
+ TicketSequence;
68
+ /** Transaction signature. */
69
+ TxnSignature;
70
+ /** Network ID. */
71
+ NetworkID;
72
+ /** Delegate account. */
73
+ Delegate;
74
+ /**
75
+ * Protected constructor — concrete subclasses call this via `super()`.
76
+ * Only assigns properties that are actually defined in the input,
77
+ * which satisfies `exactOptionalPropertyTypes`.
78
+ */
79
+ constructor(props) {
80
+ const p = props;
81
+ this.Account = props.Account;
82
+ this.TransactionType = props.TransactionType;
83
+ assignDefined(this, p, BASE_OPTIONAL_FIELDS);
84
+ }
85
+ // ─── Validation ──────────────────────────────────────────────────
86
+ /**
87
+ * Validate the common base transaction fields.
88
+ * Subclasses should call `super.validate()` then add their own checks.
89
+ *
90
+ * @throws ValidationError when fields are missing or malformed.
91
+ */
92
+ validate() {
93
+ validateBaseTransaction(this.toJSON());
94
+ }
95
+ // ─── Serialization ───────────────────────────────────────────────
96
+ /**
97
+ * Serialize this transaction to a plain JSON-compatible object.
98
+ * The output matches the exact shape xrpl.js expects.
99
+ *
100
+ * Strips `undefined` values for clean serialization.
101
+ */
102
+ toJSON() {
103
+ const json = {};
104
+ for (const key of Object.keys(this)) {
105
+ const value = this[key];
106
+ if (value !== undefined) {
107
+ json[key] = value;
108
+ }
109
+ }
110
+ return json;
111
+ }
112
+ // ─── Immutable updates ───────────────────────────────────────────
113
+ /**
114
+ * Create a new transaction instance with the given fields overridden.
115
+ * The original instance is not modified.
116
+ *
117
+ * @param overrides - Fields to override on the new instance.
118
+ * @returns A new transaction of the same concrete type.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * const withFee = payment.with({ Fee: '12', Sequence: 42 });
123
+ * ```
124
+ */
125
+ with(overrides) {
126
+ const merged = { ...this.toJSON(), ...overrides };
127
+ // Use the constructor of the concrete subclass
128
+ const Ctor = this.constructor;
129
+ return new Ctor(merged);
130
+ }
131
+ // ─── Static factory methods ──────────────────────────────────────
132
+ /**
133
+ * Generic factory — create any transaction by type string.
134
+ *
135
+ * @param type - The TransactionType string (e.g. 'Payment', 'OfferCreate')
136
+ * @param props - The transaction fields (TransactionType is injected automatically)
137
+ * @returns A concrete Transaction subclass instance.
138
+ * @throws TransactionError if the type is unknown.
139
+ *
140
+ * @example
141
+ * ```ts
142
+ * const tx = Transaction.create('Payment', {
143
+ * Account: 'r...',
144
+ * Amount: '1000000',
145
+ * Destination: 'r...',
146
+ * });
147
+ * ```
148
+ */
149
+ static create(type, props) {
150
+ if (!_syncRegistry) {
151
+ throw new TransactionError('Transaction registry not initialized. Import from the package entry point.');
152
+ }
153
+ const Ctor = _syncRegistry.get(type);
154
+ if (!Ctor) {
155
+ throw new TransactionError(`Unknown transaction type: ${type}`);
156
+ }
157
+ return new Ctor({ TransactionType: type, ...props });
158
+ }
159
+ // ─── Convenience factories (most common types) ───────────────────
160
+ // These provide type-safe shortcuts. Import types are kept inline
161
+ // to avoid circular dependency issues.
162
+ /**
163
+ * Create a Payment transaction.
164
+ */
165
+ static payment(props) {
166
+ return Transaction.create('Payment', props);
167
+ }
168
+ /**
169
+ * Create an AccountSet transaction.
170
+ */
171
+ static accountSet(props) {
172
+ return Transaction.create('AccountSet', props);
173
+ }
174
+ /**
175
+ * Create a TrustSet transaction.
176
+ */
177
+ static trustSet(props) {
178
+ return Transaction.create('TrustSet', props);
179
+ }
180
+ /**
181
+ * Create an OfferCreate transaction.
182
+ */
183
+ static offerCreate(props) {
184
+ return Transaction.create('OfferCreate', props);
185
+ }
186
+ /**
187
+ * Create an EscrowCreate transaction.
188
+ */
189
+ static escrowCreate(props) {
190
+ return Transaction.create('EscrowCreate', props);
191
+ }
192
+ /**
193
+ * Create a CheckCreate transaction.
194
+ */
195
+ static checkCreate(props) {
196
+ return Transaction.create('CheckCreate', props);
197
+ }
198
+ /**
199
+ * Create an NFTokenMint transaction.
200
+ */
201
+ static nfTokenMint(props) {
202
+ return Transaction.create('NFTokenMint', props);
203
+ }
204
+ }
205
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * AccountDelete transaction — delete an account from the XRP Ledger.
3
+ */
4
+ import type { BaseTransactionFields } from '../types/base.js';
5
+ import { AccountTransaction } from '../groups/account.js';
6
+ export interface AccountDeleteTxFields extends BaseTransactionFields {
7
+ readonly TransactionType: 'AccountDelete';
8
+ readonly Destination: string;
9
+ readonly DestinationTag?: number;
10
+ readonly CredentialIDs?: string[];
11
+ }
12
+ export declare class AccountDeleteTx extends AccountTransaction {
13
+ readonly TransactionType: "AccountDelete";
14
+ readonly Destination: string;
15
+ readonly DestinationTag?: number;
16
+ readonly CredentialIDs?: string[];
17
+ constructor(props: AccountDeleteTxFields | Record<string, unknown>);
18
+ validate(): void;
19
+ }
20
+ //# sourceMappingURL=account-delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-delete.d.ts","sourceRoot":"","sources":["../../src/transactions/account-delete.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK1D,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAkB,eAAe,EAAG,eAAe,CAAU;IAC7D,QAAQ,CAAC,WAAW,EAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;gBAEtB,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAOzD,QAAQ,IAAI,IAAI;CAO1B"}
@@ -0,0 +1,24 @@
1
+ import { AccountTransaction } from '../groups/account.js';
2
+ import { assignDefined } from '../transaction.js';
3
+ import { ValidationError } from '../errors.js';
4
+ import { isAccount, isNumber } from '../validation/helpers.js';
5
+ export class AccountDeleteTx extends AccountTransaction {
6
+ TransactionType = 'AccountDelete';
7
+ Destination;
8
+ DestinationTag;
9
+ CredentialIDs;
10
+ constructor(props) {
11
+ const p = props;
12
+ super({ ...p, TransactionType: 'AccountDelete' });
13
+ this.Destination = p['Destination'];
14
+ assignDefined(this, p, ['DestinationTag', 'CredentialIDs']);
15
+ }
16
+ validate() {
17
+ super.validate();
18
+ if (!isAccount(this.Destination))
19
+ throw new ValidationError('AccountDelete: invalid Destination');
20
+ if (this.DestinationTag !== undefined && !isNumber(this.DestinationTag))
21
+ throw new ValidationError('AccountDelete: DestinationTag must be a number');
22
+ }
23
+ }
24
+ //# sourceMappingURL=account-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-delete.js","sourceRoot":"","sources":["../../src/transactions/account-delete.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAS/D,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IACnC,eAAe,GAAG,eAAwB,CAAC;IACpD,WAAW,CAAU;IACrB,cAAc,CAAU;IACxB,aAAa,CAAY;IAElC,YAAY,KAAsD;QAChE,MAAM,CAAC,GAAG,KAAgC,CAAC;QAC3C,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,eAAe,EAAE,eAAe,EAA2B,CAAC,CAAC;QAC3E,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,aAAa,CAAW,CAAC;QAC9C,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC;IAC9D,CAAC;IAEQ,QAAQ;QACf,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC;YAC9B,MAAM,IAAI,eAAe,CAAC,oCAAoC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YACrE,MAAM,IAAI,eAAe,CAAC,gDAAgD,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * AccountSet transaction — modify properties of an account.
3
+ */
4
+ import type { BaseTransactionFields } from '../types/base.js';
5
+ import type { AccountSetFlagsInterface } from '../types/flags.js';
6
+ import { AccountSetAsfFlags } from '../types/flags.js';
7
+ import { AccountTransaction } from '../groups/account.js';
8
+ export interface AccountSetTxFields extends BaseTransactionFields {
9
+ readonly TransactionType: 'AccountSet';
10
+ readonly ClearFlag?: number;
11
+ readonly Domain?: string;
12
+ readonly EmailHash?: string;
13
+ readonly MessageKey?: string;
14
+ readonly SetFlag?: AccountSetAsfFlags;
15
+ readonly TransferRate?: number;
16
+ readonly TickSize?: number;
17
+ readonly NFTokenMinter?: string;
18
+ readonly Flags?: number | AccountSetFlagsInterface;
19
+ }
20
+ export declare class AccountSetTx extends AccountTransaction {
21
+ readonly TransactionType: "AccountSet";
22
+ readonly ClearFlag?: number;
23
+ readonly Domain?: string;
24
+ readonly EmailHash?: string;
25
+ readonly MessageKey?: string;
26
+ readonly SetFlag?: AccountSetAsfFlags;
27
+ readonly TransferRate?: number;
28
+ readonly TickSize?: number;
29
+ readonly NFTokenMinter?: string;
30
+ readonly Flags?: number | AccountSetFlagsInterface;
31
+ constructor(props: AccountSetTxFields | Record<string, unknown>);
32
+ validate(): void;
33
+ }
34
+ //# sourceMappingURL=account-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-set.d.ts","sourceRoot":"","sources":["../../src/transactions/account-set.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAQ1D,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,wBAAwB,CAAC;CACpD;AAOD,qBAAa,YAAa,SAAQ,kBAAkB;IAClD,SAAkB,eAAe,EAAG,YAAY,CAAU;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,SAAiB,KAAK,CAAC,EAAE,MAAM,GAAG,wBAAwB,CAAC;gBAE/C,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMtD,QAAQ,IAAI,IAAI;CA4B1B"}
@@ -0,0 +1,59 @@
1
+ import { AccountSetAsfFlags } from '../types/flags.js';
2
+ import { AccountTransaction } from '../groups/account.js';
3
+ import { assignDefined } from '../transaction.js';
4
+ import { ValidationError } from '../errors.js';
5
+ import { isAccount, isString, isNumber } from '../validation/helpers.js';
6
+ const MIN_TICK_SIZE = 3;
7
+ const MAX_TICK_SIZE = 15;
8
+ const ACCTSET_OPTIONAL = [
9
+ 'ClearFlag', 'Domain', 'EmailHash', 'MessageKey',
10
+ 'SetFlag', 'TransferRate', 'TickSize', 'NFTokenMinter', 'Flags',
11
+ ];
12
+ export class AccountSetTx extends AccountTransaction {
13
+ TransactionType = 'AccountSet';
14
+ ClearFlag;
15
+ Domain;
16
+ EmailHash;
17
+ MessageKey;
18
+ SetFlag;
19
+ TransferRate;
20
+ TickSize;
21
+ NFTokenMinter;
22
+ constructor(props) {
23
+ const p = props;
24
+ super({ ...p, TransactionType: 'AccountSet' });
25
+ assignDefined(this, p, ACCTSET_OPTIONAL);
26
+ }
27
+ validate() {
28
+ super.validate();
29
+ if (this.NFTokenMinter !== undefined && !isAccount(this.NFTokenMinter))
30
+ throw new ValidationError('AccountSet: invalid NFTokenMinter');
31
+ if (this.ClearFlag !== undefined) {
32
+ if (!isNumber(this.ClearFlag))
33
+ throw new ValidationError('AccountSet: invalid ClearFlag');
34
+ if (!Object.values(AccountSetAsfFlags).includes(this.ClearFlag))
35
+ throw new ValidationError('AccountSet: invalid ClearFlag');
36
+ }
37
+ if (this.Domain !== undefined && !isString(this.Domain))
38
+ throw new ValidationError('AccountSet: invalid Domain');
39
+ if (this.EmailHash !== undefined && !isString(this.EmailHash))
40
+ throw new ValidationError('AccountSet: invalid EmailHash');
41
+ if (this.MessageKey !== undefined && !isString(this.MessageKey))
42
+ throw new ValidationError('AccountSet: invalid MessageKey');
43
+ if (this.SetFlag !== undefined) {
44
+ if (!isNumber(this.SetFlag))
45
+ throw new ValidationError('AccountSet: invalid SetFlag');
46
+ if (!Object.values(AccountSetAsfFlags).includes(this.SetFlag))
47
+ throw new ValidationError('AccountSet: invalid SetFlag');
48
+ }
49
+ if (this.TransferRate !== undefined && !isNumber(this.TransferRate))
50
+ throw new ValidationError('AccountSet: invalid TransferRate');
51
+ if (this.TickSize !== undefined) {
52
+ if (!isNumber(this.TickSize))
53
+ throw new ValidationError('AccountSet: invalid TickSize');
54
+ if (this.TickSize !== 0 && (this.TickSize < MIN_TICK_SIZE || this.TickSize > MAX_TICK_SIZE))
55
+ throw new ValidationError('AccountSet: invalid TickSize');
56
+ }
57
+ }
58
+ }
59
+ //# sourceMappingURL=account-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-set.js","sourceRoot":"","sources":["../../src/transactions/account-set.ts"],"names":[],"mappings":"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"}