mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-24 14:15:49 +00:00
fix: allow flag maps when submitting NFToken txs (#2490)
You can now `NFTokenMint` and `NFTokenCreateOffer` transactions with
`Flags` set to a map like other transactions with flags do.
ex. `{ tfSellNFToken: true }`
This commit is contained in:
@@ -4,6 +4,9 @@ Subscribe to [the **xrpl-announce** mailing list](https://groups.google.com/g/xr
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Allow flag maps when submitting `NFTokenMint` and `NFTokenCreateOffer` transactions like others with flags
|
||||||
|
|
||||||
## 2.12.0 (2023-09-27)
|
## 2.12.0 (2023-09-27)
|
||||||
### Added
|
### Added
|
||||||
* Added `ports` field to `ServerInfoResponse`
|
* Added `ports` field to `ServerInfoResponse`
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ import { AccountSetTfFlags } from '../transactions/accountSet'
|
|||||||
import { AMMDepositFlags } from '../transactions/AMMDeposit'
|
import { AMMDepositFlags } from '../transactions/AMMDeposit'
|
||||||
import { AMMWithdrawFlags } from '../transactions/AMMWithdraw'
|
import { AMMWithdrawFlags } from '../transactions/AMMWithdraw'
|
||||||
import { GlobalFlags } from '../transactions/common'
|
import { GlobalFlags } from '../transactions/common'
|
||||||
|
import { NFTokenCreateOfferFlags } from '../transactions/NFTokenCreateOffer'
|
||||||
|
import { NFTokenMintFlags } from '../transactions/NFTokenMint'
|
||||||
import { OfferCreateFlags } from '../transactions/offerCreate'
|
import { OfferCreateFlags } from '../transactions/offerCreate'
|
||||||
import { PaymentFlags } from '../transactions/payment'
|
import { PaymentFlags } from '../transactions/payment'
|
||||||
import { PaymentChannelClaimFlags } from '../transactions/paymentChannelClaim'
|
import { PaymentChannelClaimFlags } from '../transactions/paymentChannelClaim'
|
||||||
@@ -43,6 +45,19 @@ export function parseAccountRootFlags(
|
|||||||
return flagsInterface
|
return flagsInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const txToFlag = {
|
||||||
|
AccountSet: AccountSetTfFlags,
|
||||||
|
AMMDeposit: AMMDepositFlags,
|
||||||
|
AMMWithdraw: AMMWithdrawFlags,
|
||||||
|
NFTokenCreateOffer: NFTokenCreateOfferFlags,
|
||||||
|
NFTokenMint: NFTokenMintFlags,
|
||||||
|
OfferCreate: OfferCreateFlags,
|
||||||
|
PaymentChannelClaim: PaymentChannelClaimFlags,
|
||||||
|
Payment: PaymentFlags,
|
||||||
|
TrustSet: TrustSetFlags,
|
||||||
|
XChainModifyBridge: XChainModifyBridgeFlags,
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets a transaction's flags to its numeric representation.
|
* Sets a transaction's flags to its numeric representation.
|
||||||
*
|
*
|
||||||
@@ -57,34 +72,9 @@ export function setTransactionFlagsToNumber(tx: Transaction): void {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (tx.TransactionType) {
|
tx.Flags = txToFlag[tx.TransactionType]
|
||||||
case 'AccountSet':
|
? convertFlagsToNumber(tx.Flags, txToFlag[tx.TransactionType])
|
||||||
tx.Flags = convertFlagsToNumber(tx.Flags, AccountSetTfFlags)
|
: 0
|
||||||
return
|
|
||||||
case 'AMMDeposit':
|
|
||||||
tx.Flags = convertFlagsToNumber(tx.Flags, AMMDepositFlags)
|
|
||||||
return
|
|
||||||
case 'AMMWithdraw':
|
|
||||||
tx.Flags = convertFlagsToNumber(tx.Flags, AMMWithdrawFlags)
|
|
||||||
return
|
|
||||||
case 'OfferCreate':
|
|
||||||
tx.Flags = convertFlagsToNumber(tx.Flags, OfferCreateFlags)
|
|
||||||
return
|
|
||||||
case 'PaymentChannelClaim':
|
|
||||||
tx.Flags = convertFlagsToNumber(tx.Flags, PaymentChannelClaimFlags)
|
|
||||||
return
|
|
||||||
case 'Payment':
|
|
||||||
tx.Flags = convertFlagsToNumber(tx.Flags, PaymentFlags)
|
|
||||||
return
|
|
||||||
case 'TrustSet':
|
|
||||||
tx.Flags = convertFlagsToNumber(tx.Flags, TrustSetFlags)
|
|
||||||
return
|
|
||||||
case 'XChainModifyBridge':
|
|
||||||
tx.Flags = convertFlagsToNumber(tx.Flags, XChainModifyBridgeFlags)
|
|
||||||
return
|
|
||||||
default:
|
|
||||||
tx.Flags = 0
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- added ValidationError check for flagEnum
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- added ValidationError check for flagEnum
|
||||||
|
|||||||
@@ -32,7 +32,9 @@ describe('NFTokenCreateOffer', function () {
|
|||||||
TransactionType: 'NFTokenCreateOffer',
|
TransactionType: 'NFTokenCreateOffer',
|
||||||
NFTokenID: NFTOKEN_ID,
|
NFTokenID: NFTOKEN_ID,
|
||||||
Amount: '1',
|
Amount: '1',
|
||||||
Flags: NFTokenCreateOfferFlags.tfSellNFToken,
|
Flags: {
|
||||||
|
tfSellNFToken: true,
|
||||||
|
},
|
||||||
Expiration: 1000,
|
Expiration: 1000,
|
||||||
Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
|
Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
|
||||||
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
||||||
|
|||||||
@@ -19,7 +19,9 @@ describe('NFTokenMint', function () {
|
|||||||
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
||||||
Fee: '5000000',
|
Fee: '5000000',
|
||||||
Sequence: 2470665,
|
Sequence: 2470665,
|
||||||
Flags: NFTokenMintFlags.tfTransferable,
|
Flags: {
|
||||||
|
tfTransferable: true,
|
||||||
|
},
|
||||||
NFTokenTaxon: 0,
|
NFTokenTaxon: 0,
|
||||||
Issuer: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
|
Issuer: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
|
||||||
TransferFee: 1,
|
TransferFee: 1,
|
||||||
|
|||||||
Reference in New Issue
Block a user