{"version":3,"sources":["../../src/sdk/dto/validators/is-bytes-like.validator.ts"],"sourcesContent":["import { registerDecorator, ValidationOptions } from 'class-validator';\nimport { isHex } from 'viem';\n\nexport function IsBytesLike(options: ValidationOptions & { acceptText?: boolean } = {}) {\n  return (object: any, propertyName: string) => {\n    registerDecorator({\n      propertyName,\n      options: {\n        message: `${propertyName} must be bytes like`,\n        ...options,\n      },\n      name: 'IsBytesLike',\n      target: object ? object.constructor : undefined,\n      constraints: [],\n      validator: {\n        validate(value: any): boolean {\n          let result = false;\n\n          try {\n            if (value) {\n              switch (typeof value) {\n                case 'string':\n                  if (options.acceptText) {\n                    result = true;\n                  } else {\n                    result = isHex(value) && value.length % 2 === 0;\n                  }\n                  break;\n\n                case 'object':\n                  result = isHex(value);\n                  break;\n              }\n            }\n          } catch (err) {\n            //\n          }\n\n          return result;\n        },\n      },\n    });\n  };\n}\n"],"mappings":";;;;;AAAA,SAAS,yBAA4C;AAG9C,SAAS,YAAY,UAAwD,CAAC,GAAG;AACtF,SAAO,CAAC,QAAa,iBAAyB;AAC5C,sBAAkB;AAAA,MAChB;AAAA,MACA,SAAS;AAAA,QACP,SAAS,GAAG,YAAY;AAAA,QACxB,GAAG;AAAA,MACL;AAAA,MACA,MAAM;AAAA,MACN,QAAQ,SAAS,OAAO,cAAc;AAAA,MACtC,aAAa,CAAC;AAAA,MACd,WAAW;AAAA,QACT,SAAS,OAAqB;AAC5B,cAAI,SAAS;AAEb,cAAI;AACF,gBAAI,OAAO;AACT,sBAAQ,OAAO,OAAO;AAAA,gBACpB,KAAK;AACH,sBAAI,QAAQ,YAAY;AACtB,6BAAS;AAAA,kBACX,OAAO;AACL,6BAAS,MAAM,KAAK,KAAK,MAAM,SAAS,MAAM;AAAA,kBAChD;AACA;AAAA,gBAEF,KAAK;AACH,2BAAS,MAAM,KAAK;AACpB;AAAA,cACJ;AAAA,YACF;AAAA,UACF,SAAS,KAAK;AAAA,UAEd;AAEA,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}