@mysten/sui 1.9.0 → 1.11.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 (175) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/cjs/bcs/bcs.js +14 -14
  3. package/dist/cjs/bcs/bcs.js.map +2 -2
  4. package/dist/cjs/client/client.js +6 -6
  5. package/dist/cjs/client/client.js.map +2 -2
  6. package/dist/cjs/client/types/generated.d.ts +1 -2
  7. package/dist/cjs/client/types/generated.js.map +1 -1
  8. package/dist/cjs/cryptography/keypair.js +2 -2
  9. package/dist/cjs/cryptography/keypair.js.map +2 -2
  10. package/dist/cjs/cryptography/mnemonics.js +1 -1
  11. package/dist/cjs/cryptography/mnemonics.js.map +1 -1
  12. package/dist/cjs/cryptography/publickey.js +2 -2
  13. package/dist/cjs/cryptography/publickey.js.map +2 -2
  14. package/dist/cjs/cryptography/signature.js +2 -2
  15. package/dist/cjs/cryptography/signature.js.map +2 -2
  16. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js +1 -1
  17. package/dist/cjs/keypairs/ed25519/ed25519-hd-key.js.map +1 -1
  18. package/dist/cjs/keypairs/ed25519/keypair.d.ts +2 -2
  19. package/dist/cjs/keypairs/ed25519/keypair.js +8 -1
  20. package/dist/cjs/keypairs/ed25519/keypair.js.map +2 -2
  21. package/dist/cjs/keypairs/ed25519/publickey.js +1 -1
  22. package/dist/cjs/keypairs/ed25519/publickey.js.map +2 -2
  23. package/dist/cjs/keypairs/secp256k1/keypair.d.ts +2 -2
  24. package/dist/cjs/keypairs/secp256k1/keypair.js +8 -1
  25. package/dist/cjs/keypairs/secp256k1/keypair.js.map +2 -2
  26. package/dist/cjs/keypairs/secp256k1/publickey.js +1 -1
  27. package/dist/cjs/keypairs/secp256k1/publickey.js.map +2 -2
  28. package/dist/cjs/keypairs/secp256r1/keypair.d.ts +2 -2
  29. package/dist/cjs/keypairs/secp256r1/keypair.js +8 -1
  30. package/dist/cjs/keypairs/secp256r1/keypair.js.map +2 -2
  31. package/dist/cjs/keypairs/secp256r1/publickey.js +1 -1
  32. package/dist/cjs/keypairs/secp256r1/publickey.js.map +2 -2
  33. package/dist/cjs/multisig/publickey.js +2 -2
  34. package/dist/cjs/multisig/publickey.js.map +2 -2
  35. package/dist/cjs/multisig/signer.js +2 -2
  36. package/dist/cjs/multisig/signer.js.map +2 -2
  37. package/dist/cjs/transactions/Commands.js +2 -2
  38. package/dist/cjs/transactions/Commands.js.map +2 -2
  39. package/dist/cjs/transactions/Inputs.js +1 -1
  40. package/dist/cjs/transactions/Inputs.js.map +2 -2
  41. package/dist/cjs/transactions/Transaction.js +2 -2
  42. package/dist/cjs/transactions/Transaction.js.map +2 -2
  43. package/dist/cjs/transactions/TransactionData.js +1 -1
  44. package/dist/cjs/transactions/TransactionData.js.map +2 -2
  45. package/dist/cjs/transactions/data/v1.js +6 -6
  46. package/dist/cjs/transactions/data/v1.js.map +2 -2
  47. package/dist/cjs/transactions/executor/parallel.js +1 -1
  48. package/dist/cjs/transactions/executor/parallel.js.map +2 -2
  49. package/dist/cjs/transactions/executor/serial.js +1 -1
  50. package/dist/cjs/transactions/executor/serial.js.map +2 -2
  51. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.d.ts +3 -3
  52. package/dist/cjs/transactions/plugins/NamedPackagesPlugin.js.map +1 -1
  53. package/dist/cjs/transactions/plugins/utils.js +26 -7
  54. package/dist/cjs/transactions/plugins/utils.js.map +2 -2
  55. package/dist/cjs/utils/index.d.ts +1 -1
  56. package/dist/cjs/utils/index.js +7 -1
  57. package/dist/cjs/utils/index.js.map +2 -2
  58. package/dist/cjs/utils/move-registry.js +12 -3
  59. package/dist/cjs/utils/move-registry.js.map +2 -2
  60. package/dist/cjs/utils/sui-types.js +1 -1
  61. package/dist/cjs/utils/sui-types.js.map +2 -2
  62. package/dist/cjs/verify/verify.js +1 -1
  63. package/dist/cjs/verify/verify.js.map +2 -2
  64. package/dist/cjs/version.d.ts +2 -2
  65. package/dist/cjs/version.js +2 -2
  66. package/dist/cjs/version.js.map +1 -1
  67. package/dist/cjs/zklogin/publickey.js +5 -5
  68. package/dist/cjs/zklogin/publickey.js.map +2 -2
  69. package/dist/cjs/zklogin/signature.js +3 -3
  70. package/dist/cjs/zklogin/signature.js.map +2 -2
  71. package/dist/esm/bcs/bcs.js +15 -15
  72. package/dist/esm/bcs/bcs.js.map +2 -2
  73. package/dist/esm/client/client.js +7 -7
  74. package/dist/esm/client/client.js.map +2 -2
  75. package/dist/esm/client/types/generated.d.ts +1 -2
  76. package/dist/esm/cryptography/keypair.js +3 -3
  77. package/dist/esm/cryptography/keypair.js.map +2 -2
  78. package/dist/esm/cryptography/mnemonics.js +2 -2
  79. package/dist/esm/cryptography/mnemonics.js.map +1 -1
  80. package/dist/esm/cryptography/publickey.js +3 -3
  81. package/dist/esm/cryptography/publickey.js.map +2 -2
  82. package/dist/esm/cryptography/signature.js +3 -3
  83. package/dist/esm/cryptography/signature.js.map +2 -2
  84. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js +2 -2
  85. package/dist/esm/keypairs/ed25519/ed25519-hd-key.js.map +1 -1
  86. package/dist/esm/keypairs/ed25519/keypair.d.ts +2 -2
  87. package/dist/esm/keypairs/ed25519/keypair.js +14 -2
  88. package/dist/esm/keypairs/ed25519/keypair.js.map +2 -2
  89. package/dist/esm/keypairs/ed25519/publickey.js +2 -2
  90. package/dist/esm/keypairs/ed25519/publickey.js.map +2 -2
  91. package/dist/esm/keypairs/secp256k1/keypair.d.ts +2 -2
  92. package/dist/esm/keypairs/secp256k1/keypair.js +9 -2
  93. package/dist/esm/keypairs/secp256k1/keypair.js.map +2 -2
  94. package/dist/esm/keypairs/secp256k1/publickey.js +2 -2
  95. package/dist/esm/keypairs/secp256k1/publickey.js.map +2 -2
  96. package/dist/esm/keypairs/secp256r1/keypair.d.ts +2 -2
  97. package/dist/esm/keypairs/secp256r1/keypair.js +9 -2
  98. package/dist/esm/keypairs/secp256r1/keypair.js.map +2 -2
  99. package/dist/esm/keypairs/secp256r1/publickey.js +2 -2
  100. package/dist/esm/keypairs/secp256r1/publickey.js.map +2 -2
  101. package/dist/esm/multisig/publickey.js +3 -3
  102. package/dist/esm/multisig/publickey.js.map +2 -2
  103. package/dist/esm/multisig/signer.js +3 -3
  104. package/dist/esm/multisig/signer.js.map +2 -2
  105. package/dist/esm/transactions/Commands.js +3 -3
  106. package/dist/esm/transactions/Commands.js.map +2 -2
  107. package/dist/esm/transactions/Inputs.js +2 -2
  108. package/dist/esm/transactions/Inputs.js.map +2 -2
  109. package/dist/esm/transactions/Transaction.js +3 -3
  110. package/dist/esm/transactions/Transaction.js.map +2 -2
  111. package/dist/esm/transactions/TransactionData.js +2 -2
  112. package/dist/esm/transactions/TransactionData.js.map +2 -2
  113. package/dist/esm/transactions/data/v1.js +7 -7
  114. package/dist/esm/transactions/data/v1.js.map +2 -2
  115. package/dist/esm/transactions/executor/parallel.js +2 -2
  116. package/dist/esm/transactions/executor/parallel.js.map +2 -2
  117. package/dist/esm/transactions/executor/serial.js +2 -2
  118. package/dist/esm/transactions/executor/serial.js.map +2 -2
  119. package/dist/esm/transactions/plugins/NamedPackagesPlugin.d.ts +3 -3
  120. package/dist/esm/transactions/plugins/NamedPackagesPlugin.js.map +1 -1
  121. package/dist/esm/transactions/plugins/utils.js +26 -7
  122. package/dist/esm/transactions/plugins/utils.js.map +2 -2
  123. package/dist/esm/utils/index.d.ts +1 -1
  124. package/dist/esm/utils/index.js +19 -2
  125. package/dist/esm/utils/index.js.map +2 -2
  126. package/dist/esm/utils/move-registry.js +12 -3
  127. package/dist/esm/utils/move-registry.js.map +2 -2
  128. package/dist/esm/utils/sui-types.js +2 -2
  129. package/dist/esm/utils/sui-types.js.map +2 -2
  130. package/dist/esm/verify/verify.js +2 -2
  131. package/dist/esm/verify/verify.js.map +2 -2
  132. package/dist/esm/version.d.ts +2 -2
  133. package/dist/esm/version.js +2 -2
  134. package/dist/esm/version.js.map +1 -1
  135. package/dist/esm/zklogin/publickey.js +6 -6
  136. package/dist/esm/zklogin/publickey.js.map +2 -2
  137. package/dist/esm/zklogin/signature.js +4 -4
  138. package/dist/esm/zklogin/signature.js.map +2 -2
  139. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  140. package/dist/tsconfig.tsbuildinfo +1 -1
  141. package/package.json +3 -3
  142. package/src/bcs/bcs.ts +15 -15
  143. package/src/client/client.ts +7 -7
  144. package/src/client/types/generated.ts +1 -2
  145. package/src/cryptography/keypair.ts +3 -3
  146. package/src/cryptography/mnemonics.ts +2 -2
  147. package/src/cryptography/publickey.ts +3 -3
  148. package/src/cryptography/signature.ts +3 -3
  149. package/src/keypairs/ed25519/ed25519-hd-key.ts +2 -2
  150. package/src/keypairs/ed25519/keypair.ts +18 -3
  151. package/src/keypairs/ed25519/publickey.ts +2 -2
  152. package/src/keypairs/secp256k1/keypair.ts +13 -3
  153. package/src/keypairs/secp256k1/publickey.ts +2 -2
  154. package/src/keypairs/secp256r1/keypair.ts +13 -3
  155. package/src/keypairs/secp256r1/publickey.ts +2 -2
  156. package/src/multisig/publickey.ts +3 -3
  157. package/src/multisig/signer.ts +3 -3
  158. package/src/transactions/Commands.ts +3 -3
  159. package/src/transactions/Inputs.ts +2 -2
  160. package/src/transactions/Transaction.ts +3 -3
  161. package/src/transactions/TransactionData.ts +2 -2
  162. package/src/transactions/__tests__/Transaction.test.ts +2 -2
  163. package/src/transactions/__tests__/bcs.test.ts +2 -2
  164. package/src/transactions/data/v1.ts +7 -7
  165. package/src/transactions/executor/parallel.ts +2 -2
  166. package/src/transactions/executor/serial.ts +2 -2
  167. package/src/transactions/plugins/NamedPackagesPlugin.ts +3 -3
  168. package/src/transactions/plugins/utils.ts +33 -7
  169. package/src/utils/index.ts +12 -1
  170. package/src/utils/move-registry.ts +24 -5
  171. package/src/utils/sui-types.ts +2 -2
  172. package/src/verify/verify.ts +2 -2
  173. package/src/version.ts +2 -2
  174. package/src/zklogin/publickey.ts +6 -6
  175. package/src/zklogin/signature.ts +5 -4
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
8
  var _data, _client;
