{"version":3,"sources":["../src/runtime/encoders.ts"],"names":["_uintCV","_intCV"],"mappings":";;;AAsBO,SAAS,aACd,UAAA,EAGC;AACD,EAAA,OAAO,CAAC,KAAA,KAAmB;AACzB,IAAA,MAAM,SAAS,EAAC;AAChB,IAAA,KAAA,MAAW,GAAA,IAAO,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,EAAG;AACzC,MAAA,MAAA,CAAO,GAAG,CAAA,GAAI,UAAA,CAAW,GAAc,CAAA,CAAG,KAAA,CAAM,GAAG,CAAE,CAAA;AAAA,IACvD;AAEA,IAAA,OAAO,QAAQ,MAAM,CAAA;AAAA,EACvB,CAAA;AACF;AAEO,SAAS,YAAe,OAAA,EAAmC;AAChE,EAAA,OAAO,CAAC,KAAA,KAAU;AAChB,IAAA,OAAO,MAAA,CAAO,KAAA,CAAM,GAAA,CAAI,OAAO,CAAC,CAAA;AAAA,EAClC,CAAA;AACF;AAEO,SAAS,sBACd,OAAA,EACsB;AACtB,EAAA,OAAO,CAAC,KAAA,KAAU;AAChB,IAAA,IAAI,KAAA,CAAM,SAAS,SAAA,EAAW;AAC5B,MAAA,OAAO,YAAA,CAAa,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,IAC1C;AACA,IAAA,IAAI,KAAA,CAAM,iBAAiB,YAAA,EAAc;AACvC,MAAA,OAAO,eAAA,CAAgBA,QAAA,CAAQ,KAAA,CAAM,KAAA,CAAM,IAAI,CAAC,CAAA;AAAA,IAClD;AACA,IAAA,OAAO,eAAA,CAAgB,YAAA,CAAa,KAAA,CAAM,KAAA,CAAM,OAAO,CAAC,CAAA;AAAA,EAC1D,CAAA;AACF;AAEO,SAAS,YAAY,SAAA,EAAgC;AAC1D,EAAA,IAAI,SAAA,CAAU,QAAA,CAAS,GAAG,CAAA,EAAG;AAC3B,IAAA,MAAM,CAAC,OAAA,EAAS,YAAY,CAAA,GAAI,SAAA,CAAU,MAAM,GAAG,CAAA;AACnD,IAAA,OAAO,mBAAA,CAAoB,SAAU,YAAa,CAAA;AAAA,EACpD,CAAA,MAAO;AACL,IAAA,OAAO,oBAAoB,SAAS,CAAA;AAAA,EACtC;AACF;AAEO,SAAS,QAAQ,SAAA,EAAuD;AAC7E,EAAA,MAAM,CAAC,IAAA,EAAM,IAAI,CAAA,GAAI,SAAA,CAAU,MAAM,GAAG,CAAA;AACxC,EAAA,OAAO,mBAAA,CAAoB,MAAM,IAAI,CAAA;AACvC;AAEO,IAAM,SAAA,GAAY,CAAC,KAAA,KAA8B;AACtD,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,OAAO,MAAA,EAAO;AAAA,EAChB,CAAA,MAAO;AACL,IAAA,OAAO,OAAA,EAAQ;AAAA,EACjB;AACF;AAEO,IAAM,MAAA,GAA0B,CAAC,KAAA,KAAUA,QAAA,CAAQ,KAAK;AACxD,IAAM,KAAA,GAAyB,CAAC,KAAA,KAAUC,OAAA,CAAO,KAAK;AAEtD,SAAS,gBACd,OAAA,EACwB;AACxB,EAAA,OAAO,CAAC,KAAA,KAAU;AAChB,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA,OAAO,MAAA,EAAO;AAAA,IAChB;AACA,IAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAC9B,CAAA;AACF","file":"chunk-BOPLGUIZ.mjs","sourcesContent":["import {\n  BooleanCV,\n  ContractPrincipalCV,\n  contractPrincipalCV,\n  falseCV,\n  listCV,\n  noneCV,\n  PrincipalCV,\n  responseErrorCV,\n  responseOkCV,\n  someCV,\n  standardPrincipalCV,\n  trueCV,\n  tupleCV,\n  TupleCV,\n  uintCV as _uintCV,\n  intCV as _intCV,\n  stringUtf8CV,\n} from \"@stacks/transactions\";\nimport { Encoder, Response, UnboxEncoder } from \"./types\";\nimport { ClarityError } from \"./decoders\";\n\nexport function tupleEncoder<P extends Record<string, Encoder<any>>>(\n  decorators: P\n): Encoder<{\n  [K in keyof P]: UnboxEncoder<P[K]>;\n}> {\n  return (input): TupleCV => {\n    const result = {} as any;\n    for (const key of Object.keys(decorators)) {\n      result[key] = decorators[key as keyof P]!(input[key]!);\n    }\n\n    return tupleCV(result);\n  };\n}\n\nexport function listEncoder<T>(encoder: Encoder<T>): Encoder<T[]> {\n  return (value) => {\n    return listCV(value.map(encoder));\n  };\n}\n\nexport function responseSimpleEncoder<T>(\n  success: Encoder<T>\n): Encoder<Response<T>> {\n  return (value) => {\n    if (value.type === \"success\") {\n      return responseOkCV(success(value.value));\n    }\n    if (value.error instanceof ClarityError) {\n      return responseErrorCV(_uintCV(value.error.code));\n    }\n    return responseErrorCV(stringUtf8CV(value.error.message));\n  };\n}\n\nexport function principalCV(principal: string): PrincipalCV {\n  if (principal.includes(\".\")) {\n    const [address, contractName] = principal.split(\".\");\n    return contractPrincipalCV(address!, contractName!);\n  } else {\n    return standardPrincipalCV(principal);\n  }\n}\n\nexport function traitCV(principal: `${string}.${string}`): ContractPrincipalCV {\n  const [addr, name] = principal.split(\".\");\n  return contractPrincipalCV(addr, name);\n}\n\nexport const booleanCV = (value: boolean): BooleanCV => {\n  if (value) {\n    return trueCV();\n  } else {\n    return falseCV();\n  }\n};\n\nexport const uintCV: Encoder<bigint> = (input) => _uintCV(input);\nexport const intCV: Encoder<bigint> = (input) => _intCV(input);\n\nexport function optionalEncoder<T>(\n  encoder: Encoder<T>\n): Encoder<T | undefined> {\n  return (value) => {\n    if (value === undefined) {\n      return noneCV();\n    }\n    return someCV(encoder(value));\n  };\n}\n"]}