xrpl
Version:
A TypeScript/JavaScript API for interacting with the XRP Ledger in Node.js and the browser
52 lines (45 loc) • 1.79 kB
text/typescript
import { ValidationError } from '../../errors'
import { BaseTransaction, isArray, validateBaseTransaction } from './common'
import type { TransactionMetadataBase } from './metadata'
/**
* The NFTokenCancelOffer transaction deletes existing NFTokenOffer objects.
* It is useful if you want to free up space on your account to lower your
* reserve requirement.
*
* The transaction can be executed by the account that originally created
* the NFTokenOffer, the account in the `Recipient` field of the NFTokenOffer
* (if present), or any account if the NFTokenOffer has an `Expiration` and
* the NFTokenOffer has already expired.
*/
export interface NFTokenCancelOffer extends BaseTransaction {
TransactionType: 'NFTokenCancelOffer'
/**
* An array of identifiers of NFTokenOffer objects that should be cancelled
* by this transaction.
*
* It is an error if an entry in this list points to an
* object that is not an NFTokenOffer object. It is not an
* error if an entry in this list points to an object that
* does not exist. This field is required.
*/
NFTokenOffers: string[]
}
export interface NFTokenCancelOfferMetadata extends TransactionMetadataBase {
// rippled 1.11.0 or later
nftoken_ids?: string[]
}
/**
* Verify the form and type of an NFTokenCancelOffer at runtime.
*
* @param tx - An NFTokenCancelOffer Transaction.
* @throws When the NFTokenCancelOffer is Malformed.
*/
export function validateNFTokenCancelOffer(tx: Record<string, unknown>): void {
validateBaseTransaction(tx)
if (!isArray(tx.NFTokenOffers)) {
throw new ValidationError('NFTokenCancelOffer: missing field NFTokenOffers')
}
if (tx.NFTokenOffers.length < 1) {
throw new ValidationError('NFTokenCancelOffer: empty field NFTokenOffers')
}
}