9
- import { fromB64, toB64 } from "@mysten/bcs";
9
+ import { fromBase64, toBase64 } from "@mysten/bcs";
10
10
  import { PublicKey } from "../cryptography/publickey.js";
11
11
  import { SIGNATURE_SCHEME_TO_FLAG } from "../cryptography/signature-scheme.js";
12
12
  import { SuiGraphQLClient } from "../graphql/client.js";
@@ -25,7 +25,7 @@ const _ZkLoginPublicIdentifier = class _ZkLoginPublicIdentifier extends PublicKe
25
25
  __privateAdd(this, _client);
26
26
  __privateSet(this, _client, client);
27
27
  if (typeof value === "string") {
28
- __privateSet(this, _data, fromB64(value));
28
+ __privateSet(this, _data, fromBase64(value));
29
29
  } else if (value instanceof Uint8Array) {
30
30
  __privateSet(this, _data, value);
31
31
  } else {
@@ -64,7 +64,7 @@ const _ZkLoginPublicIdentifier = class _ZkLoginPublicIdentifier extends PublicKe
64
64
  const address = new _ZkLoginPublicIdentifier(parsedSignature.publicKey).toSuiAddress();
65
65
  return graphqlVerifyZkLoginSignature({
66
66
  address,
67
- bytes: toB64(message),
67
+ bytes: toBase64(message),
68
68
  signature: parsedSignature.serializedSignature,
69
69
  intentScope: "PERSONAL_MESSAGE",
70
70
  client: __privateGet(this, _client)
@@ -78,7 +78,7 @@ const _ZkLoginPublicIdentifier = class _ZkLoginPublicIdentifier extends PublicKe
78
78
  const address = new _ZkLoginPublicIdentifier(parsedSignature.publicKey).toSuiAddress();
79
79
  return graphqlVerifyZkLoginSignature({
80
80
  address,
81
- bytes: toB64(transaction),
81
+ bytes: toBase64(transaction),
82
82
  signature: parsedSignature.serializedSignature,
83
83
  intentScope: "TRANSACTION_DATA",
84
84
  client: __privateGet(this, _client)
@@ -136,7 +136,7 @@ async function graphqlVerifyZkLoginSignature({
136
136
  return resp.data?.verifyZkloginSignature.success === true && resp.data?.verifyZkloginSignature.errors.length === 0;
137
137
  }
138
138
  function parseSerializedZkLoginSignature(signature) {
139
- const bytes = typeof signature === "string" ? fromB64(signature) : signature;
139
+ const bytes = typeof signature === "string" ? fromBase64(signature) : signature;
140
140
  if (bytes[0] !== SIGNATURE_SCHEME_TO_FLAG.ZkLogin) {
141
141
  throw new Error("Invalid signature scheme");
142
142
  }
@@ -146,7 +146,7 @@ function parseSerializedZkLoginSignature(signature) {
146
146
  const iss = extractClaimValue(issBase64Details, "iss");
147
147
  const publicIdentifer = toZkLoginPublicIdentifier(BigInt(addressSeed), iss);
148
148
  return {
149
- serializedSignature: toB64(bytes),
149
+ serializedSignature: toBase64(bytes),
150
150
  signatureScheme: "ZkLogin",
151
151
  zkLogin: {
152
152
  inputs,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/zklogin/publickey.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromB64, toB64 } from '@mysten/bcs';\n\nimport { PublicKey } from '../cryptography/publickey.js';\nimport type { PublicKeyInitData } from '../cryptography/publickey.js';\nimport { SIGNATURE_SCHEME_TO_FLAG } from '../cryptography/signature-scheme.js';\nimport { SuiGraphQLClient } from '../graphql/client.js';\nimport { graphql } from '../graphql/schemas/2024.4/index.js';\nimport { extractClaimValue } from './jwt-utils.js';\nimport { parseZkLoginSignature } from './signature.js';\nimport { toPaddedBigEndianBytes } from './utils.js';\n\n/**\n * A zkLogin public identifier\n */\nexport class ZkLoginPublicIdentifier extends PublicKey {\n\t#data: Uint8Array;\n\t#client?: SuiGraphQLClient;\n\n\t/**\n\t * Create a new ZkLoginPublicIdentifier object\n\t * @param value zkLogin public identifier as buffer or base-64 encoded string\n\t */\n\tconstructor(value: PublicKeyInitData, { client }: { client?: SuiGraphQLClient } = {}) {\n\t\tsuper();\n\n\t\tthis.#client = client;\n\n\t\tif (typeof value === 'string') {\n\t\t\tthis.#data = fromB64(value);\n\t\t} else if (value instanceof Uint8Array) {\n\t\t\tthis.#data = value;\n\t\t} else {\n\t\t\tthis.#data = Uint8Array.from(value);\n\t\t}\n\t}\n\n\t/**\n\t * Checks if two zkLogin public identifiers are equal\n\t */\n\toverride equals(publicKey: ZkLoginPublicIdentifier): boolean {\n\t\treturn super.equals(publicKey);\n\t}\n\n\t/**\n\t * Return the byte array representation of the zkLogin public identifier\n\t */\n\ttoRawBytes(): Uint8Array {\n\t\treturn this.#data;\n\t}\n\n\t/**\n\t * Return the Sui address associated with this ZkLogin public identifier\n\t */\n\tflag(): number {\n\t\treturn SIGNATURE_SCHEME_TO_FLAG['ZkLogin'];\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided message\n\t */\n\tasync verify(_message: Uint8Array, _signature: Uint8Array | string): Promise<boolean> {\n\t\tthrow Error('does not support');\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided PersonalMessage\n\t */\n\tverifyPersonalMessage(message: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\tconst parsedSignature = parseSerializedZkLoginSignature(signature);\n\t\tconst address = new ZkLoginPublicIdentifier(parsedSignature.publicKey).toSuiAddress();\n\n\t\treturn graphqlVerifyZkLoginSignature({\n\t\t\taddress: address,\n\t\t\tbytes: toB64(message),\n\t\t\tsignature: parsedSignature.serializedSignature,\n\t\t\tintentScope: 'PERSONAL_MESSAGE',\n\t\t\tclient: this.#client,\n\t\t});\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided Transaction\n\t */\n\tverifyTransaction(transaction: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\tconst parsedSignature = parseSerializedZkLoginSignature(signature);\n\t\tconst address = new ZkLoginPublicIdentifier(parsedSignature.publicKey).toSuiAddress();\n\t\treturn graphqlVerifyZkLoginSignature({\n\t\t\taddress: address,\n\t\t\tbytes: toB64(transaction),\n\t\t\tsignature: parsedSignature.serializedSignature,\n\t\t\tintentScope: 'TRANSACTION_DATA',\n\t\t\tclient: this.#client,\n\t\t});\n\t}\n}\n\n// Derive the public identifier for zklogin based on address seed and iss.\nexport function toZkLoginPublicIdentifier(\n\taddressSeed: bigint,\n\tiss: string,\n\toptions?: { client?: SuiGraphQLClient },\n): ZkLoginPublicIdentifier {\n\t// Consists of iss_bytes_len || iss_bytes || padded_32_byte_address_seed.\n\tconst addressSeedBytesBigEndian = toPaddedBigEndianBytes(addressSeed, 32);\n\tconst issBytes = new TextEncoder().encode(iss);\n\tconst tmp = new Uint8Array(1 + issBytes.length + addressSeedBytesBigEndian.length);\n\ttmp.set([issBytes.length], 0);\n\ttmp.set(issBytes, 1);\n\ttmp.set(addressSeedBytesBigEndian, 1 + issBytes.length);\n\treturn new ZkLoginPublicIdentifier(tmp, options);\n}\n\nconst VerifyZkLoginSignatureQuery = graphql(`\n\tquery Zklogin(\n\t\t$bytes: Base64!\n\t\t$signature: Base64!\n\t\t$intentScope: ZkLoginIntentScope!\n\t\t$author: SuiAddress!\n\t) {\n\t\tverifyZkloginSignature(\n\t\t\tbytes: $bytes\n\t\t\tsignature: $signature\n\t\t\tintentScope: $intentScope\n\t\t\tauthor: $author\n\t\t) {\n\t\t\tsuccess\n\t\t\terrors\n\t\t}\n\t}\n`);\n\nasync function graphqlVerifyZkLoginSignature({\n\taddress,\n\tbytes,\n\tsignature,\n\tintentScope,\n\tclient = new SuiGraphQLClient({\n\t\turl: 'https://sui-mainnet.mystenlabs.com/graphql',\n\t}),\n}: {\n\taddress: string;\n\tbytes: string;\n\tsignature: string;\n\tintentScope: 'PERSONAL_MESSAGE' | 'TRANSACTION_DATA';\n\tclient?: SuiGraphQLClient;\n}) {\n\tconst resp = await client.query({\n\t\tquery: VerifyZkLoginSignatureQuery,\n\t\tvariables: {\n\t\t\tbytes,\n\t\t\tsignature,\n\t\t\tintentScope,\n\t\t\tauthor: address,\n\t\t},\n\t});\n\n\treturn (\n\t\tresp.data?.verifyZkloginSignature.success === true &&\n\t\tresp.data?.verifyZkloginSignature.errors.length === 0\n\t);\n}\n\nexport function parseSerializedZkLoginSignature(signature: Uint8Array | string) {\n\tconst bytes = typeof signature === 'string' ? fromB64(signature) : signature;\n\n\tif (bytes[0] !== SIGNATURE_SCHEME_TO_FLAG.ZkLogin) {\n\t\tthrow new Error('Invalid signature scheme');\n\t}\n\n\tconst signatureBytes = bytes.slice(1);\n\tconst { inputs, maxEpoch, userSignature } = parseZkLoginSignature(signatureBytes);\n\tconst { issBase64Details, addressSeed } = inputs;\n\tconst iss = extractClaimValue<string>(issBase64Details, 'iss');\n\tconst publicIdentifer = toZkLoginPublicIdentifier(BigInt(addressSeed), iss);\n\treturn {\n\t\tserializedSignature: toB64(bytes),\n\t\tsignatureScheme: 'ZkLogin' as const,\n\t\tzkLogin: {\n\t\t\tinputs,\n\t\t\tmaxEpoch,\n\t\t\tuserSignature,\n\t\t\tiss,\n\t\t\taddressSeed: BigInt(addressSeed),\n\t\t},\n\t\tsignature: bytes,\n\t\tpublicKey: publicIdentifer.toRawBytes(),\n\t};\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@mysten/bcs';\n\nimport { PublicKey } from '../cryptography/publickey.js';\nimport type { PublicKeyInitData } from '../cryptography/publickey.js';\nimport { SIGNATURE_SCHEME_TO_FLAG } from '../cryptography/signature-scheme.js';\nimport { SuiGraphQLClient } from '../graphql/client.js';\nimport { graphql } from '../graphql/schemas/2024.4/index.js';\nimport { extractClaimValue } from './jwt-utils.js';\nimport { parseZkLoginSignature } from './signature.js';\nimport { toPaddedBigEndianBytes } from './utils.js';\n\n/**\n * A zkLogin public identifier\n */\nexport class ZkLoginPublicIdentifier extends PublicKey {\n\t#data: Uint8Array;\n\t#client?: SuiGraphQLClient;\n\n\t/**\n\t * Create a new ZkLoginPublicIdentifier object\n\t * @param value zkLogin public identifier as buffer or base-64 encoded string\n\t */\n\tconstructor(value: PublicKeyInitData, { client }: { client?: SuiGraphQLClient } = {}) {\n\t\tsuper();\n\n\t\tthis.#client = client;\n\n\t\tif (typeof value === 'string') {\n\t\t\tthis.#data = fromBase64(value);\n\t\t} else if (value instanceof Uint8Array) {\n\t\t\tthis.#data = value;\n\t\t} else {\n\t\t\tthis.#data = Uint8Array.from(value);\n\t\t}\n\t}\n\n\t/**\n\t * Checks if two zkLogin public identifiers are equal\n\t */\n\toverride equals(publicKey: ZkLoginPublicIdentifier): boolean {\n\t\treturn super.equals(publicKey);\n\t}\n\n\t/**\n\t * Return the byte array representation of the zkLogin public identifier\n\t */\n\ttoRawBytes(): Uint8Array {\n\t\treturn this.#data;\n\t}\n\n\t/**\n\t * Return the Sui address associated with this ZkLogin public identifier\n\t */\n\tflag(): number {\n\t\treturn SIGNATURE_SCHEME_TO_FLAG['ZkLogin'];\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided message\n\t */\n\tasync verify(_message: Uint8Array, _signature: Uint8Array | string): Promise<boolean> {\n\t\tthrow Error('does not support');\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided PersonalMessage\n\t */\n\tverifyPersonalMessage(message: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\tconst parsedSignature = parseSerializedZkLoginSignature(signature);\n\t\tconst address = new ZkLoginPublicIdentifier(parsedSignature.publicKey).toSuiAddress();\n\n\t\treturn graphqlVerifyZkLoginSignature({\n\t\t\taddress: address,\n\t\t\tbytes: toBase64(message),\n\t\t\tsignature: parsedSignature.serializedSignature,\n\t\t\tintentScope: 'PERSONAL_MESSAGE',\n\t\t\tclient: this.#client,\n\t\t});\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided Transaction\n\t */\n\tverifyTransaction(transaction: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\tconst parsedSignature = parseSerializedZkLoginSignature(signature);\n\t\tconst address = new ZkLoginPublicIdentifier(parsedSignature.publicKey).toSuiAddress();\n\t\treturn graphqlVerifyZkLoginSignature({\n\t\t\taddress: address,\n\t\t\tbytes: toBase64(transaction),\n\t\t\tsignature: parsedSignature.serializedSignature,\n\t\t\tintentScope: 'TRANSACTION_DATA',\n\t\t\tclient: this.#client,\n\t\t});\n\t}\n}\n\n// Derive the public identifier for zklogin based on address seed and iss.\nexport function toZkLoginPublicIdentifier(\n\taddressSeed: bigint,\n\tiss: string,\n\toptions?: { client?: SuiGraphQLClient },\n): ZkLoginPublicIdentifier {\n\t// Consists of iss_bytes_len || iss_bytes || padded_32_byte_address_seed.\n\tconst addressSeedBytesBigEndian = toPaddedBigEndianBytes(addressSeed, 32);\n\tconst issBytes = new TextEncoder().encode(iss);\n\tconst tmp = new Uint8Array(1 + issBytes.length + addressSeedBytesBigEndian.length);\n\ttmp.set([issBytes.length], 0);\n\ttmp.set(issBytes, 1);\n\ttmp.set(addressSeedBytesBigEndian, 1 + issBytes.length);\n\treturn new ZkLoginPublicIdentifier(tmp, options);\n}\n\nconst VerifyZkLoginSignatureQuery = graphql(`\n\tquery Zklogin(\n\t\t$bytes: Base64!\n\t\t$signature: Base64!\n\t\t$intentScope: ZkLoginIntentScope!\n\t\t$author: SuiAddress!\n\t) {\n\t\tverifyZkloginSignature(\n\t\t\tbytes: $bytes\n\t\t\tsignature: $signature\n\t\t\tintentScope: $intentScope\n\t\t\tauthor: $author\n\t\t) {\n\t\t\tsuccess\n\t\t\terrors\n\t\t}\n\t}\n`);\n\nasync function graphqlVerifyZkLoginSignature({\n\taddress,\n\tbytes,\n\tsignature,\n\tintentScope,\n\tclient = new SuiGraphQLClient({\n\t\turl: 'https://sui-mainnet.mystenlabs.com/graphql',\n\t}),\n}: {\n\taddress: string;\n\tbytes: string;\n\tsignature: string;\n\tintentScope: 'PERSONAL_MESSAGE' | 'TRANSACTION_DATA';\n\tclient?: SuiGraphQLClient;\n}) {\n\tconst resp = await client.query({\n\t\tquery: VerifyZkLoginSignatureQuery,\n\t\tvariables: {\n\t\t\tbytes,\n\t\t\tsignature,\n\t\t\tintentScope,\n\t\t\tauthor: address,\n\t\t},\n\t});\n\n\treturn (\n\t\tresp.data?.verifyZkloginSignature.success === true &&\n\t\tresp.data?.verifyZkloginSignature.errors.length === 0\n\t);\n}\n\nexport function parseSerializedZkLoginSignature(signature: Uint8Array | string) {\n\tconst bytes = typeof signature === 'string' ? fromBase64(signature) : signature;\n\n\tif (bytes[0] !== SIGNATURE_SCHEME_TO_FLAG.ZkLogin) {\n\t\tthrow new Error('Invalid signature scheme');\n\t}\n\n\tconst signatureBytes = bytes.slice(1);\n\tconst { inputs, maxEpoch, userSignature } = parseZkLoginSignature(signatureBytes);\n\tconst { issBase64Details, addressSeed } = inputs;\n\tconst iss = extractClaimValue<string>(issBase64Details, 'iss');\n\tconst publicIdentifer = toZkLoginPublicIdentifier(BigInt(addressSeed), iss);\n\treturn {\n\t\tserializedSignature: toBase64(bytes),\n\t\tsignatureScheme: 'ZkLogin' as const,\n\t\tzkLogin: {\n\t\t\tinputs,\n\t\t\tmaxEpoch,\n\t\t\tuserSignature,\n\t\t\tiss,\n\t\t\taddressSeed: BigInt(addressSeed),\n\t\t},\n\t\tsignature: bytes,\n\t\tpublicKey: publicIdentifer.toRawBytes(),\n\t};\n}\n"],
5
+ "mappings": ";;;;;;;AAAA;AAGA,SAAS,YAAY,gBAAgB;AAErC,SAAS,iBAAiB;AAE1B,SAAS,gCAAgC;AACzC,SAAS,wBAAwB;AACjC,SAAS,eAAe;AACxB,SAAS,yBAAyB;AAClC,SAAS,6BAA6B;AACtC,SAAS,8BAA8B;AAKhC,MAAM,2BAAN,MAAM,iCAAgC,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAQtD,YAAY,OAA0B,EAAE,OAAO,IAAmC,CAAC,GAAG;AACrF,UAAM;AARP;AACA;AASC,uBAAK,SAAU;AAEf,QAAI,OAAO,UAAU,UAAU;AAC9B,yBAAK,OAAQ,WAAW,KAAK;AAAA,IAC9B,WAAW,iBAAiB,YAAY;AACvC,yBAAK,OAAQ;AAAA,IACd,OAAO;AACN,yBAAK,OAAQ,WAAW,KAAK,KAAK;AAAA,IACnC;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKS,OAAO,WAA6C;AAC5D,WAAO,MAAM,OAAO,SAAS;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,aAAyB;AACxB,WAAO,mBAAK;AAAA,EACb;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe;AACd,WAAO,yBAAyB,SAAS;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,UAAsB,YAAmD;AACrF,UAAM,MAAM,kBAAkB;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,sBAAsB,SAAqB,WAAkD;AAC5F,UAAM,kBAAkB,gCAAgC,SAAS;AACjE,UAAM,UAAU,IAAI,yBAAwB,gBAAgB,SAAS,EAAE,aAAa;AAEpF,WAAO,8BAA8B;AAAA,MACpC;AAAA,MACA,OAAO,SAAS,OAAO;AAAA,MACvB,WAAW,gBAAgB;AAAA,MAC3B,aAAa;AAAA,MACb,QAAQ,mBAAK;AAAA,IACd,CAAC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,aAAyB,WAAkD;AAC5F,UAAM,kBAAkB,gCAAgC,SAAS;AACjE,UAAM,UAAU,IAAI,yBAAwB,gBAAgB,SAAS,EAAE,aAAa;AACpF,WAAO,8BAA8B;AAAA,MACpC;AAAA,MACA,OAAO,SAAS,WAAW;AAAA,MAC3B,WAAW,gBAAgB;AAAA,MAC3B,aAAa;AAAA,MACb,QAAQ,mBAAK;AAAA,IACd,CAAC;AAAA,EACF;AACD;AA/EC;AACA;AAFM,IAAM,0BAAN;AAmFA,SAAS,0BACf,aACA,KACA,SAC0B;AAE1B,QAAM,4BAA4B,uBAAuB,aAAa,EAAE;AACxE,QAAM,WAAW,IAAI,YAAY,EAAE,OAAO,GAAG;AAC7C,QAAM,MAAM,IAAI,WAAW,IAAI,SAAS,SAAS,0BAA0B,MAAM;AACjF,MAAI,IAAI,CAAC,SAAS,MAAM,GAAG,CAAC;AAC5B,MAAI,IAAI,UAAU,CAAC;AACnB,MAAI,IAAI,2BAA2B,IAAI,SAAS,MAAM;AACtD,SAAO,IAAI,wBAAwB,KAAK,OAAO;AAChD;AAEA,MAAM,8BAA8B,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAiB3C;AAED,eAAe,8BAA8B;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,IAAI,iBAAiB;AAAA,IAC7B,KAAK;AAAA,EACN,CAAC;AACF,GAMG;AACF,QAAM,OAAO,MAAM,OAAO,MAAM;AAAA,IAC/B,OAAO;AAAA,IACP,WAAW;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,IACT;AAAA,EACD,CAAC;AAED,SACC,KAAK,MAAM,uBAAuB,YAAY,QAC9C,KAAK,MAAM,uBAAuB,OAAO,WAAW;AAEtD;AAEO,SAAS,gCAAgC,WAAgC;AAC/E,QAAM,QAAQ,OAAO,cAAc,WAAW,WAAW,SAAS,IAAI;AAEtE,MAAI,MAAM,CAAC,MAAM,yBAAyB,SAAS;AAClD,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC3C;AAEA,QAAM,iBAAiB,MAAM,MAAM,CAAC;AACpC,QAAM,EAAE,QAAQ,UAAU,cAAc,IAAI,sBAAsB,cAAc;AAChF,QAAM,EAAE,kBAAkB,YAAY,IAAI;AAC1C,QAAM,MAAM,kBAA0B,kBAAkB,KAAK;AAC7D,QAAM,kBAAkB,0BAA0B,OAAO,WAAW,GAAG,GAAG;AAC1E,SAAO;AAAA,IACN,qBAAqB,SAAS,KAAK;AAAA,IACnC,iBAAiB;AAAA,IACjB,SAAS;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,aAAa,OAAO,WAAW;AAAA,IAChC;AAAA,IACA,WAAW;AAAA,IACX,WAAW,gBAAgB,WAAW;AAAA,EACvC;AACD;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,4 @@
1
- import { fromB64, toB64 } from "@mysten/bcs";
1
+ import { fromBase64, toBase64 } from "@mysten/bcs";
2
2
  import { SIGNATURE_SCHEME_TO_FLAG } from "../cryptography/signature-scheme.js";
3
3
  import { zkLoginSignature } from "./bcs.js";
4
4
  function getZkLoginSignatureBytes({ inputs, maxEpoch, userSignature }) {
@@ -6,7 +6,7 @@ function getZkLoginSignatureBytes({ inputs, maxEpoch, userSignature }) {
6
6
  {
7
7
  inputs,
8
8
  maxEpoch,
9
- userSignature: typeof userSignature === "string" ? fromB64(userSignature) : userSignature
9
+ userSignature: typeof userSignature === "string" ? fromBase64(userSignature) : userSignature
10
10
  },
11
11
  { maxSize: 2048 }
12
12
  ).toBytes();
@@ -16,10 +16,10 @@ function getZkLoginSignature({ inputs, maxEpoch, userSignature }) {
16
16
  const signatureBytes = new Uint8Array(bytes.length + 1);
17
17
  signatureBytes.set([SIGNATURE_SCHEME_TO_FLAG.ZkLogin]);
18
18
  signatureBytes.set(bytes, 1);
19
- return toB64(signatureBytes);
19
+ return toBase64(signatureBytes);
20
20
  }
21
21
  function parseZkLoginSignature(signature) {
22
- return zkLoginSignature.parse(typeof signature === "string" ? fromB64(signature) : signature);
22
+ return zkLoginSignature.parse(typeof signature === "string" ? fromBase64(signature) : signature);
23
23
  }
24
24
  export {
25
25
  getZkLoginSignature,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/zklogin/signature.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromB64, toB64 } 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: typeof userSignature === 'string' ? fromB64(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 toB64(signatureBytes);\n}\n\nexport function parseZkLoginSignature(signature: string | Uint8Array) {\n\treturn zkLoginSignature.parse(typeof signature === 'string' ? fromB64(signature) : signature);\n}\n"],
5
- "mappings": "AAGA,SAAS,SAAS,aAAa;AAE/B,SAAS,gCAAgC;AAEzC,SAAS,wBAAwB;AAMjC,SAAS,yBAAyB,EAAE,QAAQ,UAAU,cAAc,GAA6B;AAChG,SAAO,iBACL;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA,eAAe,OAAO,kBAAkB,WAAW,QAAQ,aAAa,IAAI;AAAA,IAC7E;AAAA,IACA,EAAE,SAAS,KAAK;AAAA,EACjB,EACC,QAAQ;AACX;AAEO,SAAS,oBAAoB,EAAE,QAAQ,UAAU,cAAc,GAA6B;AAClG,QAAM,QAAQ,yBAAyB,EAAE,QAAQ,UAAU,cAAc,CAAC;AAC1E,QAAM,iBAAiB,IAAI,WAAW,MAAM,SAAS,CAAC;AACtD,iBAAe,IAAI,CAAC,yBAAyB,OAAO,CAAC;AACrD,iBAAe,IAAI,OAAO,CAAC;AAC3B,SAAO,MAAM,cAAc;AAC5B;AAEO,SAAS,sBAAsB,WAAgC;AACrE,SAAO,iBAAiB,MAAM,OAAO,cAAc,WAAW,QAAQ,SAAS,IAAI,SAAS;AAC7F;",
4
+ "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"],
5
+ "mappings": "AAGA,SAAS,YAAY,gBAAgB;AAErC,SAAS,gCAAgC;AAEzC,SAAS,wBAAwB;AAMjC,SAAS,yBAAyB,EAAE,QAAQ,UAAU,cAAc,GAA6B;AAChG,SAAO,iBACL;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA,eACC,OAAO,kBAAkB,WAAW,WAAW,aAAa,IAAI;AAAA,IAClE;AAAA,IACA,EAAE,SAAS,KAAK;AAAA,EACjB,EACC,QAAQ;AACX;AAEO,SAAS,oBAAoB,EAAE,QAAQ,UAAU,cAAc,GAA6B;AAClG,QAAM,QAAQ,yBAAyB,EAAE,QAAQ,UAAU,cAAc,CAAC;AAC1E,QAAM,iBAAiB,IAAI,WAAW,MAAM,SAAS,CAAC;AACtD,iBAAe,IAAI,CAAC,yBAAyB,OAAO,CAAC;AACrD,iBAAe,IAAI,OAAO,CAAC;AAC3B,SAAO,SAAS,cAAc;AAC/B;AAEO,SAAS,sBAAsB,WAAgC;AACrE,SAAO,iBAAiB,MAAM,OAAO,cAAc,WAAW,WAAW,SAAS,IAAI,SAAS;AAChG;",
6
6
  "names": []
7
7
  }