mirror of
https://github.com/Xahau/xahau.js.git
synced 2025-11-15 01:55:48 +00:00
* remove else condition * validation txfee * clidation * lint * lint * comments * lint * more typechecking * rm newline * refactor * null check * revert null check * reuse test
83 lines
2.4 KiB
TypeScript
83 lines
2.4 KiB
TypeScript
import { assert } from 'chai'
|
|
|
|
import { validate, ValidationError, MPTokenIssuanceSetFlags } from '../../src'
|
|
|
|
const TOKEN_ID = '000004C463C52827307480341125DA0577DEFC38405B0E3E'
|
|
|
|
/**
|
|
* MPTokenIssuanceSet Transaction Verification Testing.
|
|
*
|
|
* Providing runtime verification testing for each specific transaction type.
|
|
*/
|
|
describe('MPTokenIssuanceSet', function () {
|
|
it(`verifies valid MPTokenIssuanceSet`, function () {
|
|
let validMPTokenIssuanceSet = {
|
|
TransactionType: 'MPTokenIssuanceSet',
|
|
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
|
MPTokenIssuanceID: TOKEN_ID,
|
|
Flags: MPTokenIssuanceSetFlags.tfMPTLock,
|
|
} as any
|
|
|
|
assert.doesNotThrow(() => validate(validMPTokenIssuanceSet))
|
|
|
|
validMPTokenIssuanceSet = {
|
|
TransactionType: 'MPTokenIssuanceSet',
|
|
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
|
MPTokenIssuanceID: TOKEN_ID,
|
|
Holder: 'rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG',
|
|
Flags: MPTokenIssuanceSetFlags.tfMPTLock,
|
|
} as any
|
|
|
|
assert.doesNotThrow(() => validate(validMPTokenIssuanceSet))
|
|
|
|
// It's fine to not specify any flag, it means only tx fee is deducted
|
|
validMPTokenIssuanceSet = {
|
|
TransactionType: 'MPTokenIssuanceSet',
|
|
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
|
MPTokenIssuanceID: TOKEN_ID,
|
|
Holder: 'rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG',
|
|
} as any
|
|
|
|
assert.doesNotThrow(() => validate(validMPTokenIssuanceSet))
|
|
})
|
|
|
|
it(`throws w/ missing MPTokenIssuanceID`, function () {
|
|
const invalid = {
|
|
TransactionType: 'MPTokenIssuanceSet',
|
|
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
|
} as any
|
|
|
|
assert.throws(
|
|
() => validate(invalid),
|
|
ValidationError,
|
|
'MPTokenIssuanceSet: missing field MPTokenIssuanceID',
|
|
)
|
|
})
|
|
|
|
it(`throws w/ conflicting flags`, function () {
|
|
const invalid = {
|
|
TransactionType: 'MPTokenIssuanceSet',
|
|
Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm',
|
|
MPTokenIssuanceID: TOKEN_ID,
|
|
} as any
|
|
|
|
invalid.Flags =
|
|
// eslint-disable-next-line no-bitwise -- not needed
|
|
MPTokenIssuanceSetFlags.tfMPTLock | MPTokenIssuanceSetFlags.tfMPTUnlock
|
|
|
|
assert.throws(
|
|
() => validate(invalid),
|
|
ValidationError,
|
|
'MPTokenIssuanceSet: flag conflict',
|
|
)
|
|
|
|
invalid.Flags = { tfMPTLock: true, tfMPTUnlock: true }
|
|
|
|
assert.throws(
|
|
() => validate(invalid),
|
|
ValidationError,
|
|
'MPTokenIssuanceSet: flag conflict',
|
|
)
|
|
})
|
|
})
|