xrpl 4.0.0 → 4.0.1-mpt-beta

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 (173) 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 +358 -17
  4. package/build/xrpl-latest.js.map +1 -1
  5. package/dist/npm/client/partialPayment.d.ts.map +1 -1
  6. package/dist/npm/client/partialPayment.js +9 -0
  7. package/dist/npm/client/partialPayment.js.map +1 -1
  8. package/dist/npm/models/common/index.d.ts +4 -0
  9. package/dist/npm/models/common/index.d.ts.map +1 -1
  10. package/dist/npm/models/index.d.ts +1 -1
  11. package/dist/npm/models/index.d.ts.map +1 -1
  12. package/dist/npm/models/index.js +2 -1
  13. package/dist/npm/models/index.js.map +1 -1
  14. package/dist/npm/models/ledger/LedgerEntry.d.ts +1 -1
  15. package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
  16. package/dist/npm/models/ledger/MPToken.d.ts +11 -0
  17. package/dist/npm/models/ledger/MPToken.d.ts.map +1 -0
  18. package/dist/npm/models/ledger/MPToken.js +3 -0
  19. package/dist/npm/models/ledger/MPToken.js.map +1 -0
  20. package/dist/npm/models/ledger/MPTokenIssuance.d.ts +14 -0
  21. package/dist/npm/models/ledger/MPTokenIssuance.d.ts.map +1 -0
  22. package/dist/npm/models/ledger/MPTokenIssuance.js +3 -0
  23. package/dist/npm/models/ledger/MPTokenIssuance.js.map +1 -0
  24. package/dist/npm/models/ledger/index.d.ts +3 -1
  25. package/dist/npm/models/ledger/index.d.ts.map +1 -1
  26. package/dist/npm/models/ledger/index.js.map +1 -1
  27. package/dist/npm/models/methods/ledgerEntry.d.ts +5 -0
  28. package/dist/npm/models/methods/ledgerEntry.d.ts.map +1 -1
  29. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +15 -0
  30. package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -0
  31. package/dist/npm/models/transactions/MPTokenAuthorize.js +15 -0
  32. package/dist/npm/models/transactions/MPTokenAuthorize.js.map +1 -0
  33. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +31 -0
  34. package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -0
  35. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js +26 -0
  36. package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -0
  37. package/dist/npm/models/transactions/MPTokenIssuanceDestroy.d.ts +7 -0
  38. package/dist/npm/models/transactions/MPTokenIssuanceDestroy.d.ts.map +1 -0
  39. package/dist/npm/models/transactions/MPTokenIssuanceDestroy.js +10 -0
  40. package/dist/npm/models/transactions/MPTokenIssuanceDestroy.js.map +1 -0
  41. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +17 -0
  42. package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -0
  43. package/dist/npm/models/transactions/MPTokenIssuanceSet.js +22 -0
  44. package/dist/npm/models/transactions/MPTokenIssuanceSet.js.map +1 -0
  45. package/dist/npm/models/transactions/clawback.d.ts +3 -2
  46. package/dist/npm/models/transactions/clawback.d.ts.map +1 -1
  47. package/dist/npm/models/transactions/clawback.js +11 -1
  48. package/dist/npm/models/transactions/clawback.js.map +1 -1
  49. package/dist/npm/models/transactions/common.d.ts +2 -1
  50. package/dist/npm/models/transactions/common.d.ts.map +1 -1
  51. package/dist/npm/models/transactions/common.js +12 -2
  52. package/dist/npm/models/transactions/common.js.map +1 -1
  53. package/dist/npm/models/transactions/index.d.ts +5 -1
  54. package/dist/npm/models/transactions/index.d.ts.map +1 -1
  55. package/dist/npm/models/transactions/index.js +9 -1
  56. package/dist/npm/models/transactions/index.js.map +1 -1
  57. package/dist/npm/models/transactions/metadata.d.ts +5 -4
  58. package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
  59. package/dist/npm/models/transactions/metadata.js.map +1 -1
  60. package/dist/npm/models/transactions/payment.d.ts +4 -4
  61. package/dist/npm/models/transactions/payment.d.ts.map +1 -1
  62. package/dist/npm/models/transactions/transaction.d.ts +5 -1
  63. package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
  64. package/dist/npm/models/transactions/transaction.js +16 -0
  65. package/dist/npm/models/transactions/transaction.js.map +1 -1
  66. package/dist/npm/models/utils/flags.d.ts +1 -0
  67. package/dist/npm/models/utils/flags.d.ts.map +1 -1
  68. package/dist/npm/models/utils/flags.js +23 -1
  69. package/dist/npm/models/utils/flags.js.map +1 -1
  70. package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
  71. package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
  72. package/dist/npm/src/client/partialPayment.js +9 -0
  73. package/dist/npm/src/client/partialPayment.js.map +1 -1
  74. package/dist/npm/src/models/common/index.d.ts +4 -0
  75. package/dist/npm/src/models/common/index.d.ts.map +1 -1
  76. package/dist/npm/src/models/index.d.ts +1 -1
  77. package/dist/npm/src/models/index.d.ts.map +1 -1
  78. package/dist/npm/src/models/index.js +2 -1
  79. package/dist/npm/src/models/index.js.map +1 -1
  80. package/dist/npm/src/models/ledger/LedgerEntry.d.ts +1 -1
  81. package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
  82. package/dist/npm/src/models/ledger/MPToken.d.ts +11 -0
  83. package/dist/npm/src/models/ledger/MPToken.d.ts.map +1 -0
  84. package/dist/npm/src/models/ledger/MPToken.js +3 -0
  85. package/dist/npm/src/models/ledger/MPToken.js.map +1 -0
  86. package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts +14 -0
  87. package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts.map +1 -0
  88. package/dist/npm/src/models/ledger/MPTokenIssuance.js +3 -0
  89. package/dist/npm/src/models/ledger/MPTokenIssuance.js.map +1 -0
  90. package/dist/npm/src/models/ledger/index.d.ts +3 -1
  91. package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
  92. package/dist/npm/src/models/ledger/index.js.map +1 -1
  93. package/dist/npm/src/models/methods/ledgerEntry.d.ts +5 -0
  94. package/dist/npm/src/models/methods/ledgerEntry.d.ts.map +1 -1
  95. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +15 -0
  96. package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -0
  97. package/dist/npm/src/models/transactions/MPTokenAuthorize.js +15 -0
  98. package/dist/npm/src/models/transactions/MPTokenAuthorize.js.map +1 -0
  99. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +31 -0
  100. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -0
  101. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js +26 -0
  102. package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -0
  103. package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.d.ts +7 -0
  104. package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.d.ts.map +1 -0
  105. package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.js +10 -0
  106. package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.js.map +1 -0
  107. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +17 -0
  108. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -0
  109. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js +22 -0
  110. package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js.map +1 -0
  111. package/dist/npm/src/models/transactions/clawback.d.ts +3 -2
  112. package/dist/npm/src/models/transactions/clawback.d.ts.map +1 -1
  113. package/dist/npm/src/models/transactions/clawback.js +11 -1
  114. package/dist/npm/src/models/transactions/clawback.js.map +1 -1
  115. package/dist/npm/src/models/transactions/common.d.ts +2 -1
  116. package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
  117. package/dist/npm/src/models/transactions/common.js +12 -2
  118. package/dist/npm/src/models/transactions/common.js.map +1 -1
  119. package/dist/npm/src/models/transactions/index.d.ts +5 -1
  120. package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
  121. package/dist/npm/src/models/transactions/index.js +9 -1
  122. package/dist/npm/src/models/transactions/index.js.map +1 -1
  123. package/dist/npm/src/models/transactions/metadata.d.ts +5 -4
  124. package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
  125. package/dist/npm/src/models/transactions/metadata.js.map +1 -1
  126. package/dist/npm/src/models/transactions/payment.d.ts +4 -4
  127. package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
  128. package/dist/npm/src/models/transactions/transaction.d.ts +5 -1
  129. package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
  130. package/dist/npm/src/models/transactions/transaction.js +16 -0
  131. package/dist/npm/src/models/transactions/transaction.js.map +1 -1
  132. package/dist/npm/src/models/utils/flags.d.ts +1 -0
  133. package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
  134. package/dist/npm/src/models/utils/flags.js +23 -1
  135. package/dist/npm/src/models/utils/flags.js.map +1 -1
  136. package/dist/npm/src/utils/index.d.ts +2 -1
  137. package/dist/npm/src/utils/index.d.ts.map +1 -1
  138. package/dist/npm/src/utils/index.js +3 -1
  139. package/dist/npm/src/utils/index.js.map +1 -1
  140. package/dist/npm/src/utils/mptConversion.d.ts +2 -0
  141. package/dist/npm/src/utils/mptConversion.d.ts.map +1 -0
  142. package/dist/npm/src/utils/mptConversion.js +31 -0
  143. package/dist/npm/src/utils/mptConversion.js.map +1 -0
  144. package/dist/npm/utils/index.d.ts +2 -1
  145. package/dist/npm/utils/index.d.ts.map +1 -1
  146. package/dist/npm/utils/index.js +3 -1
  147. package/dist/npm/utils/index.js.map +1 -1
  148. package/dist/npm/utils/mptConversion.d.ts +2 -0
  149. package/dist/npm/utils/mptConversion.d.ts.map +1 -0
  150. package/dist/npm/utils/mptConversion.js +31 -0
  151. package/dist/npm/utils/mptConversion.js.map +1 -0
  152. package/package.json +4 -4
  153. package/src/client/partialPayment.ts +22 -5
  154. package/src/models/common/index.ts +5 -0
  155. package/src/models/index.ts +1 -0
  156. package/src/models/ledger/LedgerEntry.ts +2 -0
  157. package/src/models/ledger/MPToken.ts +12 -0
  158. package/src/models/ledger/MPTokenIssuance.ts +14 -0
  159. package/src/models/ledger/index.ts +4 -0
  160. package/src/models/methods/ledgerEntry.ts +16 -0
  161. package/src/models/transactions/MPTokenAuthorize.ts +67 -0
  162. package/src/models/transactions/MPTokenIssuanceCreate.ts +132 -0
  163. package/src/models/transactions/MPTokenIssuanceDestroy.ts +34 -0
  164. package/src/models/transactions/MPTokenIssuanceSet.ts +76 -0
  165. package/src/models/transactions/clawback.ts +29 -6
  166. package/src/models/transactions/common.ts +22 -1
  167. package/src/models/transactions/index.ts +17 -1
  168. package/src/models/transactions/metadata.ts +9 -3
  169. package/src/models/transactions/payment.ts +4 -4
  170. package/src/models/transactions/transaction.ts +33 -0
  171. package/src/models/utils/flags.ts +33 -1
  172. package/src/utils/index.ts +2 -0
  173. package/src/utils/mptConversion.ts +61 -0
