Files
xahau.js/packages/xrpl/test/models/NFTokenCreateOffer.ts
Omar Khan 9d94f4a8ab rename XLS-20 fields (#1966)
* rename TokenTaxon -> NFTokenTaxon

* rename MintedTokens -> MintedNFTokens

* rename BurnedTokens -> BurnedNFTokens

* update binary for NFTokenID rename

* rename TokenID -> NFTokenID

* rename TokenOffers -> NFTokenOffers

* rename BrokerFee -> NFTokenBrokerFee

* rename Minter -> NFTokenMinter

* rename NonFungibleToken -> NFToken

* rename NonFungibleTokens -> NFTokens

* rename BuyOffer -> NFTokenBuyOffer

* rename SellOffer -> NFTokenSellOffer

* rename OfferNode -> NFTokenOfferNode

* fix binary for serialize tests

* Add missing MintedNFTokens def + fix tests

* nftokenid -> nft_id

* asfAuthorizedMinter -> asfAuthorizedNFTokenMinter

* Update tec/tem error codes

* Add new definitions

* Update HISTORY.md

* Change to 1.4.0 for binary-codec

* Docgen

* Update HISTORY.md

Co-authored-by: Jackson Mills <jmills@ripple.com>
2022-04-19 10:02:18 -07:00

215 lines
6.0 KiB
TypeScript

import { assert } from 'chai'
import { validate, ValidationError, NFTokenCreateOfferFlags } from 'xrpl-local'
const NFTOKEN_ID =
'00090032B5F762798A53D543A014CAF8B297CFF8F2F937E844B17C9E00000003'
/**
* NFTokenCreateOffer Transaction Verification Testing.
*
* Providing runtime verification testing for each specific transaction type.
*/
describe('NFTokenCreateOffer', function () {
it(`verifies valid NFTokenCreateOffer buyside`, function () {
const validNFTokenCreateOffer = {
TransactionType: 'NFTokenCreateOffer',
NFTokenID: NFTOKEN_ID,
Amount: '1',
Owner: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Expiration: 1000,
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.doesNotThrow(() => validate(validNFTokenCreateOffer))
})
it(`verifies valid NFTokenCreateOffer sellside`, function () {
const validNFTokenCreateOffer = {
TransactionType: 'NFTokenCreateOffer',
NFTokenID: NFTOKEN_ID,
Amount: '1',
Flags: NFTokenCreateOfferFlags.tfSellToken,
Expiration: 1000,
Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.doesNotThrow(() => validate(validNFTokenCreateOffer))
})
it(`verifies w/ 0 Amount NFTokenCreateOffer sellside`, function () {
const validNFTokenCreateOffer = {
TransactionType: 'NFTokenCreateOffer',
NFTokenID: NFTOKEN_ID,
Amount: '0',
Flags: NFTokenCreateOfferFlags.tfSellToken,
Expiration: 1000,
Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.doesNotThrow(() => validate(validNFTokenCreateOffer))
})
it(`throws w/ Account === Owner`, function () {
const invalid = {
TransactionType: 'NFTokenCreateOffer',
NFTokenID: NFTOKEN_ID,
Amount: '1',
Expiration: 1000,
Owner: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'NFTokenCreateOffer: Owner and Account must not be equal',
)
})
it(`throws w/ Account === Destination`, function () {
const invalid = {
TransactionType: 'NFTokenCreateOffer',
NFTokenID: NFTOKEN_ID,
Amount: '1',
Flags: NFTokenCreateOfferFlags.tfSellToken,
Expiration: 1000,
Destination: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'NFTokenCreateOffer: Destination and Account must not be equal',
)
})
it(`throws w/out NFTokenID`, function () {
const invalid = {
TransactionType: 'NFTokenCreateOffer',
Amount: '1',
Owner: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXe',
Expiration: 1000,
Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'NFTokenCreateOffer: missing field NFTokenID',
)
})
it(`throws w/ invalid Amount`, function () {
const invalid = {
TransactionType: 'NFTokenCreateOffer',
NFTokenID: NFTOKEN_ID,
Amount: 1,
Owner: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXe',
Expiration: 1000,
Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'NFTokenCreateOffer: invalid Amount',
)
})
it(`throws w/ missing Amount`, function () {
const invalid = {
TransactionType: 'NFTokenCreateOffer',
Owner: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXe',
Expiration: 1000,
NFTokenID: NFTOKEN_ID,
Destination: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'NFTokenCreateOffer: invalid Amount',
)
})
it(`throws w/ Owner for sell offer`, function () {
const invalid = {
TransactionType: 'NFTokenCreateOffer',
Expiration: 1000,
Owner: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
NFTokenID: NFTOKEN_ID,
Flags: NFTokenCreateOfferFlags.tfSellToken,
Amount: '1',
Fee: '5000000',
Sequence: 2470665,
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'NFTokenCreateOffer: Owner must not be present for sell offers',
)
})
it(`throws w/out Owner for buy offer`, function () {
const invalid = {
TransactionType: 'NFTokenCreateOffer',
Expiration: 1000,
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Amount: '1',
NFTokenID: NFTOKEN_ID,
Fee: '5000000',
Sequence: 2470665,
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'NFTokenCreateOffer: Owner must be present for buy offers',
)
})
it(`throws w/ 0 Amount for buy offer`, function () {
const invalid = {
TransactionType: 'NFTokenCreateOffer',
Expiration: 1000,
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
Owner: 'r9LqNeG6qHxjeUocjvVki2XR35weJ9mZgQ',
Amount: '0',
Fee: '5000000',
NFTokenID: NFTOKEN_ID,
Sequence: 2470665,
} as any
assert.throws(
() => validate(invalid),
ValidationError,
'NFTokenCreateOffer: Amount must be greater than 0 for buy offers',
)
})
})