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.
- package/build/xrpl-latest-min.js +1 -1
- package/build/xrpl-latest-min.js.map +1 -1
- package/build/xrpl-latest.js +358 -17
- package/build/xrpl-latest.js.map +1 -1
- package/dist/npm/client/partialPayment.d.ts.map +1 -1
- package/dist/npm/client/partialPayment.js +9 -0
- package/dist/npm/client/partialPayment.js.map +1 -1
- package/dist/npm/models/common/index.d.ts +4 -0
- package/dist/npm/models/common/index.d.ts.map +1 -1
- package/dist/npm/models/index.d.ts +1 -1
- package/dist/npm/models/index.d.ts.map +1 -1
- package/dist/npm/models/index.js +2 -1
- package/dist/npm/models/index.js.map +1 -1
- package/dist/npm/models/ledger/LedgerEntry.d.ts +1 -1
- package/dist/npm/models/ledger/LedgerEntry.d.ts.map +1 -1
- package/dist/npm/models/ledger/MPToken.d.ts +11 -0
- package/dist/npm/models/ledger/MPToken.d.ts.map +1 -0
- package/dist/npm/models/ledger/MPToken.js +3 -0
- package/dist/npm/models/ledger/MPToken.js.map +1 -0
- package/dist/npm/models/ledger/MPTokenIssuance.d.ts +14 -0
- package/dist/npm/models/ledger/MPTokenIssuance.d.ts.map +1 -0
- package/dist/npm/models/ledger/MPTokenIssuance.js +3 -0
- package/dist/npm/models/ledger/MPTokenIssuance.js.map +1 -0
- package/dist/npm/models/ledger/index.d.ts +3 -1
- package/dist/npm/models/ledger/index.d.ts.map +1 -1
- package/dist/npm/models/ledger/index.js.map +1 -1
- package/dist/npm/models/methods/ledgerEntry.d.ts +5 -0
- package/dist/npm/models/methods/ledgerEntry.d.ts.map +1 -1
- package/dist/npm/models/transactions/MPTokenAuthorize.d.ts +15 -0
- package/dist/npm/models/transactions/MPTokenAuthorize.d.ts.map +1 -0
- package/dist/npm/models/transactions/MPTokenAuthorize.js +15 -0
- package/dist/npm/models/transactions/MPTokenAuthorize.js.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts +31 -0
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.js +26 -0
- package/dist/npm/models/transactions/MPTokenIssuanceCreate.js.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceDestroy.d.ts +7 -0
- package/dist/npm/models/transactions/MPTokenIssuanceDestroy.d.ts.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceDestroy.js +10 -0
- package/dist/npm/models/transactions/MPTokenIssuanceDestroy.js.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts +17 -0
- package/dist/npm/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -0
- package/dist/npm/models/transactions/MPTokenIssuanceSet.js +22 -0
- package/dist/npm/models/transactions/MPTokenIssuanceSet.js.map +1 -0
- package/dist/npm/models/transactions/clawback.d.ts +3 -2
- package/dist/npm/models/transactions/clawback.d.ts.map +1 -1
- package/dist/npm/models/transactions/clawback.js +11 -1
- package/dist/npm/models/transactions/clawback.js.map +1 -1
- package/dist/npm/models/transactions/common.d.ts +2 -1
- package/dist/npm/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/models/transactions/common.js +12 -2
- package/dist/npm/models/transactions/common.js.map +1 -1
- package/dist/npm/models/transactions/index.d.ts +5 -1
- package/dist/npm/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/models/transactions/index.js +9 -1
- package/dist/npm/models/transactions/index.js.map +1 -1
- package/dist/npm/models/transactions/metadata.d.ts +5 -4
- package/dist/npm/models/transactions/metadata.d.ts.map +1 -1
- package/dist/npm/models/transactions/metadata.js.map +1 -1
- package/dist/npm/models/transactions/payment.d.ts +4 -4
- package/dist/npm/models/transactions/payment.d.ts.map +1 -1
- package/dist/npm/models/transactions/transaction.d.ts +5 -1
- package/dist/npm/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/models/transactions/transaction.js +16 -0
- package/dist/npm/models/transactions/transaction.js.map +1 -1
- package/dist/npm/models/utils/flags.d.ts +1 -0
- package/dist/npm/models/utils/flags.d.ts.map +1 -1
- package/dist/npm/models/utils/flags.js +23 -1
- package/dist/npm/models/utils/flags.js.map +1 -1
- package/dist/npm/snippets/tsconfig.tsbuildinfo +1 -1
- package/dist/npm/src/client/partialPayment.d.ts.map +1 -1
- package/dist/npm/src/client/partialPayment.js +9 -0
- package/dist/npm/src/client/partialPayment.js.map +1 -1
- package/dist/npm/src/models/common/index.d.ts +4 -0
- package/dist/npm/src/models/common/index.d.ts.map +1 -1
- package/dist/npm/src/models/index.d.ts +1 -1
- package/dist/npm/src/models/index.d.ts.map +1 -1
- package/dist/npm/src/models/index.js +2 -1
- package/dist/npm/src/models/index.js.map +1 -1
- package/dist/npm/src/models/ledger/LedgerEntry.d.ts +1 -1
- package/dist/npm/src/models/ledger/LedgerEntry.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/MPToken.d.ts +11 -0
- package/dist/npm/src/models/ledger/MPToken.d.ts.map +1 -0
- package/dist/npm/src/models/ledger/MPToken.js +3 -0
- package/dist/npm/src/models/ledger/MPToken.js.map +1 -0
- package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts +14 -0
- package/dist/npm/src/models/ledger/MPTokenIssuance.d.ts.map +1 -0
- package/dist/npm/src/models/ledger/MPTokenIssuance.js +3 -0
- package/dist/npm/src/models/ledger/MPTokenIssuance.js.map +1 -0
- package/dist/npm/src/models/ledger/index.d.ts +3 -1
- package/dist/npm/src/models/ledger/index.d.ts.map +1 -1
- package/dist/npm/src/models/ledger/index.js.map +1 -1
- package/dist/npm/src/models/methods/ledgerEntry.d.ts +5 -0
- package/dist/npm/src/models/methods/ledgerEntry.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts +15 -0
- package/dist/npm/src/models/transactions/MPTokenAuthorize.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenAuthorize.js +15 -0
- package/dist/npm/src/models/transactions/MPTokenAuthorize.js.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts +31 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js +26 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceCreate.js.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.d.ts +7 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.js +10 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceDestroy.js.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts +17 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.d.ts.map +1 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js +22 -0
- package/dist/npm/src/models/transactions/MPTokenIssuanceSet.js.map +1 -0
- package/dist/npm/src/models/transactions/clawback.d.ts +3 -2
- package/dist/npm/src/models/transactions/clawback.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/clawback.js +11 -1
- package/dist/npm/src/models/transactions/clawback.js.map +1 -1
- package/dist/npm/src/models/transactions/common.d.ts +2 -1
- package/dist/npm/src/models/transactions/common.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/common.js +12 -2
- package/dist/npm/src/models/transactions/common.js.map +1 -1
- package/dist/npm/src/models/transactions/index.d.ts +5 -1
- package/dist/npm/src/models/transactions/index.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/index.js +9 -1
- package/dist/npm/src/models/transactions/index.js.map +1 -1
- package/dist/npm/src/models/transactions/metadata.d.ts +5 -4
- package/dist/npm/src/models/transactions/metadata.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/metadata.js.map +1 -1
- package/dist/npm/src/models/transactions/payment.d.ts +4 -4
- package/dist/npm/src/models/transactions/payment.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/transaction.d.ts +5 -1
- package/dist/npm/src/models/transactions/transaction.d.ts.map +1 -1
- package/dist/npm/src/models/transactions/transaction.js +16 -0
- package/dist/npm/src/models/transactions/transaction.js.map +1 -1
- package/dist/npm/src/models/utils/flags.d.ts +1 -0
- package/dist/npm/src/models/utils/flags.d.ts.map +1 -1
- package/dist/npm/src/models/utils/flags.js +23 -1
- package/dist/npm/src/models/utils/flags.js.map +1 -1
- package/dist/npm/src/utils/index.d.ts +2 -1
- package/dist/npm/src/utils/index.d.ts.map +1 -1
- package/dist/npm/src/utils/index.js +3 -1
- package/dist/npm/src/utils/index.js.map +1 -1
- package/dist/npm/src/utils/mptConversion.d.ts +2 -0
- package/dist/npm/src/utils/mptConversion.d.ts.map +1 -0
- package/dist/npm/src/utils/mptConversion.js +31 -0
- package/dist/npm/src/utils/mptConversion.js.map +1 -0
- package/dist/npm/utils/index.d.ts +2 -1
- package/dist/npm/utils/index.d.ts.map +1 -1
- package/dist/npm/utils/index.js +3 -1
- package/dist/npm/utils/index.js.map +1 -1
- package/dist/npm/utils/mptConversion.d.ts +2 -0
- package/dist/npm/utils/mptConversion.d.ts.map +1 -0
- package/dist/npm/utils/mptConversion.js +31 -0
- package/dist/npm/utils/mptConversion.js.map +1 -0
- package/package.json +4 -4
- package/src/client/partialPayment.ts +22 -5
- package/src/models/common/index.ts +5 -0
- package/src/models/index.ts +1 -0
- package/src/models/ledger/LedgerEntry.ts +2 -0
- package/src/models/ledger/MPToken.ts +12 -0
- package/src/models/ledger/MPTokenIssuance.ts +14 -0
- package/src/models/ledger/index.ts +4 -0
- package/src/models/methods/ledgerEntry.ts +16 -0
- package/src/models/transactions/MPTokenAuthorize.ts +67 -0
- package/src/models/transactions/MPTokenIssuanceCreate.ts +132 -0
- package/src/models/transactions/MPTokenIssuanceDestroy.ts +34 -0
- package/src/models/transactions/MPTokenIssuanceSet.ts +76 -0
- package/src/models/transactions/clawback.ts +29 -6
- package/src/models/transactions/common.ts +22 -1
- package/src/models/transactions/index.ts +17 -1
- package/src/models/transactions/metadata.ts +9 -3
- package/src/models/transactions/payment.ts +4 -4
- package/src/models/transactions/transaction.ts +33 -0
- package/src/models/utils/flags.ts +33 -1
- package/src/utils/index.ts +2 -0
- 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
|
+
}
|
package/src/utils/index.ts
CHANGED
@@ -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
|
+
}
|