@@ -90,6 +90,19 @@ import {
90
90
  XChainModifyBridge,
91
91
  validateXChainModifyBridge,
92
92
  } from './XChainModifyBridge'
93
+ import { MPTokenAuthorize, validateMPTokenAuthorize } from './MPTokenAuthorize'
94
+ import {
95
+ MPTokenIssuanceCreate,
96
+ validateMPTokenIssuanceCreate,
97
+ } from './MPTokenIssuanceCreate'
98
+ import {
99
+ MPTokenIssuanceDestroy,
100
+ validateMPTokenIssuanceDestroy,
101
+ } from './MPTokenIssuanceDestroy'
102
+ import {
103
+ MPTokenIssuanceSet,
104
+ validateMPTokenIssuanceSet,
105
+ } from './MPTokenIssuanceSet'
93
106
 
94
107
  /**
95
108
  * Transactions that can be submitted by clients
@@ -115,6 +128,10 @@ export type SubmittableTransaction =
115
128
  | EscrowCancel
116
129
  | EscrowCreate
117
130
  | EscrowFinish
131
+ | MPTokenAuthorize
132
+ | MPTokenIssuanceCreate
133
+ | MPTokenIssuanceDestroy
134
+ | MPTokenIssuanceSet
118
135
  | NFTokenAcceptOffer
119
136
  | NFTokenBurn
120
137
  | NFTokenCancelOffer
@@ -306,6 +323,22 @@ export function validate(transaction: Record<string, unknown>): void {
306
323
  validateEscrowFinish(tx)
307
324
  break
308
325
 
326
+ case 'MPTokenAuthorize':
327
+ validateMPTokenAuthorize(tx)
328
+ break
329
+
330
+ case 'MPTokenIssuanceCreate':
331
+ validateMPTokenIssuanceCreate(tx)
332
+ break
333
+
334
+ case 'MPTokenIssuanceDestroy':
335
+ validateMPTokenIssuanceDestroy(tx)
336
+ break
337
+
338
+ case 'MPTokenIssuanceSet':
339
+ validateMPTokenIssuanceSet(tx)
340
+ break
341
+
309
342
  case 'NFTokenAcceptOffer':
310
343
  validateNFTokenAcceptOffer(tx)
311
344
  break
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable no-param-reassign -- param reassign is safe */
2
2
  /* eslint-disable no-bitwise -- flags require bitwise operations */
