@@ -15,6 +15,8 @@ import {
1515 isNumber ,
1616 MAX_MPT_META_BYTE_LENGTH ,
1717 isDomainID ,
18+ validateMPTokenMetadata ,
19+ MPT_META_WARNING_HEADER ,
1820} from './common'
1921import { MAX_TRANSFER_FEE } from './MPTokenIssuanceCreate'
2022
@@ -268,14 +270,28 @@ export function validateMPTokenIssuanceSet(tx: Record<string, unknown>): void {
268270 }
269271 }
270272
271- if (
272- typeof tx . MPTokenMetadata === 'string' &&
273- ( ! isHex ( tx . MPTokenMetadata ) ||
274- tx . MPTokenMetadata . length / 2 > MAX_MPT_META_BYTE_LENGTH )
275- ) {
276- throw new ValidationError (
277- `MPTokenIssuanceSet: MPTokenMetadata (hex format) must be non-empty and no more than ${ MAX_MPT_META_BYTE_LENGTH } bytes.` ,
278- )
273+ if ( tx . MPTokenMetadata != null ) {
274+ if (
275+ typeof tx . MPTokenMetadata === 'string' &&
276+ ( ! isHex ( tx . MPTokenMetadata ) ||
277+ tx . MPTokenMetadata . length / 2 > MAX_MPT_META_BYTE_LENGTH )
278+ ) {
279+ throw new ValidationError (
280+ `MPTokenIssuanceSet: MPTokenMetadata (hex format) must be non-empty and no more than ${ MAX_MPT_META_BYTE_LENGTH } bytes.` ,
281+ )
282+ }
283+
284+ const validationMessages = validateMPTokenMetadata ( tx . MPTokenMetadata )
285+
286+ if ( validationMessages . length > 0 ) {
287+ const message = [
288+ MPT_META_WARNING_HEADER ,
289+ ...validationMessages . map ( ( msg ) => `- ${ msg } ` ) ,
290+ ] . join ( '\n' )
291+
292+ // eslint-disable-next-line no-console -- Required here.
293+ console . warn ( message )
294+ }
279295 }
280296}
281297/* eslint-enable max-lines-per-function, max-statements */
0 commit comments