{"version":3,"file":"signature.mjs","names":[],"sources":["../../src/zklogin/signature.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\n\nimport { SIGNATURE_SCHEME_TO_FLAG } from '../cryptography/signature-scheme.js';\nimport type { ZkLoginSignature } from './bcs.js';\nimport { zkLoginSignature } from './bcs.js';\n\ninterface ZkLoginSignatureExtended extends Omit<ZkLoginSignature, 'userSignature'> {\n\tuserSignature: string | ZkLoginSignature['userSignature'];\n}\n\nfunction getZkLoginSignatureBytes({ inputs, maxEpoch, userSignature }: ZkLoginSignatureExtended) {\n\treturn zkLoginSignature\n\t\t.serialize(\n\t\t\t{\n\t\t\t\tinputs,\n\t\t\t\tmaxEpoch,\n\t\t\t\tuserSignature:\n\t\t\t\t\ttypeof userSignature === 'string' ? fromBase64(userSignature) : userSignature,\n\t\t\t},\n\t\t\t{ maxSize: 2048 },\n\t\t)\n\t\t.toBytes();\n}\n\nexport function getZkLoginSignature({ inputs, maxEpoch, userSignature }: ZkLoginSignatureExtended) {\n\tconst bytes = getZkLoginSignatureBytes({ inputs, maxEpoch, userSignature });\n\tconst signatureBytes = new Uint8Array(bytes.length + 1);\n\tsignatureBytes.set([SIGNATURE_SCHEME_TO_FLAG.ZkLogin]);\n\tsignatureBytes.set(bytes, 1);\n\treturn toBase64(signatureBytes);\n}\n\nexport function parseZkLoginSignature(signature: string | Uint8Array) {\n\treturn zkLoginSignature.parse(typeof signature === 'string' ? fromBase64(signature) : signature);\n}\n"],"mappings":";;;;;AAaA,SAAS,yBAAyB,EAAE,QAAQ,UAAU,iBAA2C;AAChG,QAAO,iBACL,UACA;EACC;EACA;EACA,eACC,OAAO,kBAAkB,WAAW,WAAW,cAAc,GAAG;EACjE,EACD,EAAE,SAAS,MAAM,CACjB,CACA,SAAS;;AAGZ,SAAgB,oBAAoB,EAAE,QAAQ,UAAU,iBAA2C;CAClG,MAAM,QAAQ,yBAAyB;EAAE;EAAQ;EAAU;EAAe,CAAC;CAC3E,MAAM,iBAAiB,IAAI,WAAW,MAAM,SAAS,EAAE;AACvD,gBAAe,IAAI,CAAC,yBAAyB,QAAQ,CAAC;AACtD,gBAAe,IAAI,OAAO,EAAE;AAC5B,QAAO,SAAS,eAAe;;AAGhC,SAAgB,sBAAsB,WAAgC;AACrE,QAAO,iBAAiB,MAAM,OAAO,cAAc,WAAW,WAAW,UAAU,GAAG,UAAU"}