3
-
4
3
  import { ValidationError } from '../../errors'
5
4
  import {
6
5
  AccountRootFlagsInterface,
@@ -18,6 +17,9 @@ import { PaymentChannelClaimFlags } from '../transactions/paymentChannelClaim'
18
17
  import type { Transaction } from '../transactions/transaction'
19
18
  import { TrustSetFlags } from '../transactions/trustSet'
20
19
  import { XChainModifyBridgeFlags } from '../transactions/XChainModifyBridge'
20
+ import { MPTokenAuthorizeFlags } from '../transactions/MPTokenAuthorize'
21
+ import { MPTokenIssuanceCreateFlags } from '../transactions/MPTokenIssuanceCreate'
22
+ import { MPTokenIssuanceSetFlags } from '../transactions/MPTokenIssuanceSet'
21
23
 
22
24
  import { isFlagEnabled } from '.'
23
25
 
@@ -49,6 +51,9 @@ const txToFlag = {
49
51
  AccountSet: AccountSetTfFlags,
50
52
  AMMDeposit: AMMDepositFlags,
51
53
  AMMWithdraw: AMMWithdrawFlags,
54
+ MPTokenAuthorize: MPTokenAuthorizeFlags,
55
+ MPTokenIssuanceCreate: MPTokenIssuanceCreateFlags,
56
+ MPTokenIssuanceSet: MPTokenIssuanceSetFlags,
52
57
  NFTokenCreateOffer: NFTokenCreateOfferFlags,
53
58
  NFTokenMint: NFTokenMintFlags,
54
59
  OfferCreate: OfferCreateFlags,
@@ -90,3 +95,30 @@ function convertFlagsToNumber(flags: GlobalFlags, flagEnum: any): number {
90
95
  return flags[flag] ? resultFlags | flagEnum[flag] : resultFlags
91
96
  }, 0)
92
97
  }
