@@ -43,16 +43,6 @@ describe('MPTokenIssuanceSet', function () {
4343
4444 assertValid ( validMPTokenIssuanceSet )
4545
46- // It's fine to not specify any flag, it means only tx fee is deducted
47- validMPTokenIssuanceSet = {
48- TransactionType : 'MPTokenIssuanceSet' ,
49- Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
50- MPTokenIssuanceID : TOKEN_ID ,
51- Holder : 'rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG' ,
52- } as any
53-
54- assertValid ( validMPTokenIssuanceSet )
55-
5646 assertValid ( {
5747 TransactionType : 'MPTokenIssuanceSet' ,
5848 Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
@@ -190,4 +180,175 @@ describe('MPTokenIssuanceSet', function () {
190180 `MPTokenIssuanceSet: MPTokenMetadata (hex format) must be non-empty and no more than ${ MAX_MPT_META_BYTE_LENGTH } bytes.` ,
191181 )
192182 } )
183+
184+ it ( `Throws w/ invalid type of DomainID` , function ( ) {
185+ const invalid = {
186+ TransactionType : 'MPTokenIssuanceSet' ,
187+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
188+ MPTokenIssuanceID : TOKEN_ID ,
189+ DomainID : 1 ,
190+ } as any
191+
192+ assertInvalid ( invalid , 'MPTokenIssuanceSet: invalid field DomainID' )
193+ } )
194+
195+ it ( `throws w/ identical holder and account ID` , function ( ) {
196+ const invalid = {
197+ TransactionType : 'MPTokenIssuanceSet' ,
198+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
199+ MPTokenIssuanceID : TOKEN_ID ,
200+ Holder : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
201+ } as any
202+
203+ assertInvalid (
204+ invalid ,
205+ 'MPTokenIssuanceSet: Holder cannot be the same as the Account.' ,
206+ )
207+ } )
208+
209+ it ( `Throws w/ no changes to the MPTokenIssuance ledger object` , function ( ) {
210+ const noOpMPTokenIssuanceSet = {
211+ TransactionType : 'MPTokenIssuanceSet' ,
212+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
213+ MPTokenIssuanceID : TOKEN_ID ,
214+ Holder : 'rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG' ,
215+ } as any
216+
217+ assertInvalid (
218+ noOpMPTokenIssuanceSet ,
219+ 'MPTokenIssuanceSet: Transaction does not change the state of the MPTokenIssuance ledger object.' ,
220+ )
221+ } )
222+
223+ it ( `Throws w/ Holder field and mutating the MPTokenIssuance ledger object` , function ( ) {
224+ const invalid = {
225+ TransactionType : 'MPTokenIssuanceSet' ,
226+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
227+ MPTokenIssuanceID : TOKEN_ID ,
228+ MutableFlags : MPTokenIssuanceSetMutableFlags . tmfMPTClearCanTransfer ,
229+ Holder : 'rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG' ,
230+ } as any
231+
232+ assertInvalid (
233+ invalid ,
234+ 'MPTokenIssuanceSet: Holder field is not allowed when mutating MPTokenIssuance.' ,
235+ )
236+ } )
237+
238+ it ( `Throws w/ Flags field and mutating the MPTokenIssuance ledger object` , function ( ) {
239+ const invalid = {
240+ TransactionType : 'MPTokenIssuanceSet' ,
241+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
242+ MPTokenIssuanceID : TOKEN_ID ,
243+ MutableFlags : MPTokenIssuanceSetMutableFlags . tmfMPTClearCanTransfer ,
244+ Flags : MPTokenIssuanceSetFlags . tfMPTLock ,
245+ } as any
246+
247+ assertInvalid (
248+ invalid ,
249+ 'MPTokenIssuanceSet: Can not set flags when mutating MPTokenIssuance.' ,
250+ )
251+ } )
252+
253+ it ( `Throws w/ setting and clearing the tmfMPTCanLock flag` , function ( ) {
254+ const invalid = {
255+ TransactionType : 'MPTokenIssuanceSet' ,
256+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
257+ MPTokenIssuanceID : TOKEN_ID ,
258+ MutableFlags :
259+ // eslint-disable-next-line no-bitwise -- required to OR the flags
260+ MPTokenIssuanceSetMutableFlags . tmfMPTSetCanLock |
261+ MPTokenIssuanceSetMutableFlags . tmfMPTClearCanLock ,
262+ } as any
263+
264+ assertInvalid (
265+ invalid ,
266+ 'MPTokenIssuanceSet: Can not set and clear the same flag.' ,
267+ )
268+ } )
269+
270+ it ( `Throws w/ setting and clearing the tmfMPTCanTransfer flag` , function ( ) {
271+ const invalid = {
272+ TransactionType : 'MPTokenIssuanceSet' ,
273+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
274+ MPTokenIssuanceID : TOKEN_ID ,
275+ MutableFlags :
276+ // eslint-disable-next-line no-bitwise -- required to OR the flags
277+ MPTokenIssuanceSetMutableFlags . tmfMPTSetCanTransfer |
278+ MPTokenIssuanceSetMutableFlags . tmfMPTClearCanTransfer ,
279+ } as any
280+
281+ assertInvalid (
282+ invalid ,
283+ 'MPTokenIssuanceSet: Can not set and clear the same flag.' ,
284+ )
285+ } )
286+
287+ it ( `Throws w/ setting and clearing the tmfMPTCanClawback flag` , function ( ) {
288+ const invalid = {
289+ TransactionType : 'MPTokenIssuanceSet' ,
290+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
291+ MPTokenIssuanceID : TOKEN_ID ,
292+ MutableFlags :
293+ // eslint-disable-next-line no-bitwise -- required to OR the flags
294+ MPTokenIssuanceSetMutableFlags . tmfMPTSetCanClawback |
295+ MPTokenIssuanceSetMutableFlags . tmfMPTClearCanClawback ,
296+ } as any
297+
298+ assertInvalid (
299+ invalid ,
300+ 'MPTokenIssuanceSet: Can not set and clear the same flag.' ,
301+ )
302+ } )
303+
304+ it ( `Throws w/ setting and clearing the tmfMPTCanEscrow flag` , function ( ) {
305+ const invalid = {
306+ TransactionType : 'MPTokenIssuanceSet' ,
307+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
308+ MPTokenIssuanceID : TOKEN_ID ,
309+ MutableFlags :
310+ // eslint-disable-next-line no-bitwise -- required to OR the flags
311+ MPTokenIssuanceSetMutableFlags . tmfMPTSetCanEscrow |
312+ MPTokenIssuanceSetMutableFlags . tmfMPTClearCanEscrow ,
313+ } as any
314+
315+ assertInvalid (
316+ invalid ,
317+ 'MPTokenIssuanceSet: Can not set and clear the same flag.' ,
318+ )
319+ } )
320+
321+ it ( `Throws w/ setting and clearing the tmfMPTCanTrade flag` , function ( ) {
322+ const invalid = {
323+ TransactionType : 'MPTokenIssuanceSet' ,
324+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
325+ MPTokenIssuanceID : TOKEN_ID ,
326+ MutableFlags :
327+ // eslint-disable-next-line no-bitwise -- required to OR the flags
328+ MPTokenIssuanceSetMutableFlags . tmfMPTSetCanTrade |
329+ MPTokenIssuanceSetMutableFlags . tmfMPTClearCanTrade ,
330+ } as any
331+
332+ assertInvalid (
333+ invalid ,
334+ 'MPTokenIssuanceSet: Can not set and clear the same flag.' ,
335+ )
336+ } )
337+
338+ it ( `Throws w/ setting and clearing the tmfMPTCanRequireAuth flag` , function ( ) {
339+ const invalid = {
340+ TransactionType : 'MPTokenIssuanceSet' ,
341+ Account : 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm' ,
342+ MPTokenIssuanceID : TOKEN_ID ,
343+ MutableFlags :
344+ // eslint-disable-next-line no-bitwise -- required to OR the flags
345+ MPTokenIssuanceSetMutableFlags . tmfMPTSetRequireAuth |
346+ MPTokenIssuanceSetMutableFlags . tmfMPTClearRequireAuth ,
347+ } as any
348+
349+ assertInvalid (
350+ invalid ,
351+ 'MPTokenIssuanceSet: Can not set and clear the same flag.' ,
352+ )
353+ } )
193354} )
0 commit comments