@mysten/sui 1.16.1 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/bcs/bcs.d.ts +13 -0
  3. package/dist/cjs/bcs/bcs.js +6 -0
  4. package/dist/cjs/bcs/bcs.js.map +2 -2
  5. package/dist/cjs/bcs/index.d.ts +13 -0
  6. package/dist/cjs/bcs/index.js +2 -1
  7. package/dist/cjs/bcs/index.js.map +2 -2
  8. package/dist/cjs/cryptography/signature-scheme.d.ts +3 -1
  9. package/dist/cjs/cryptography/signature-scheme.js +4 -2
  10. package/dist/cjs/cryptography/signature-scheme.js.map +2 -2
  11. package/dist/cjs/cryptography/signature.d.ts +8 -0
  12. package/dist/cjs/cryptography/signature.js +5 -2
  13. package/dist/cjs/cryptography/signature.js.map +3 -3
  14. package/dist/cjs/keypairs/passkey/index.d.ts +3 -0
  15. package/dist/cjs/keypairs/passkey/index.js +28 -0
  16. package/dist/cjs/keypairs/passkey/index.js.map +7 -0
  17. package/dist/cjs/keypairs/passkey/keypair.d.ts +59 -0
  18. package/dist/cjs/keypairs/passkey/keypair.js +168 -0
  19. package/dist/cjs/keypairs/passkey/keypair.js.map +7 -0
  20. package/dist/cjs/keypairs/passkey/publickey.d.ts +72 -0
  21. package/dist/cjs/keypairs/passkey/publickey.js +168 -0
  22. package/dist/cjs/keypairs/passkey/publickey.js.map +7 -0
  23. package/dist/cjs/transactions/plugins/utils.js +4 -2
  24. package/dist/cjs/transactions/plugins/utils.js.map +2 -2
  25. package/dist/cjs/verify/verify.js +12 -9
  26. package/dist/cjs/verify/verify.js.map +2 -2
  27. package/dist/cjs/version.d.ts +1 -1
  28. package/dist/cjs/version.js +1 -1
  29. package/dist/cjs/version.js.map +1 -1
  30. package/dist/esm/bcs/bcs.d.ts +13 -0
  31. package/dist/esm/bcs/bcs.js +6 -0
  32. package/dist/esm/bcs/bcs.js.map +2 -2
  33. package/dist/esm/bcs/index.d.ts +13 -0
  34. package/dist/esm/bcs/index.js +3 -1
  35. package/dist/esm/bcs/index.js.map +2 -2
  36. package/dist/esm/cryptography/signature-scheme.d.ts +3 -1
  37. package/dist/esm/cryptography/signature-scheme.js +4 -2
  38. package/dist/esm/cryptography/signature-scheme.js.map +2 -2
  39. package/dist/esm/cryptography/signature.d.ts +8 -0
  40. package/dist/esm/cryptography/signature.js +3 -0
  41. package/dist/esm/cryptography/signature.js.map +2 -2
  42. package/dist/esm/keypairs/passkey/index.d.ts +3 -0
  43. package/dist/esm/keypairs/passkey/index.js +8 -0
  44. package/dist/esm/keypairs/passkey/index.js.map +7 -0
  45. package/dist/esm/keypairs/passkey/keypair.d.ts +59 -0
  46. package/dist/esm/keypairs/passkey/keypair.js +153 -0
  47. package/dist/esm/keypairs/passkey/keypair.js.map +7 -0
  48. package/dist/esm/keypairs/passkey/publickey.d.ts +72 -0
  49. package/dist/esm/keypairs/passkey/publickey.js +148 -0
  50. package/dist/esm/keypairs/passkey/publickey.js.map +7 -0
  51. package/dist/esm/transactions/plugins/utils.js +4 -2
  52. package/dist/esm/transactions/plugins/utils.js.map +2 -2
  53. package/dist/esm/verify/verify.js +3 -0
  54. package/dist/esm/verify/verify.js.map +2 -2
  55. package/dist/esm/version.d.ts +1 -1
  56. package/dist/esm/version.js +1 -1
  57. package/dist/esm/version.js.map +1 -1
  58. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  59. package/dist/tsconfig.tsbuildinfo +1 -1
  60. package/keypairs/passkey/package.json +6 -0
  61. package/package.json +6 -1
  62. package/src/bcs/bcs.ts +6 -0
  63. package/src/bcs/index.ts +2 -0
  64. package/src/cryptography/signature-scheme.ts +9 -1
  65. package/src/cryptography/signature.ts +3 -0
  66. package/src/keypairs/passkey/index.ts +5 -0
  67. package/src/keypairs/passkey/keypair.ts +209 -0
  68. package/src/keypairs/passkey/publickey.ts +188 -0
  69. package/src/transactions/plugins/utils.ts +5 -2
  70. package/src/verify/verify.ts +3 -0
  71. package/src/version.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/transactions/plugins/utils.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isValidNamedPackage, isValidNamedType } from '../../utils/move-registry.js';\nimport type { TransactionDataBuilder } from '../TransactionData.js';\n\nexport type NamedPackagesPluginCache = {\n\tpackages: Record<string, string>;\n\ttypes: Record<string, string>;\n};\n\nconst NAME_SEPARATOR = '/';\n\nexport type NameResolutionRequest = {\n\tid: number;\n\ttype: 'package' | 'moveType';\n\tname: string;\n};\n\n/**\n * Looks up all `.move` names in a transaction block.\n * Returns a list of all the names found.\n */\nexport const findTransactionBlockNames = (\n\tbuilder: TransactionDataBuilder,\n): { packages: string[]; types: string[] } => {\n\tconst packages: Set<string> = new Set();\n\tconst types: Set<string> = new Set();\n\n\tfor (const command of builder.commands) {\n\t\tif (command.MakeMoveVec?.type) {\n\t\t\tgetNamesFromTypeList([command.MakeMoveVec.type]).forEach((type) => {\n\t\t\t\ttypes.add(type);\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!('MoveCall' in command)) continue;\n\t\tconst tx = command.MoveCall;\n\n\t\tif (!tx) continue;\n\n\t\tconst pkg = tx.package.split('::')[0];\n\t\tif (pkg.includes(NAME_SEPARATOR)) {\n\t\t\tif (!isValidNamedPackage(pkg)) throw new Error(`Invalid package name: ${pkg}`);\n\t\t\tpackages.add(pkg);\n\t\t}\n\n\t\tgetNamesFromTypeList(tx.typeArguments ?? []).forEach((type) => {\n\t\t\ttypes.add(type);\n\t\t});\n\t}\n\n\treturn {\n\t\tpackages: [...packages],\n\t\ttypes: [...types],\n\t};\n};\n\n/**\n * Returns a list of unique types that include a name\n * from the given list.\n * */\nfunction getNamesFromTypeList(types: string[]) {\n\tconst names = new Set<string>();\n\tfor (const type of types) {\n\t\tif (type.includes(NAME_SEPARATOR)) {\n\t\t\tif (!isValidNamedType(type)) throw new Error(`Invalid type with names: ${type}`);\n\t\t\tnames.add(type);\n\t\t}\n\t}\n\treturn [...names];\n}\n\n/**\n * Replace all names & types in a transaction block\n * with their resolved names/types.\n */\nexport const replaceNames = (builder: TransactionDataBuilder, cache: NamedPackagesPluginCache) => {\n\tfor (const command of builder.commands) {\n\t\t// Replacements for `MakeMoveVec` commands (that can include types)\n\t\tif (command.MakeMoveVec?.type) {\n\t\t\tif (!command.MakeMoveVec.type.includes(NAME_SEPARATOR)) continue;\n\t\t\tif (!cache.types[command.MakeMoveVec.type])\n\t\t\t\tthrow new Error(`No resolution found for type: ${command.MakeMoveVec.type}`);\n\t\t\tcommand.MakeMoveVec.type = cache.types[command.MakeMoveVec.type];\n\t\t}\n\t\t// Replacements for `MoveCall` commands (that can include packages & types)\n\t\tconst tx = command.MoveCall;\n\t\tif (!tx) continue;\n\n\t\tconst nameParts = tx.package.split('::');\n\t\tconst name = nameParts[0];\n\n\t\tif (name.includes(NAME_SEPARATOR) && !cache.packages[name])\n\t\t\tthrow new Error(`No address found for package: ${name}`);\n\n\t\tnameParts[0] = cache.packages[name];\n\t\ttx.package = nameParts.join('::');\n\n\t\tconst types = tx.typeArguments;\n\t\tif (!types) continue;\n\n\t\tfor (let i = 0; i < types.length; i++) {\n\t\t\tif (!types[i].includes(NAME_SEPARATOR)) continue;\n\n\t\t\tif (!cache.types[types[i]]) throw new Error(`No resolution found for type: ${types[i]}`);\n\t\t\ttypes[i] = cache.types[types[i]];\n\t\t}\n\n\t\ttx.typeArguments = types;\n\t}\n};\n\nexport const listToRequests = (\n\tnames: { packages: string[]; types: string[] },\n\tbatchSize: number,\n): NameResolutionRequest[][] => {\n\tconst results: NameResolutionRequest[] = [];\n\tconst uniqueNames = deduplicate(names.packages);\n\tconst uniqueTypes = deduplicate(names.types);\n\n\tfor (const [idx, name] of uniqueNames.entries()) {\n\t\tresults.push({ id: idx, type: 'package', name } as NameResolutionRequest);\n\t}\n\tfor (const [idx, type] of uniqueTypes.entries()) {\n\t\tresults.push({\n\t\t\tid: idx + uniqueNames.length,\n\t\t\ttype: 'moveType',\n\t\t\tname: type,\n\t\t} as NameResolutionRequest);\n\t}\n\n\treturn batch(results, batchSize);\n};\n\nconst deduplicate = <T>(arr: T[]): T[] => [...new Set(arr)];\n\nconst batch = <T>(arr: T[], size: number): T[][] => {\n\tconst batches = [];\n\tfor (let i = 0; i < arr.length; i += size) {\n\t\tbatches.push(arr.slice(i, i + size));\n\t}\n\treturn batches;\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { isValidNamedPackage, isValidNamedType } from '../../utils/move-registry.js';\nimport type { TransactionDataBuilder } from '../TransactionData.js';\n\nexport type NamedPackagesPluginCache = {\n\tpackages: Record<string, string>;\n\ttypes: Record<string, string>;\n};\n\nconst NAME_SEPARATOR = '/';\n\nexport type NameResolutionRequest = {\n\tid: number;\n\ttype: 'package' | 'moveType';\n\tname: string;\n};\n\n/**\n * Looks up all `.move` names in a transaction block.\n * Returns a list of all the names found.\n */\nexport const findTransactionBlockNames = (\n\tbuilder: TransactionDataBuilder,\n): { packages: string[]; types: string[] } => {\n\tconst packages: Set<string> = new Set();\n\tconst types: Set<string> = new Set();\n\n\tfor (const command of builder.commands) {\n\t\tif (command.MakeMoveVec?.type) {\n\t\t\tgetNamesFromTypeList([command.MakeMoveVec.type]).forEach((type) => {\n\t\t\t\ttypes.add(type);\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\tif (!('MoveCall' in command)) continue;\n\t\tconst tx = command.MoveCall;\n\n\t\tif (!tx) continue;\n\n\t\tconst pkg = tx.package.split('::')[0];\n\t\tif (pkg.includes(NAME_SEPARATOR)) {\n\t\t\tif (!isValidNamedPackage(pkg)) throw new Error(`Invalid package name: ${pkg}`);\n\t\t\tpackages.add(pkg);\n\t\t}\n\n\t\tgetNamesFromTypeList(tx.typeArguments ?? []).forEach((type) => {\n\t\t\ttypes.add(type);\n\t\t});\n\t}\n\n\treturn {\n\t\tpackages: [...packages],\n\t\ttypes: [...types],\n\t};\n};\n\n/**\n * Returns a list of unique types that include a name\n * from the given list.\n * */\nfunction getNamesFromTypeList(types: string[]) {\n\tconst names = new Set<string>();\n\tfor (const type of types) {\n\t\tif (type.includes(NAME_SEPARATOR)) {\n\t\t\tif (!isValidNamedType(type)) throw new Error(`Invalid type with names: ${type}`);\n\t\t\tnames.add(type);\n\t\t}\n\t}\n\treturn [...names];\n}\n\n/**\n * Replace all names & types in a transaction block\n * with their resolved names/types.\n */\nexport const replaceNames = (builder: TransactionDataBuilder, cache: NamedPackagesPluginCache) => {\n\tfor (const command of builder.commands) {\n\t\t// Replacements for `MakeMoveVec` commands (that can include types)\n\t\tif (command.MakeMoveVec?.type) {\n\t\t\tif (!command.MakeMoveVec.type.includes(NAME_SEPARATOR)) continue;\n\t\t\tif (!cache.types[command.MakeMoveVec.type])\n\t\t\t\tthrow new Error(`No resolution found for type: ${command.MakeMoveVec.type}`);\n\t\t\tcommand.MakeMoveVec.type = cache.types[command.MakeMoveVec.type];\n\t\t}\n\t\t// Replacements for `MoveCall` commands (that can include packages & types)\n\t\tconst tx = command.MoveCall;\n\t\tif (!tx) continue;\n\n\t\tconst nameParts = tx.package.split('::');\n\t\tconst name = nameParts[0];\n\n\t\tif (name.includes(NAME_SEPARATOR) && !cache.packages[name])\n\t\t\tthrow new Error(`No address found for package: ${name}`);\n\n\t\t// Replace package name with address.\n\t\tif (name.includes(NAME_SEPARATOR)) {\n\t\t\tnameParts[0] = cache.packages[name];\n\t\t\ttx.package = nameParts.join('::');\n\t\t}\n\n\t\tconst types = tx.typeArguments;\n\t\tif (!types) continue;\n\n\t\tfor (let i = 0; i < types.length; i++) {\n\t\t\tif (!types[i].includes(NAME_SEPARATOR)) continue;\n\n\t\t\tif (!cache.types[types[i]]) throw new Error(`No resolution found for type: ${types[i]}`);\n\t\t\ttypes[i] = cache.types[types[i]];\n\t\t}\n\n\t\ttx.typeArguments = types;\n\t}\n};\n\nexport const listToRequests = (\n\tnames: { packages: string[]; types: string[] },\n\tbatchSize: number,\n): NameResolutionRequest[][] => {\n\tconst results: NameResolutionRequest[] = [];\n\tconst uniqueNames = deduplicate(names.packages);\n\tconst uniqueTypes = deduplicate(names.types);\n\n\tfor (const [idx, name] of uniqueNames.entries()) {\n\t\tresults.push({ id: idx, type: 'package', name } as NameResolutionRequest);\n\t}\n\tfor (const [idx, type] of uniqueTypes.entries()) {\n\t\tresults.push({\n\t\t\tid: idx + uniqueNames.length,\n\t\t\ttype: 'moveType',\n\t\t\tname: type,\n\t\t} as NameResolutionRequest);\n\t}\n\n\treturn batch(results, batchSize);\n};\n\nconst deduplicate = <T>(arr: T[]): T[] => [...new Set(arr)];\n\nconst batch = <T>(arr: T[], size: number): T[][] => {\n\tconst batches = [];\n\tfor (let i = 0; i < arr.length; i += size) {\n\t\tbatches.push(arr.slice(i, i + size));\n\t}\n\treturn batches;\n};\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,7 @@
1
1
  import { fromBase64 } from "@mysten/bcs";
2
2
  import { parseSerializedSignature, SIGNATURE_FLAG_TO_SCHEME } from "../cryptography/index.js";
3
3
  import { Ed25519PublicKey } from "../keypairs/ed25519/publickey.js";
4
+ import { PasskeyPublicKey } from "../keypairs/passkey/publickey.js";
4
5
  import { Secp256k1PublicKey } from "../keypairs/secp256k1/publickey.js";
5
6
  import { Secp256r1PublicKey } from "../keypairs/secp256r1/publickey.js";
6
7
  import { MultiSigPublicKey } from "../multisig/publickey.js";
@@ -62,6 +63,8 @@ function publicKeyFromRawBytes(signatureScheme, bytes, options = {}) {
62
63
  return new MultiSigPublicKey(bytes);
63
64
  case "ZkLogin":
64
65
  return new ZkLoginPublicIdentifier(bytes, options);
66
+ case "Passkey":
67
+ return new PasskeyPublicKey(bytes);
65
68
  default:
66
69
  throw new Error(`Unsupported signature scheme ${signatureScheme}`);
67
70
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/verify/verify.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\n\nimport type { PublicKey, SignatureFlag, SignatureScheme } from '../cryptography/index.js';\nimport { parseSerializedSignature, SIGNATURE_FLAG_TO_SCHEME } from '../cryptography/index.js';\nimport type { SuiGraphQLClient } from '../graphql/client.js';\nimport { Ed25519PublicKey } from '../keypairs/ed25519/publickey.js';\nimport { Secp256k1PublicKey } from '../keypairs/secp256k1/publickey.js';\nimport { Secp256r1PublicKey } from '../keypairs/secp256r1/publickey.js';\n// eslint-disable-next-line import/no-cycle\nimport { MultiSigPublicKey } from '../multisig/publickey.js';\nimport { ZkLoginPublicIdentifier } from '../zklogin/publickey.js';\n\nexport async function verifySignature(bytes: Uint8Array, signature: string): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature);\n\n\tif (!(await parsedSignature.publicKey.verify(bytes, parsedSignature.serializedSignature))) {\n\t\tthrow new Error(`Signature is not valid for the provided data`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nexport async function verifyPersonalMessageSignature(\n\tmessage: Uint8Array,\n\tsignature: string,\n\toptions: { client?: SuiGraphQLClient } = {},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature, options);\n\n\tif (\n\t\t!(await parsedSignature.publicKey.verifyPersonalMessage(\n\t\t\tmessage,\n\t\t\tparsedSignature.serializedSignature,\n\t\t))\n\t) {\n\t\tthrow new Error(`Signature is not valid for the provided message`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nexport async function verifyTransactionSignature(\n\ttransaction: Uint8Array,\n\tsignature: string,\n\toptions: { client?: SuiGraphQLClient } = {},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature, options);\n\n\tif (\n\t\t!(await parsedSignature.publicKey.verifyTransaction(\n\t\t\ttransaction,\n\t\t\tparsedSignature.serializedSignature,\n\t\t))\n\t) {\n\t\tthrow new Error(`Signature is not valid for the provided Transaction`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nfunction parseSignature(signature: string, options: { client?: SuiGraphQLClient } = {}) {\n\tconst parsedSignature = parseSerializedSignature(signature);\n\n\tif (parsedSignature.signatureScheme === 'MultiSig') {\n\t\treturn {\n\t\t\t...parsedSignature,\n\t\t\tpublicKey: new MultiSigPublicKey(parsedSignature.multisig.multisig_pk),\n\t\t};\n\t}\n\n\tconst publicKey = publicKeyFromRawBytes(\n\t\tparsedSignature.signatureScheme,\n\t\tparsedSignature.publicKey,\n\t\toptions,\n\t);\n\treturn {\n\t\t...parsedSignature,\n\t\tpublicKey,\n\t};\n}\n\nexport function publicKeyFromRawBytes(\n\tsignatureScheme: SignatureScheme,\n\tbytes: Uint8Array,\n\toptions: { client?: SuiGraphQLClient } = {},\n): PublicKey {\n\tswitch (signatureScheme) {\n\t\tcase 'ED25519':\n\t\t\treturn new Ed25519PublicKey(bytes);\n\t\tcase 'Secp256k1':\n\t\t\treturn new Secp256k1PublicKey(bytes);\n\t\tcase 'Secp256r1':\n\t\t\treturn new Secp256r1PublicKey(bytes);\n\t\tcase 'MultiSig':\n\t\t\treturn new MultiSigPublicKey(bytes);\n\t\tcase 'ZkLogin':\n\t\t\treturn new ZkLoginPublicIdentifier(bytes, options);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported signature scheme ${signatureScheme}`);\n\t}\n}\n\nexport function publicKeyFromSuiBytes(\n\tpublicKey: string | Uint8Array,\n\toptions: { client?: SuiGraphQLClient } = {},\n) {\n\tconst bytes = typeof publicKey === 'string' ? fromBase64(publicKey) : publicKey;\n\n\tconst signatureScheme = SIGNATURE_FLAG_TO_SCHEME[bytes[0] as SignatureFlag];\n\n\treturn publicKeyFromRawBytes(signatureScheme, bytes.slice(1), options);\n}\n"],
5
- "mappings": "AAGA,SAAS,kBAAkB;AAG3B,SAAS,0BAA0B,gCAAgC;AAEnE,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,yBAAyB;AAClC,SAAS,+BAA+B;AAExC,eAAsB,gBAAgB,OAAmB,WAAuC;AAC/F,QAAM,kBAAkB,eAAe,SAAS;AAEhD,MAAI,CAAE,MAAM,gBAAgB,UAAU,OAAO,OAAO,gBAAgB,mBAAmB,GAAI;AAC1F,UAAM,IAAI,MAAM,8CAA8C;AAAA,EAC/D;AAEA,SAAO,gBAAgB;AACxB;AAEA,eAAsB,+BACrB,SACA,WACA,UAAyC,CAAC,GACrB;AACrB,QAAM,kBAAkB,eAAe,WAAW,OAAO;AAEzD,MACC,CAAE,MAAM,gBAAgB,UAAU;AAAA,IACjC;AAAA,IACA,gBAAgB;AAAA,EACjB,GACC;AACD,UAAM,IAAI,MAAM,iDAAiD;AAAA,EAClE;AAEA,SAAO,gBAAgB;AACxB;AAEA,eAAsB,2BACrB,aACA,WACA,UAAyC,CAAC,GACrB;AACrB,QAAM,kBAAkB,eAAe,WAAW,OAAO;AAEzD,MACC,CAAE,MAAM,gBAAgB,UAAU;AAAA,IACjC;AAAA,IACA,gBAAgB;AAAA,EACjB,GACC;AACD,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE;AAEA,SAAO,gBAAgB;AACxB;AAEA,SAAS,eAAe,WAAmB,UAAyC,CAAC,GAAG;AACvF,QAAM,kBAAkB,yBAAyB,SAAS;AAE1D,MAAI,gBAAgB,oBAAoB,YAAY;AACnD,WAAO;AAAA,MACN,GAAG;AAAA,MACH,WAAW,IAAI,kBAAkB,gBAAgB,SAAS,WAAW;AAAA,IACtE;AAAA,EACD;AAEA,QAAM,YAAY;AAAA,IACjB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB;AAAA,EACD;AACA,SAAO;AAAA,IACN,GAAG;AAAA,IACH;AAAA,EACD;AACD;AAEO,SAAS,sBACf,iBACA,OACA,UAAyC,CAAC,GAC9B;AACZ,UAAQ,iBAAiB;AAAA,IACxB,KAAK;AACJ,aAAO,IAAI,iBAAiB,KAAK;AAAA,IAClC,KAAK;AACJ,aAAO,IAAI,mBAAmB,KAAK;AAAA,IACpC,KAAK;AACJ,aAAO,IAAI,mBAAmB,KAAK;AAAA,IACpC,KAAK;AACJ,aAAO,IAAI,kBAAkB,KAAK;AAAA,IACnC,KAAK;AACJ,aAAO,IAAI,wBAAwB,OAAO,OAAO;AAAA,IAClD;AACC,YAAM,IAAI,MAAM,gCAAgC,eAAe,EAAE;AAAA,EACnE;AACD;AAEO,SAAS,sBACf,WACA,UAAyC,CAAC,GACzC;AACD,QAAM,QAAQ,OAAO,cAAc,WAAW,WAAW,SAAS,IAAI;AAEtE,QAAM,kBAAkB,yBAAyB,MAAM,CAAC,CAAkB;AAE1E,SAAO,sBAAsB,iBAAiB,MAAM,MAAM,CAAC,GAAG,OAAO;AACtE;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64 } from '@mysten/bcs';\n\nimport type { PublicKey, SignatureFlag, SignatureScheme } from '../cryptography/index.js';\nimport { parseSerializedSignature, SIGNATURE_FLAG_TO_SCHEME } from '../cryptography/index.js';\nimport type { SuiGraphQLClient } from '../graphql/client.js';\nimport { Ed25519PublicKey } from '../keypairs/ed25519/publickey.js';\nimport { PasskeyPublicKey } from '../keypairs/passkey/publickey.js';\nimport { Secp256k1PublicKey } from '../keypairs/secp256k1/publickey.js';\nimport { Secp256r1PublicKey } from '../keypairs/secp256r1/publickey.js';\n// eslint-disable-next-line import/no-cycle\nimport { MultiSigPublicKey } from '../multisig/publickey.js';\nimport { ZkLoginPublicIdentifier } from '../zklogin/publickey.js';\n\nexport async function verifySignature(bytes: Uint8Array, signature: string): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature);\n\n\tif (!(await parsedSignature.publicKey.verify(bytes, parsedSignature.serializedSignature))) {\n\t\tthrow new Error(`Signature is not valid for the provided data`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nexport async function verifyPersonalMessageSignature(\n\tmessage: Uint8Array,\n\tsignature: string,\n\toptions: { client?: SuiGraphQLClient } = {},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature, options);\n\n\tif (\n\t\t!(await parsedSignature.publicKey.verifyPersonalMessage(\n\t\t\tmessage,\n\t\t\tparsedSignature.serializedSignature,\n\t\t))\n\t) {\n\t\tthrow new Error(`Signature is not valid for the provided message`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nexport async function verifyTransactionSignature(\n\ttransaction: Uint8Array,\n\tsignature: string,\n\toptions: { client?: SuiGraphQLClient } = {},\n): Promise<PublicKey> {\n\tconst parsedSignature = parseSignature(signature, options);\n\n\tif (\n\t\t!(await parsedSignature.publicKey.verifyTransaction(\n\t\t\ttransaction,\n\t\t\tparsedSignature.serializedSignature,\n\t\t))\n\t) {\n\t\tthrow new Error(`Signature is not valid for the provided Transaction`);\n\t}\n\n\treturn parsedSignature.publicKey;\n}\n\nfunction parseSignature(signature: string, options: { client?: SuiGraphQLClient } = {}) {\n\tconst parsedSignature = parseSerializedSignature(signature);\n\n\tif (parsedSignature.signatureScheme === 'MultiSig') {\n\t\treturn {\n\t\t\t...parsedSignature,\n\t\t\tpublicKey: new MultiSigPublicKey(parsedSignature.multisig.multisig_pk),\n\t\t};\n\t}\n\n\tconst publicKey = publicKeyFromRawBytes(\n\t\tparsedSignature.signatureScheme,\n\t\tparsedSignature.publicKey,\n\t\toptions,\n\t);\n\treturn {\n\t\t...parsedSignature,\n\t\tpublicKey,\n\t};\n}\n\nexport function publicKeyFromRawBytes(\n\tsignatureScheme: SignatureScheme,\n\tbytes: Uint8Array,\n\toptions: { client?: SuiGraphQLClient } = {},\n): PublicKey {\n\tswitch (signatureScheme) {\n\t\tcase 'ED25519':\n\t\t\treturn new Ed25519PublicKey(bytes);\n\t\tcase 'Secp256k1':\n\t\t\treturn new Secp256k1PublicKey(bytes);\n\t\tcase 'Secp256r1':\n\t\t\treturn new Secp256r1PublicKey(bytes);\n\t\tcase 'MultiSig':\n\t\t\treturn new MultiSigPublicKey(bytes);\n\t\tcase 'ZkLogin':\n\t\t\treturn new ZkLoginPublicIdentifier(bytes, options);\n\t\tcase 'Passkey':\n\t\t\treturn new PasskeyPublicKey(bytes);\n\t\tdefault:\n\t\t\tthrow new Error(`Unsupported signature scheme ${signatureScheme}`);\n\t}\n}\n\nexport function publicKeyFromSuiBytes(\n\tpublicKey: string | Uint8Array,\n\toptions: { client?: SuiGraphQLClient } = {},\n) {\n\tconst bytes = typeof publicKey === 'string' ? fromBase64(publicKey) : publicKey;\n\n\tconst signatureScheme = SIGNATURE_FLAG_TO_SCHEME[bytes[0] as SignatureFlag];\n\n\treturn publicKeyFromRawBytes(signatureScheme, bytes.slice(1), options);\n}\n"],
5
+ "mappings": "AAGA,SAAS,kBAAkB;AAG3B,SAAS,0BAA0B,gCAAgC;AAEnE,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,0BAA0B;AAEnC,SAAS,yBAAyB;AAClC,SAAS,+BAA+B;AAExC,eAAsB,gBAAgB,OAAmB,WAAuC;AAC/F,QAAM,kBAAkB,eAAe,SAAS;AAEhD,MAAI,CAAE,MAAM,gBAAgB,UAAU,OAAO,OAAO,gBAAgB,mBAAmB,GAAI;AAC1F,UAAM,IAAI,MAAM,8CAA8C;AAAA,EAC/D;AAEA,SAAO,gBAAgB;AACxB;AAEA,eAAsB,+BACrB,SACA,WACA,UAAyC,CAAC,GACrB;AACrB,QAAM,kBAAkB,eAAe,WAAW,OAAO;AAEzD,MACC,CAAE,MAAM,gBAAgB,UAAU;AAAA,IACjC;AAAA,IACA,gBAAgB;AAAA,EACjB,GACC;AACD,UAAM,IAAI,MAAM,iDAAiD;AAAA,EAClE;AAEA,SAAO,gBAAgB;AACxB;AAEA,eAAsB,2BACrB,aACA,WACA,UAAyC,CAAC,GACrB;AACrB,QAAM,kBAAkB,eAAe,WAAW,OAAO;AAEzD,MACC,CAAE,MAAM,gBAAgB,UAAU;AAAA,IACjC;AAAA,IACA,gBAAgB;AAAA,EACjB,GACC;AACD,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACtE;AAEA,SAAO,gBAAgB;AACxB;AAEA,SAAS,eAAe,WAAmB,UAAyC,CAAC,GAAG;AACvF,QAAM,kBAAkB,yBAAyB,SAAS;AAE1D,MAAI,gBAAgB,oBAAoB,YAAY;AACnD,WAAO;AAAA,MACN,GAAG;AAAA,MACH,WAAW,IAAI,kBAAkB,gBAAgB,SAAS,WAAW;AAAA,IACtE;AAAA,EACD;AAEA,QAAM,YAAY;AAAA,IACjB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB;AAAA,EACD;AACA,SAAO;AAAA,IACN,GAAG;AAAA,IACH;AAAA,EACD;AACD;AAEO,SAAS,sBACf,iBACA,OACA,UAAyC,CAAC,GAC9B;AACZ,UAAQ,iBAAiB;AAAA,IACxB,KAAK;AACJ,aAAO,IAAI,iBAAiB,KAAK;AAAA,IAClC,KAAK;AACJ,aAAO,IAAI,mBAAmB,KAAK;AAAA,IACpC,KAAK;AACJ,aAAO,IAAI,mBAAmB,KAAK;AAAA,IACpC,KAAK;AACJ,aAAO,IAAI,kBAAkB,KAAK;AAAA,IACnC,KAAK;AACJ,aAAO,IAAI,wBAAwB,OAAO,OAAO;AAAA,IAClD,KAAK;AACJ,aAAO,IAAI,iBAAiB,KAAK;AAAA,IAClC;AACC,YAAM,IAAI,MAAM,gCAAgC,eAAe,EAAE;AAAA,EACnE;AACD;AAEO,SAAS,sBACf,WACA,UAAyC,CAAC,GACzC;AACD,QAAM,QAAQ,OAAO,cAAc,WAAW,WAAW,SAAS,IAAI;AAEtE,QAAM,kBAAkB,yBAAyB,MAAM,CAAC,CAAkB;AAE1E,SAAO,sBAAsB,iBAAiB,MAAM,MAAM,CAAC,GAAG,OAAO;AACtE;",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- export declare const PACKAGE_VERSION = "1.16.1";
1
+ export declare const PACKAGE_VERSION = "1.17.0";
2
2
  export declare const TARGETED_RPC_VERSION = "1.40.0";
@@ -1,4 +1,4 @@
1
- const PACKAGE_VERSION = "1.16.1";
1
+ const PACKAGE_VERSION = "1.17.0";
2
2
  const TARGETED_RPC_VERSION = "1.40.0";
3
3
  export {
4
4
  PACKAGE_VERSION,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/version.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '1.16.1';\nexport const TARGETED_RPC_VERSION = '1.40.0';\n"],
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '1.17.0';\nexport const TARGETED_RPC_VERSION = '1.40.0';\n"],
5
5
  "mappings": "AAKO,MAAM,kBAAkB;AACxB,MAAM,uBAAuB;",
6
6
  "names": []
7
7
  }