98
+
99
+ /**
100
+ * Convert a Transaction flags property into a map for easy interpretation.
101
+ *
102
+ * @param tx - A transaction to parse flags for.
103
+ * @returns A map with all flags as booleans.
104
+ */
105
+ export function parseTransactionFlags(tx: Transaction): object {
106
+ setTransactionFlagsToNumber(tx)
107
+ if (typeof tx.Flags !== 'number' || !tx.Flags || tx.Flags === 0) {
108
+ return {}
109
+ }
110
+
111
+ const flags = tx.Flags
112
+ const flagsMap = {}
113
+
114
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -- safe member access
115
+ const flagEnum = txToFlag[tx.TransactionType]
116
+ Object.values(flagEnum).forEach((flag) => {
117
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- safe member access
118
+ if (typeof flag === 'string' && isFlagEnabled(flags, flagEnum[flag])) {
119
+ flagsMap[flag] = true
120
+ }
121
+ })
122
+
123
+ return flagsMap
124
+ }
@@ -66,6 +66,7 @@ import {
66
66
  } from './timeConversion'
67
67
  import verifyPaymentChannelClaim from './verifyPaymentChannelClaim'
68
68
  import { xrpToDrops, dropsToXrp } from './xrpConversion'
69
+ import { mptUint64ToHex } from './mptConversion'
69
70
 
70
71
  /**
71
72
  * Check if a secret is valid.
@@ -229,4 +230,5 @@ export {
229
230
  getNFTokenID,
230
231
  parseNFTokenID,
231
232
  getXChainClaimID,
233
+ mptUint64ToHex,
232
234
  }
@@ -0,0 +1,61 @@
1
+ import BigNumber from 'bignumber.js'
2
+ import { ValidationError } from '../errors'
3
+
4
+ const SANITY_CHECK = /^[0-9]+$/u
5
+
6
+ /**
7
+ * Convert an unsigned 64-bit decimal string to hex string. Mostly used for the MaximumAmount field
8
+ * in MPTokenIssuanceCreate.
9
+ *
10
+ * @param numberToConvert - Non-negative number string.
11
+ * @returns Amount in hex string.
12
+ * @throws When amount is invalid.
13
+ * @category Utilities
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const decimalString = mptUint64ToHex("1000");
18
+ * console.log(decimalString); // Output: "3e8"
19
+ *
20
+ * const hexString = mptUint64ToHex("0x3e8");
21
+ * console.log(hexString); // Output: "3e8"
22
+ * ```
23
+ */
24
+ export function mptUint64ToHex(numberToConvert: string): string {
25
+ // convert to base 10 string first for inputs like scientific notation
26
+ const number = new BigNumber(numberToConvert).toString(10)
27
+
28
+ // check that the value is valid and actually a number
29
+ if (typeof numberToConvert === 'string' && number === 'NaN') {
30
+ throw new ValidationError(
31
+ `mptUint64ToHex: invalid value '${numberToConvert}', should be a string-encoded number.`,
32
+ )
33
+ }
34
+
35
+ // mpts are only whole units
36
+ if (number.includes('.')) {
37
+ throw new ValidationError(
38
+ `mptUint64ToHex: value '${numberToConvert}' has too many decimal places.`,
39
+ )
40
+ }
41
+ if (number.includes('-')) {
42
+ throw new ValidationError(
43
+ `mptUint64ToHex: value '${numberToConvert}' cannot be negative.`,
44
+ )
45
+ }
46
+
47
+ if (!SANITY_CHECK.exec(number)) {
48
+ throw new ValidationError(
49
+ `mptUint64ToHex: failed sanity check -` +
50
+ ` value '${numberToConvert}',` +
51
+ ` does not match (^[0-9]+$).`,
52
+ )
53
+ }
54
+
55
+ if (Number(BigInt(number) & BigInt('0x8000000000000000')) != 0)
56
+ throw new ValidationError(
57
+ `mptUint64ToHex: invalid value '${numberToConvert}', should be within 63-bit range.`,
58
+ )
59
+
60
+ return BigInt(number).toString(16)
61
+ }